Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este tutorial demonstra como adicionar capacidade de agente a um aplicativo ASP.NET Core CRUD controlado por dados existente. Faz isto usando duas abordagens diferentes: Microsoft Agent Framework e Foundry Agent Service.
Se a sua aplicação web já tem funcionalidades úteis, como compras, reservas de hotel ou gestão de dados, é relativamente simples adicionar funcionalidades de agente à sua aplicação web, envolvendo essas funcionalidades como ferramentas (para o Microsoft Agent Framework) ou como um endpoint OpenAPI (para o Foundry Agent Service). Neste tutorial, começas com uma aplicação de lista simples to-do. No final, você poderá criar, atualizar e gerenciar tarefas com um agente em um aplicativo do Serviço de Aplicativo.
Tanto o Microsoft Agent Framework como o Foundry Agent Service permitem-lhe construir aplicações web agentes com capacidades impulsionadas por IA. A tabela a seguir mostra algumas das considerações e compensações:
| Consideration | Estrutura do Microsoft Agent | Serviço de Agente de Fundição |
|---|---|---|
| Performance | Rápido (funciona localmente) | Mais lento (gerenciado, serviço remoto) |
| Development | Código completo, controlo máximo | Baixo código, integração rápida |
| Testing | Testes manuais/unitários em código | Playground integrado para testes rápidos |
| Scalability | App-managed | Gerenciado pelo Azure, dimensionado automaticamente |
| Guarda-corpos de segurança | Implementação personalizada necessária | Segurança e moderação de conteúdos incorporadas |
| Identidade | Implementação personalizada necessária | ID de agente incorporado e autenticação |
| Enterprise | Integração personalizada necessária | Implementação integrada do Microsoft 365/Teams e chamadas de ferramentas integradas no Microsoft 365. |
Neste tutorial, aprenderás como:
- Converter funcionalidades existentes da aplicação em ferramentas para o Microsoft Agent Framework.
- Adicione as ferramentas a um agente do Microsoft Agent Framework e use-o numa aplicação web.
- Converter funcionalidades existentes da aplicação num endpoint OpenAPI para o Foundry Agent Service.
- Ligue para um agente da Foundry numa aplicação web.
- Atribua as permissões necessárias para conectividade de identidade gerenciada.
Prerequisites
- Uma conta do Azure com uma subscrição ativa - Crie uma conta gratuitamente.
- Conta do GitHub para usar o GitHub Codespaces - Saiba mais sobre o GitHub Codespaces.
Abra o exemplo com Codespaces
A maneira mais fácil de começar é usando o GitHub Codespaces, que fornece um ambiente de desenvolvimento completo com todas as ferramentas necessárias pré-instaladas.
Navegue até o repositório GitHub em https://github.com/Azure-Samples/app-service-agentic-semantic-kernel-ai-foundry-agent.
Selecione o botão Código , selecione a guia Espaços de código e selecione Criar espaço de código na principal.
Aguarde alguns instantes até que o Codespace seja inicializado. Quando estiver pronto, você verá um ambiente de desenvolvimento totalmente configurado em seu navegador.
Execute o aplicativo localmente:
dotnet runQuando vir que a sua aplicação em execução na porta 5280 está disponível, selecione Abrir no Browser e adicione algumas tarefas.
Revise o código do agente
Ambas as abordagens usam o mesmo padrão de implementação, onde o agente é inicializado como um serviço (em Program.cs) em um provedor e injetado no respetivo componente Blazor.
O AgentFrameworkProvider é inicializado em Services/AgentFrameworkProvider.cs. O código de inicialização faz o seguinte:
- Cria um
IChatClienta partir do serviço Azure OpenAI utilizando oAzureOpenAIClient. - Obtém a
TaskCrudToolinstância que encapsula a funcionalidade da aplicação CRUD (em Tools/TaskCrudTool.cs). OsDescriptionatributos dos métodos da ferramenta ajudam o agente a determinar como chamá-los. - Cria um agente de IA usando
CreateAIAgent()instruções e ferramentas registadas viaAIFunctionFactory.Create(). - Cria uma thread para o agente manter a conversa através da navegação.
// Create IChatClient
IChatClient chatClient = new AzureOpenAIClient(
new Uri(endpoint),
new DefaultAzureCredential())
.GetChatClient(deployment)
.AsIChatClient();
// Get TaskCrudTool instance from service provider
var taskCrudTool = sp.GetRequiredService<TaskCrudTool>();
// Create agent with tools
var agent = chatClient.CreateAIAgent(
instructions: @"You are an agent that manages tasks using CRUD operations.
Use the provided functions to create, read, update, and delete tasks.
Always call the appropriate function for any task management request.
Don't try to handle any requests that are not related to task management.
When handling requests, if you're missing any information, don't make it up but prompt the user for it instead.",
tools:
[
AIFunctionFactory.Create(taskCrudTool.CreateTaskAsync),
AIFunctionFactory.Create(taskCrudTool.ReadTasksAsync),
AIFunctionFactory.Create(taskCrudTool.UpdateTaskAsync),
AIFunctionFactory.Create(taskCrudTool.DeleteTaskAsync)
]);
// Create thread for this scoped instance (persists across navigation)
var thread = agent.GetNewThread();
return (agent, thread);
Cada vez que o utilizador envia uma mensagem, o componente Blazor (em Components/Pages/AgentFrameworkAgent.razor) chama Agent.RunAsync() com a entrada do utilizador e a thread do agente. O segmento do agente mantém o registo do histórico de bate-papo.
var response = await this.Agent.RunAsync(sentInput, this.agentThread);
Implementar o exemplo de aplicação
O repositório de exemplo contém um modelo de CLI do Desenvolvedor do Azure (AZD), que cria um aplicativo do Serviço de Aplicativo com identidade gerenciada e implanta seu aplicativo de exemplo.
No terminal, faça logon no Azure usando a CLI do Azure Developer:
azd auth loginSiga as instruções para concluir o processo de autenticação.
Implante o aplicativo do Serviço de Aplicativo do Azure com o modelo AZD:
azd upQuando solicitado, forneça as seguintes respostas:
Question Answer Insira um novo nome de ambiente: Escreva um nome exclusivo. Selecione uma Assinatura do Azure para usar: Selecione uma subscrição. Escolha um grupo de recursos para usar: Selecione Criar um novo grupo de recursos. Selecione um local para criar o grupo de recursos em: Selecione Suécia Central. Insira um nome para o novo grupo de recursos: Digite Enter. Na saída AZD, localize a URL do seu aplicativo e navegue até ela no navegador. O URL tem esta aparência na saída AZD:
Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: <URL>
Selecione o item de esquema OpenAPI para abrir o esquema OpenAPI gerado automaticamente no caminho padrão
/openapi/v1.json. Você precisará desse esquema mais tarde.Após a implantação bem-sucedida, você verá uma URL para seu aplicativo implantado.
Agora você tem um aplicativo do Serviço de Aplicativo com uma identidade gerenciada atribuída ao sistema.
Crie e configure o recurso Microsoft Foundry
No portal da Foundry, certifique-se de que o botão de radio superior da New Foundry está ativado e crie um projeto.
Implemente um modelo à sua escolha (veja Microsoft Foundry Quickstart: Criar recursos).
Do topo do parque de diversões de modelos, copie o nome do modelo.
A forma mais fácil de obter o endpoint Azure OpenAI continua a ser através do portal clássico. Selecione o botão de opção New Foundry, depois Azure OpenAI, e depois copie o URL no Azure OpenAI endpoint para mais tarde.
Atribuir permissões necessárias
No menu superior do novo portal da Foundry, selecione Operar, depois selecione Administrador. Na fila do seu projeto Foundry, deve ver dois links. O que está na coluna Nome é o recurso do projeto Foundry, e o que está na coluna Recurso Pai é o recurso Foundry.
Selecione o recurso Foundry no recurso Pai e depois selecione Gerir este recurso no portal Azure. A partir do portal Azure, pode atribuir acesso baseado em funções para o recurso à aplicação web implementada.
Adicione o seguinte papel para a identidade gerida da aplicação App Service:
Recurso de destino Função obrigatória Necessário para Fundição Utilizador dos Serviços Cognitivos OpenAI O serviço de conclusão de chat no Microsoft Agent Framework. Para obter instruções, consulte Atribuir funções do Azure utilizando o portal do Azure.
Configurar variáveis de conexão em seu aplicativo de exemplo
Abra appsettings.json. Usando os valores que copiou anteriormente do portal Foundry, configure as seguintes variáveis:
Variable Description AzureOpenAIEndpointEndpoint Azure OpenAI (copiado do portal clássico da Foundry). ModelDeploymentNome do modelo na implementação (copiado da área de testes do modelo no novo portal da Foundry). Note
Para manter o tutorial simples, você usará essas variáveis em appsettings.json em vez de substituí-las pelas configurações do aplicativo no Serviço de Aplicativo.
Note
Para manter o tutorial simples, você usará essas variáveis em appsettings.json em vez de substituí-las pelas configurações do aplicativo no Serviço de Aplicativo.
Entre no Azure com a CLI do Azure:
az loginIsso permite que a biblioteca de cliente do Azure Identity no código de exemplo receba um token de autenticação para o usuário conectado. Lembre-se de que você adicionou a função necessária para esse usuário anteriormente.
Execute o aplicativo localmente:
dotnet runQuando vir que a sua aplicação em execução na porta 5280 está disponível, selecione Abrir no Browser.
Selecione o link Microsoft Agent Framework Agent e o link Foundry Agent Service para experimentar a interface de chat. Se receber uma resposta, a sua aplicação está a ligar-se com sucesso ao recurso Microsoft Foundry.
De volta ao espaço de código do GitHub, implante as alterações do seu aplicativo.
azd upNavegue até o aplicativo implantado novamente e teste os agentes de chat.
Limpeza de recursos
Quando terminar de usar o aplicativo, você poderá excluir os recursos do Serviço de Aplicativo para evitar incorrer em custos adicionais:
azd down --purge
Como o modelo do AZD não inclui os recursos do Microsoft Foundry, tens de os apagar manualmente se quiseres.