// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. using System.ClientModel; using Azure.AI.OpenAI; using ExtAIBot; using Microsoft.Extensions.AI; using Microsoft.Teams.Apps; // Wires up the Teams bot application. Handler registration lives in ExtAIBotApp. WebApplicationBuilder builder = WebApplication.CreateSlimBuilder(args); builder.Services.AddTeamsBotApplication(); builder.Services.AddSingleton(sp => { IConfiguration config = sp.GetRequiredService(); string endpoint = config["AzureOpenAI:Endpoint"] ?? throw new InvalidOperationException("AzureOpenAI:Endpoint is required."); string apiKey = config["AzureOpenAI:ApiKey"] ?? throw new InvalidOperationException("AzureOpenAI:ApiKey is required."); string deployment = config["AzureOpenAI:Deployment"] ?? throw new InvalidOperationException("AzureOpenAI:Deployment is required."); return new AzureOpenAIClient(new Uri(endpoint), new ApiKeyCredential(apiKey)) .GetChatClient(deployment) .AsIChatClient() .AsBuilder() .UseFunctionInvocation() .Build(); }); builder.Services.AddSingleton(); builder.Services.AddHostedService(sp => sp.GetRequiredService()); builder.Services.AddSingleton(); WebApplication webApp = builder.Build(); webApp.UseTeamsBotApplication(); webApp.Run();