microsoft/teams.net

Public

mirrored from https://github.com/microsoft/teams.netAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
v2.0.0

Branches

Tags

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

Clone

HTTPS

Download ZIP

Samples/Samples.Lights/Controller.cs

38lines · modeblame

a520ba78Alex Acebo1 years ago1using System.Text.Json;
2
3using Microsoft.Teams.AI.Models.OpenAI;
4using Microsoft.Teams.Api.Activities;
5using Microsoft.Teams.Apps;
925d171cAlex Acebo1 years ago6using Microsoft.Teams.Apps.Activities;
a520ba78Alex Acebo1 years ago7using Microsoft.Teams.Apps.Annotations;
8
9namespace Samples.Lights;
10
925d171cAlex Acebo1 years ago11[TeamsController]
9e2b069aMehak Bindra9 months ago12public class Controller(Func<OpenAIChatPrompt> _promptFactory)
a520ba78Alex Acebo1 years ago13{
9e2b069aMehak Bindra9 months ago14
a520ba78Alex Acebo1 years ago15[Message("/history")]
16public async Task OnHistory(IContext<MessageActivity> context)
17{
18var state = State.From(context);
19await context.Send(JsonSerializer.Serialize(state.Messages, new JsonSerializerOptions()
20{
21WriteIndented = true
22}));
23}
24
25[Message]
26public async Task OnMessage(IContext<MessageActivity> context)
27{
28var state = State.From(context);
29
9e2b069aMehak Bindra9 months ago30var prompt = _promptFactory();
31await prompt.Send(context.Activity.Text, new() { Messages = state.Messages }, (chunk) => Task.Run(() =>
a520ba78Alex Acebo1 years ago32{
33context.Stream.Emit(chunk);
34}), context.CancellationToken);
35
36state.Save(context);
37}
38}