microsoft/teams.net

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
feature/pabot-httpcontext-botid

Branches

Tags

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

Clone

HTTPS

Download ZIP

core/samples/ExtAIBot/Program.cs

37lines · modecode

1// Copyright (c) Microsoft Corporation.
2// Licensed under the MIT License.
3
4using System.ClientModel;
5using Azure.AI.OpenAI;
6using ExtAIBot;
7using Microsoft.Extensions.AI;
8using Microsoft.Teams.Apps;
9
10// Wires up the Teams bot application. Handler registration lives in ExtAIBotApp.
11
12WebApplicationBuilder builder = WebApplication.CreateSlimBuilder(args);
13builder.Services.AddTeamsBotApplication<ExtAIBotApp>();
14
15builder.Services.AddSingleton<IChatClient>(sp =>
16{
17 IConfiguration config = sp.GetRequiredService<IConfiguration>();
18 string endpoint = config["AzureOpenAI:Endpoint"] ?? throw new InvalidOperationException("AzureOpenAI:Endpoint is required.");
19 string apiKey = config["AzureOpenAI:ApiKey"] ?? throw new InvalidOperationException("AzureOpenAI:ApiKey is required.");
20 string deployment = config["AzureOpenAI:Deployment"] ?? throw new InvalidOperationException("AzureOpenAI:Deployment is required.");
21
22 return new AzureOpenAIClient(new Uri(endpoint), new ApiKeyCredential(apiKey))
23 .GetChatClient(deployment)
24 .AsIChatClient()
25 .AsBuilder()
26 .UseFunctionInvocation()
27 .Build();
28});
29
30builder.Services.AddSingleton<McpToolSetLifetimeService>();
31builder.Services.AddHostedService(sp => sp.GetRequiredService<McpToolSetLifetimeService>());
32
33builder.Services.AddSingleton<Agent>();
34
35WebApplication webApp = builder.Build();
36webApp.UseTeamsBotApplication<ExtAIBotApp>();
37webApp.Run();
38