microsoft/teams.net

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
feat/a365-mcp

Branches

Tags

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

Clone

HTTPS

Download ZIP

Samples/Samples.Lights/Program.cs

43lines · modecode

1using System.Text.Json;
2
3using Microsoft.Teams.AI.Models.OpenAI;
4using Microsoft.Teams.AI.Models.OpenAI.Extensions;
5using Microsoft.Teams.Apps.Activities;
6using 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
17// Get the prompt factory from services
18var promptFactory = app.Services.GetRequiredService<Func<OpenAIChatPrompt>>();
19
20var teams = app.UseTeams();
21
22teams.OnMessage("/history", async (context, cancellationToken) =>
23{
24 var state = State.From(context);
25 await context.Send(JsonSerializer.Serialize(state.Messages, new JsonSerializerOptions()
26 {
27 WriteIndented = true
28 }), cancellationToken);
29});
30
31teams.OnMessage(async (context, cancellationToken) =>
32{
33 var state = State.From(context);
34 var prompt = promptFactory();
35 await prompt.Send(context.Activity.Text, new() { Messages = state.Messages }, (chunk) => Task.Run(() =>
36 {
37 context.Stream.Emit(chunk);
38 }), cancellationToken);
39
40 state.Save(context);
41});
42
43app.Run();