Tutorial: Usar sessões de interpretador de código no AutoGen com Aplicativos de Contêiner do Azure
Artigo
AutoGen é uma estrutura para o desenvolvimento de aplicativos de modelo de linguagem grande (LLM) usando vários agentes que conversam entre si para resolver tarefas. Os agentes construídos com AutoGen podem operar em vários modos que empregam combinações de LLMs, entradas humanas e ferramentas. Um tipo importante de ferramenta para agentes AutoGen são os executores de código. Eles permitem que os agentes executem tarefas complexas escrevendo e executando código. Ao integrar sessões dinâmicas dos Aplicativos de Contêiner do Azure com o AutoGen, você dá ao agente um interpretador de código a ser usado para executar cálculos úteis e executar ações.
Neste tutorial, você aprenderá a executar um agente de IA criado no AutoGen em uma API da Web. A API aceita a entrada do usuário e retorna uma resposta gerada pelo agente de IA. O agente usa um interpretador de código em sessões dinâmicas para executar cálculos.
O aplicativo de exemplo neste início rápido usa um LLM do Azure OpenAI. Ele também usa sessões de Aplicativos de Contêiner do Azure para executar o código gerado pelo LLM.
Atualize a CLI do Azure para a versão mais recente.
az upgrade
Remova a extensão Aplicativos de Contêiner do Azure se ela já estiver instalada e instale uma versão de visualização da extensão Aplicativos de Contêiner do Azure que contém comandos para sessões:
az extension remove --name containerapp
az extension add \
--name containerapp \
--allow-preview true -y
Substitua <AZURE_OPENAI_ENDPOINT> pelo ponto de extremidade da conta do Azure OpenAI, <AZURE_OPENAI_KEY> pela chave da API do Azure OpenAI e <SESSION_POOL_MANAGEMENT_ENDPOINT> pelo ponto de extremidade de gerenciamento do pool de sessões.
O aplicativo usa DefaultAzureCredential para autenticar com os serviços do Azure. Em sua máquina local, ele usa suas credenciais de logon atuais da CLI do Azure. Você deve atribuir a si mesmo a função Executor de Sessão do Azure ContainerApps no pool de sessões para que o aplicativo acesse o pool de sessões.
Recupere seu nome de usuário da CLI do Azure:
az account show --query user.name --output tsv
Execute os seguintes comandos para recuperar a ID do recurso do pool de sessões:
az containerapp sessionpool show --name $SESSION_POOL_NAME --resource-group $RESOURCE_GROUP_NAME --query id --output tsv
Atribua a função Executor de Sessão do Azure ContainerApps ao usuário da CLI do Azure no pool de sessões:
az role assignment create \
--role "Azure ContainerApps Session Executor" \
--assignee <CLI_USERNAME> \
--scope <SESSION_POOL_RESOURCE_ID>
Substitua <CLI_USERNAME> pelo nome de usuário da CLI do Azure e <SESSION_POOL_RESOURCE_ID> pela ID do recurso do pool de sessões.
Executar a aplicação
Antes de executar o aplicativo de exemplo, abra main.py em um editor e revise o código. O aplicativo usa FastAPI para criar uma API da Web que aceita uma mensagem de usuário na cadeia de caracteres de consulta.
As seguintes linhas de código instanciam um ACASessionsExecutor e fornecem-no ao agente autogen:
Quando precisa executar cálculos e tarefas, o agente usa o interpretador de código em ACASessionsExecutor para executar o código. O código é executado em uma sessão no pool de sessões. Por padrão, um identificador de sessão aleatório é gerado quando você instancia a ferramenta. Se o agente usa a mesma ferramenta para executar vários trechos de código Python, ele usa a mesma sessão. Para garantir que cada usuário final tenha uma sessão exclusiva, use um agente e uma ferramenta separados para cada usuário.
Abra um browser e navegue para http://localhost:8000/docs. Você vê a interface do usuário do Swagger para o aplicativo de exemplo.
Expanda o /chat ponto de extremidade e selecione Experimentar.
Entre What time is it right now? no message campo e selecione Executar.
O agente responde com a hora atual. No terminal, você vê os logs mostrando o código Python gerado pelo agente para obter a hora atual e executá-lo em uma sessão de interpretador de código.
Para parar o aplicativo, entre Ctrl+C no terminal.
Opcional: implantar o aplicativo de exemplo em Aplicativos de Contêiner do Azure
Para implantar o aplicativo FastAPI nos Aplicativos de Contêiner do Azure, você precisa criar uma imagem de contêiner e enviá-la por push para um registro de contêiner. Em seguida, você pode implantar a imagem nos Aplicativos de Contêiner do Azure. O az containerapp up comando combina essas etapas em um único comando.
Em seguida, você precisa configurar a identidade gerenciada para o aplicativo e atribuir-lhe as funções adequadas para acessar o Azure OpenAI e o pool de sessões.
Defina as variáveis para o ambiente Container Apps e o nome do aplicativo:
Substitua <AZURE_OPENAI_ENDPOINT> pelo ponto de extremidade da conta do Azure OpenAI, <AZURE_OPENAI_KEY> pela chave do Azure OpenAI e <SESSION_POOL_MANAGEMENT_ENDPOINT> pelo ponto de extremidade de gerenciamento do pool de sessões.
Habilite a identidade gerenciada atribuída ao sistema para o aplicativo: