microsoft/teams.net

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
b4fb261ef78741a3ac023785e13ad411a0d6e23d

Branches

Tags

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

Clone

HTTPS

Download ZIP

Samples/Samples.Lights/Controller.cs

43lines · 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
13{
14 private readonly OpenAIChatPrompt _prompt;
15
16 public Controller(OpenAIChatPrompt prompt)
17 {
18 _prompt = prompt;
19 }
20
21 [Message("/history")]
22 public async Task OnHistory(IContext<MessageActivity> context)
23 {
24 var state = State.From(context);
25 await context.Send(JsonSerializer.Serialize(state.Messages, new JsonSerializerOptions()
26 {
27 WriteIndented = true
28 }));
29 }
30
31 [Message]
32 public async Task OnMessage(IContext<MessageActivity> context)
33 {
34 var state = State.From(context);
35
36 await _prompt.Send(context.Activity.Text, new() { Messages = state.Messages }, (chunk) => Task.Run(() =>
37 {
38 context.Stream.Emit(chunk);
39 }), context.CancellationToken);
40
41 state.Save(context);
42 }
43}