microsoft/teams.net

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
v2.0.6

Branches

Tags

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

Clone

HTTPS

Download ZIP

Samples/Samples.Lights/Program.cs

43lines · modeblame

72dee098Rido6 months ago1using System.Text.Json;
2
3using Microsoft.Teams.AI.Models.OpenAI;
73e7847aAlex Acebo1 years ago4using Microsoft.Teams.AI.Models.OpenAI.Extensions;
72dee098Rido6 months ago5using Microsoft.Teams.Apps.Activities;
73e7847aAlex Acebo1 years ago6using Microsoft.Teams.Apps.Extensions;
7using Microsoft.Teams.Plugins.AspNetCore.DevTools.Extensions;
8using Microsoft.Teams.Plugins.AspNetCore.Extensions;
9
10using Samples.Lights;
11
12var builder = WebApplication.CreateBuilder(args);
13builder.AddTeams().AddTeamsDevTools().AddOpenAI<LightsPrompt>();
14
15var app = builder.Build();
16
72dee098Rido6 months ago17// Get the prompt factory from services
18var promptFactory = app.Services.GetRequiredService<Func<OpenAIChatPrompt>>();
19
20var teams = app.UseTeams();
21
2a3ae203Rido5 months ago22teams.OnMessage("/history", async (context, cancellationToken) =>
72dee098Rido6 months ago23{
24var state = State.From(context);
25await context.Send(JsonSerializer.Serialize(state.Messages, new JsonSerializerOptions()
26{
27WriteIndented = true
2a3ae203Rido5 months ago28}), cancellationToken);
72dee098Rido6 months ago29});
30
2a3ae203Rido5 months ago31teams.OnMessage(async (context, cancellationToken) =>
72dee098Rido6 months ago32{
33var state = State.From(context);
34var prompt = promptFactory();
35await prompt.Send(context.Activity.Text, new() { Messages = state.Messages }, (chunk) => Task.Run(() =>
36{
37context.Stream.Emit(chunk);
2a3ae203Rido5 months ago38}), cancellationToken);
72dee098Rido6 months ago39
40state.Save(context);
41});
42
ff5b5e35Corina5 months ago43app.Run();