microsoft/teams.net

Public

mirrored fromhttps://github.com/microsoft/teams.netAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
22df127116ef02cc5a31f714736cc25de03d7f9a

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

Samples/Samples.Lights/Controller.cs

38lines · modecode

1using System.Text.Json;
2
3using Microsoft.Teams.AI.Models.OpenAI;
4using Microsoft.Teams.Api.Activities;
5using Microsoft.Teams.Apps;
6using Microsoft.Teams.Apps.Activities;
7using Microsoft.Teams.Apps.Annotations;
8
9namespace Samples.Lights;
10
11[TeamsController]
12public class Controller(Func<OpenAIChatPrompt> _promptFactory)
13{
14
15 [Message("/history")]
16 public async Task OnHistory(IContext<MessageActivity> context)
17 {
18 var state = State.From(context);
19 await context.Send(JsonSerializer.Serialize(state.Messages, new JsonSerializerOptions()
20 {
21 WriteIndented = true
22 }));
23 }
24
25 [Message]
26 public async Task OnMessage(IContext<MessageActivity> context)
27 {
28 var state = State.From(context);
29
30 var prompt = _promptFactory();
31 await prompt.Send(context.Activity.Text, new() { Messages = state.Messages }, (chunk) => Task.Run(() =>
32 {
33 context.Stream.Emit(chunk);
34 }), context.CancellationToken);
35
36 state.Save(context);
37 }
38}