Arquitetura básica de referência de chat do Azure AI Foundry
Este artigo fornece uma arquitetura básica para ajudá-lo a aprender a executar aplicativos de chat usando o Azure AI Foundry e os modelos de linguagem do Azure OpenAI. A arquitetura inclui uma interface do usuário (UI) do cliente que é executada no Serviço de Aplicativo do Azure. Para buscar dados de aterramento para o modelo de linguagem, a interface do usuário usa um agente de IA do Azure para orquestrar o fluxo de trabalho de prompts de entrada para armazenamentos de dados. A arquitetura foi projetada para operar a partir de uma única região.
Importante
Essa arquitetura não é para aplicativos de produção. É uma arquitetura introdutória para fins de aprendizagem e prova de conceito (POC). Ao projetar seus aplicativos de bate-papo corporativo de produção, use a arquitetura de referência de bate-papo do Baseline AI Foundry, que adiciona decisões de design de produção a essa arquitetura básica.
Importante
Um exemplo de implementação apoia estas orientações. Ele inclui etapas de implantação para uma implementação básica de bate-papo de ponta a ponta. Você pode usar essa implementação como uma base para seu POC trabalhar com aplicativos de chat que usam agentes do Azure AI Foundry.
Arquitetura
Descarregue um ficheiro Visio desta arquitetura.
Fluxo de trabalho
O fluxo de trabalho a seguir corresponde ao diagrama anterior:
Um usuário de aplicativo interage com um aplicativo Web que contém funcionalidade de bate-papo. Eles emitem uma solicitação HTTPS para o domínio padrão do Serviço de Aplicativo em
azurewebsites.net
. Este domínio aponta automaticamente para o endereço IP público incorporado do Serviço de Aplicações. A conexão Transport Layer Security é estabelecida do cliente diretamente para o Serviço de Aplicativo. O Azure gerencia totalmente o certificado.O recurso do Serviço de Aplicativo chamado Easy Auth garante que o usuário que acessa o site seja autenticado por meio do Microsoft Entra ID.
O código do aplicativo implantado no Serviço de Aplicativo lida com a solicitação e renderiza uma interface do usuário de chat para o usuário do aplicativo. O código da interface do usuário do chat se conecta a APIs que também estão hospedadas nessa mesma instância do Serviço de Aplicativo. O código da API se conecta a um agente de IA do Azure no Azure AI Foundry usando o SDK de Agentes Persistentes de IA do Azure.
O Azure AI Foundry Agent Service liga-se ao Azure AI Search para obter dados de base para a consulta. Os dados de aterramento são adicionados ao prompt enviado para o modelo OpenAI do Azure na próxima etapa.
O Foundry Agent Service se conecta a um modelo do Azure OpenAI implantado no Azure AI Foundry e envia o prompt que inclui os dados de aterramento relevantes e o contexto do bate-papo.
O Application Insights registra informações sobre a solicitação original para o Serviço de Aplicativo e as interações do agente de chamada.
Componentes
Muitos dos componentes dessa arquitetura são os mesmos que a arquitetura básica do aplicativo Web do Serviço de Aplicativo porque a interface do usuário do chat é baseada nessa arquitetura. Esta seção destaca serviços de dados, componentes que você pode usar para criar e orquestrar fluxos de bate-papo e serviços que expõem modelos de linguagem.
O Azure AI Foundry é uma plataforma que você usa para criar, testar e implantar soluções e modelos de IA como serviço (MaaS). Essa arquitetura usa o Azure AI Foundry para implantar um modelo do Azure OpenAI.
Os projetos do Azure AI Foundry estabelecem conexões com fontes de dados, definem agentes e invocam modelos implantados, incluindo modelos do Azure OpenAI. Esta arquitetura tem apenas um projeto do Azure AI Foundry na conta do Azure AI Foundry.
O Foundry Agent Service é um recurso hospedado no Azure AI Foundry. Os desenvolvedores usam esse serviço para definir e hospedar agentes para lidar com solicitações de bate-papo. Ele gerencia threads de bate-papo, orquestra chamadas de ferramentas, reforça a segurança do conteúdo e integra-se com sistemas de identidade, rede e observabilidade. Nessa arquitetura, o Foundry Agent Service orquestra o fluxo que busca dados de aterramento de uma instância do AI Search e os passa junto com o prompt para o modelo OpenAI do Azure implantado.
Os agentes definidos no Foundry Agent Service são sem código e efetivamente não determinísticos. O prompt do sistema, combinado com
temperature
etop_p
parâmetros, define como os agentes se comportam para solicitações.Os modelos do Azure AI Foundry permitem implantar modelos emblemáticos, incluindo modelos OpenAI, a partir do catálogo de IA do Azure em um ambiente hospedado pela Microsoft. Essa abordagem é considerada uma implantação de MaaS. Essa arquitetura implanta modelos usando a configuração Global Standard com uma cota fixa.
AI Search é um serviço de pesquisa na nuvem que suporta de pesquisa de texto completo, de pesquisa semântica, de pesquisa vetorial e de pesquisa híbrida. Essa arquitetura inclui a Pesquisa de IA porque é comumente usada em orquestrações por trás de aplicativos de bate-papo. Você pode usar a Pesquisa AI para recuperar dados indexados que são relevantes para consultas de usuários de aplicativos. O AI Search serve como o armazenamento de conhecimento para o padrão de Geração Aumentada de Recuperação . Esse padrão extrai uma consulta apropriada de um prompt, consulta a Pesquisa de IA e usa os resultados como dados de aterramento para um modelo OpenAI do Azure.
Considerações
Essas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios orientadores que você pode usar para melhorar a qualidade de uma carga de trabalho. Para obter mais informações, consulte Microsoft Azure Well-Architected Framework.
Essa arquitetura básica não se destina a implantações de produção. A arquitetura favorece a simplicidade e a eficiência de custos em detrimento da funcionalidade para que você possa aprender a criar aplicativos de chat de ponta a ponta usando o Azure AI Foundry e o Azure OpenAI. As seções a seguir descrevem as deficiências dessa arquitetura básica e descrevem recomendações e considerações.
Fiabilidade
A confiabilidade ajuda a garantir que seu aplicativo possa cumprir os compromissos que você assume com seus clientes. Para obter mais informações, consulte Lista de verificação de revisão de design para confiabilidade.
A lista a seguir descreve os recursos críticos de confiabilidade que essa arquitetura omite:
Essa arquitetura usa a camada Básica do Serviço de Aplicativo, que não tem suporte à zona de disponibilidade do Azure . A instância do Serviço de Aplicativo ficará indisponível se houver problemas com a instância, o rack ou o datacenter que hospeda a instância. À medida que avança para a produção, siga as orientações de confiabilidade para instâncias do Serviço de Aplicativo.
Essa arquitetura não habilita o dimensionamento automático para a interface do usuário do cliente. Para evitar problemas de confiabilidade devido a recursos de computação ineficientes, provisione recursos em excesso para sempre ser executado com computação suficiente para lidar com a capacidade simultânea máxima.
Essa arquitetura implanta o Foundry Agent Service como uma solução totalmente hospedada pela Microsoft. Nessa configuração, a Microsoft hospeda um banco de dados do Azure Cosmos DB, um contêiner de conta do Armazenamento do Azure e um índice de Pesquisa de IA em seu nome. A sua subscrição não mostra estes recursos dependentes. Você não tem nenhum controle sobre a confiabilidade do Foundry Agent Service ou suas dependências. Você pode adquirir o controle dessas dependências para executar ações como implementar uma estratégia de continuidade de negócios e recuperação de desastres. Para obter orientação sobre como trazer suas próprias dependências, consulte a arquitetura de linha de base.
Observação
A instância do AI Search na seção de componentes e no diagrama é diferente da instância que é uma dependência do Foundry Agent Service. A instância na seção de componentes armazena seus dados de aterramento. A dependência faz o fragmento em tempo real de arquivos que são carregados dentro de uma sessão de chat.
Para uma arquitetura básica voltada para o aprendizado, você pode usar o tipo de implantação de
Global Standard
modelo. À medida que avança para a produção, você deve ter uma ideia melhor de seus requisitos de taxa de transferência e residência de dados. Depois de entender seus requisitos de taxa de transferência, considere usar a taxa de transferência provisionada escolhendo um ouData Zone Provisioned
tipo deGlobal Provisioned
implantação. Se você tiver requisitos de residência de dados, escolha oData Zone Provisioned
tipo de implantação.Essa arquitetura usa a camada AI Search Basic, que não oferece suporte a zonas de disponibilidade do Azure. Para obter redundância zonal, implante a camada de preço AI Search Standard ou superior em uma região que ofereça suporte a zonas de disponibilidade e implante três ou mais réplicas.
Para obter mais informações, consulte Arquitetura de referência de bate-papo do Baseline AI Foundry.
Segurança
A segurança fornece garantias contra ataques deliberados e o uso indevido de seus valiosos dados e sistemas. Para obter mais informações, consulte Lista de verificação de revisão de design para segurança.
Esta seção descreve as principais recomendações que essa arquitetura implementa. Essas recomendações incluem filtragem de conteúdo e monitoramento de abuso, gerenciamento de identidade e acesso e controle de acesso baseado em função. Essa arquitetura não foi projetada para implantações de produção, portanto, esta seção também inclui segurança de rede. A segurança de rede é um recurso de segurança fundamental que essa arquitetura não implementa.
Filtragem de conteúdo e monitoramento de abuso
O Azure AI Foundry inclui um sistema de filtragem de conteúdo que usa uma combinação de modelos de classificação. Essa filtragem deteta e bloqueia categorias específicas de conteúdo potencialmente prejudicial em prompts de entrada e finalizações de saída. Esse conteúdo potencialmente nocivo inclui categorias de ódio, conteúdo sexual, automutilação, violência, palavrões e jailbreak (conteúdo projetado para contornar as restrições do modelo de linguagem). Você pode configurar o rigor da filtragem para cada categoria usando opções baixas, médias ou altas. Essa arquitetura de referência usa o DefaultV2
filtro de conteúdo ao implantar modelos. Você pode ajustar as configurações de acordo com suas necessidades.
Gestão de identidades e acessos
As diretrizes a seguir expandem as diretrizes de gerenciamento de identidade e acesso na arquitetura de linha de base do Serviço de Aplicativo. A interface do usuário do chat usa sua identidade gerenciada para autenticar o código da API da interface do usuário do chat no Foundry Agent Service usando o SDK do Azure AI Persistent Agents.
O projeto Azure AI Foundry também tem uma identidade gerenciada. Essa identidade é autenticada em serviços como AI Search por meio de definições de conexão. O projeto disponibiliza essas conexões para o Foundry Agent Service.
Uma conta do Azure AI Foundry pode conter vários projetos do Azure AI Foundry. Cada projeto deve usar sua própria identidade gerenciada atribuída ao sistema. Se diferentes componentes de carga de trabalho exigirem acesso isolado a fontes de dados conectadas, crie projetos separados do Azure AI Foundry na mesma conta e evite compartilhar conexões entre eles. Se sua carga de trabalho não exigir isolamento, use um único projeto.
Funções de acesso baseadas em função
Você é responsável por criar as atribuições de função necessárias para as identidades gerenciadas atribuídas ao sistema. A tabela a seguir resume a atribuição de função que você deve adicionar ao Serviço de Aplicativo, ao projeto Azure AI Foundry e aos indivíduos que usam o portal:
Recurso | Funções | Âmbito de aplicação |
---|---|---|
Serviço de Aplicações | Utilizador do Azure AI | Conta do Azure AI Foundry |
Projeto Azure AI Foundry | Leitor de dados de índice de pesquisa | Pesquisa AI |
Utilizador do portal (para cada indivíduo) | Desenvolvedor de IA do Azure | Conta do Azure AI Foundry |
Segurança de rede
Para simplificar a experiência de aprendizagem para criar uma solução de chat de ponta a ponta, essa arquitetura não implementa segurança de rede. Ele usa identidade como seu perímetro e usa construções de nuvem pública. Serviços como AI Search, Azure AI Foundry e Serviço de Aplicativo podem ser acessados pela Internet. Essa configuração aumenta a superfície de ataque da arquitetura.
Essa arquitetura também não restringe o tráfego de saída. Por exemplo, um agente pode ser configurado para se conectar a qualquer ponto de extremidade público com base na especificação OpenAPI do ponto de extremidade. Portanto, a exfiltração de dados de aterramento privado não pode ser evitada por meio de controles de rede.
Para obter mais informações sobre segurança de rede como um perímetro extra em sua arquitetura, consulte Rede.
Defensor
Para essa arquitetura básica, você não precisa habilitar os planos de proteção de carga de trabalho na nuvem do Microsoft Defender para nenhum serviço. Ao passar para a produção, siga as diretrizes de segurança na arquitetura de linha de base do Microsoft Defender, que usa vários planos para cobrir sua carga de trabalho.
Governação através de políticas
Essa arquitetura não implementa a governança por meio da Política do Azure. À medida que avança para a produção, siga as recomendações de governança na arquitetura de linha de base. Essas recomendações adicionam a Política do Azure aos componentes da sua carga de trabalho.
Otimização de Custos
A Otimização de Custos concentra-se em formas de reduzir despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, consulte Lista de verificação de revisão de design para otimização de custos.
Essa arquitetura básica não representa os custos de uma solução pronta para produção. Também não inclui controlos para proteger contra derrapagens de custos. As considerações a seguir descrevem recursos cruciais que essa arquitetura não inclui. Esses recursos afetam o custo.
Essa arquitetura pressupõe que o modelo OpenAI do Azure implantado receba chamadas limitadas. Portanto, recomendamos que você use o
Global Standard
tipo de implantação para preços pré-pagos em vez de um tipo de implantação de taxa de transferência provisionada. À medida que você avança para uma solução de produção, siga as diretrizes de otimização de custos na arquitetura de linha de base.O Foundry Agent Service incorre em custos para arquivos carregados durante as interações de chat. Não disponibilize a funcionalidade de upload de arquivos para usuários do aplicativo se ela não fizer parte da experiência desejada do usuário. Conexões de conhecimento extra, como a ferramenta Aterramento com Bing, têm suas próprias estruturas de preços.
O Foundry Agent Service é uma solução sem código, o que significa que você não pode controlar deterministicamente as ferramentas ou fontes de conhecimento que cada solicitação invoca. Na sua modelagem de custos, assuma o máximo uso de cada conexão.
Essa arquitetura usa a camada de preço do Serviço de Aplicativo Básico em uma única instância, que não fornece proteção contra uma interrupção da zona de disponibilidade. A arquitetura de linha de base do Serviço de Aplicativo recomenda que você use planos Premium que tenham três ou mais instâncias de trabalho para alta disponibilidade. Esta abordagem afeta os seus custos.
Essa arquitetura usa a camada de preço AI Search Basic sem réplicas adicionadas. Essa topologia não pode resistir a uma falha na zona de disponibilidade do Azure. A arquitetura de bate-papo de ponta a ponta de linha de base recomenda que você implante sua carga de trabalho com o nível de preço padrão ou superior e implante três ou mais réplicas. Essa abordagem pode afetar seus custos à medida que você avança para a produção.
Essa arquitetura não inclui governança de custos ou controles de contenção. Certifique-se de que se previne contra processos ou utilização não governados que possam incorrer em custos elevados para serviços pré-pagos, como modelos implementados no Azure AI Foundry.
Excelência Operacional
A Excelência Operacional abrange os processos operacionais que implantam um aplicativo e o mantêm em execução na produção. Para obter mais informações, consulte Lista de verificação de revisão de design para excelência operacional.
Monitorização
Essa arquitetura configura diagnósticos para todos os serviços. Todos os serviços, exceto o Serviço de Aplicativo e o Azure AI Foundry, capturam logs. O Serviço de Aplicativo captura AppServiceHTTPLogs
, AppServiceConsoleLogs
, AppServiceAppLogs
e AppServicePlatformLogs
. Azure AI Foundry captura RequestResponse
. Durante a fase POC, você deve entender quais logs e métricas estão disponíveis para coleta. Ao passar para a produção, remova as fontes de log que não agregam valor e apenas criam ruído e custo para o coletor de logs da carga de trabalho.
Para usar os recursos de monitoramento no Azure AI Foundry, conecte um recurso do Application Insights ao seu projeto do Azure AI Foundry.
Esta integração permite monitorizar os seguintes dados:
- Monitoramento em tempo real do uso de tokens, incluindo prompt, conclusão e total de tokens
- Telemetria de solicitação-resposta detalhada, incluindo latência, exceções e qualidade de resposta
Você também pode rastrear agentes usando OpenTelemetry.
Operações de modelo
Essa arquitetura é otimizada para aprendizado e não se destina ao uso em produção, portanto, orientações operacionais como GenAIOps estão fora do escopo. Quando avançar para a produção, siga as orientações do modelo do Azure AI Foundry.
Desenvolvimento
Para a arquitetura básica, você pode criar agentes usando a experiência baseada em navegador no portal do Azure AI Foundry. Quando avançar para a produção, siga as orientações de desenvolvimento e controle do código-fonte na arquitetura de linha de base. Quando não precisar mais de um agente, certifique-se de excluí-lo. Se o agente excluído for o último que usa uma conexão, remova também a conexão.
Avaliação
Você pode avaliar seu aplicativo generativo no Azure AI Foundry. Recomendamos que você aprenda a usar avaliadores para avaliar suas aplicações generativas de IA. Essa prática ajuda a garantir que o modelo escolhido atenda aos requisitos de design do cliente e da carga de trabalho.
Eficiência de desempenho
A Eficiência de Desempenho refere-se à capacidade da sua carga de trabalho de escalar para atender às demandas dos usuários de forma eficiente. Para obter mais informações, consulte Lista de verificação de revisão de projeto para eficiência de desempenho.
Essa arquitetura não foi projetada para implantações de produção, portanto, omite recursos críticos de eficiência de desempenho:
Os resultados do POC devem ajudá-lo a escolher o produto do Serviço de Aplicativo certo para sua carga de trabalho. Projete sua carga de trabalho para atender à demanda de forma eficiente por meio do dimensionamento horizontal. Você pode usar o dimensionamento horizontal para ajustar o número de instâncias de computação no plano do Serviço de Aplicativo. Não projete um sistema que exija que você altere o produto de computação para se alinhar à demanda.
Essa arquitetura usa o modelo de consumo ou pagamento conforme o uso para a maioria dos componentes. O modelo de consumo é um modelo de melhor esforço e pode introduzir problemas de vizinhos barulhentos ou outros fatores de estresse na plataforma. Determine se seu aplicativo requer taxa de transferência provisionada à medida que você avança para a produção. A taxa de transferência provisionada ajuda a reservar a capacidade de processamento para suas implantações de modelo OpenAI do Azure. A capacidade reservada fornece desempenho e taxa de transferência previsíveis para seus modelos.
Outras recomendações de design
Os arquitetos devem projetar cargas de trabalho de IA e aprendizado de máquina, como esta, com as cargas de trabalho de IA do Well-Architected Framework nas diretrizes de design do Azure em mente. À medida que você passa da ideação e do POC para o design, combine insights dessa arquitetura específica com as práticas recomendadas mais amplas de IA e aprendizado de máquina no Well-Architected Framework.
Implementar este cenário
Implante uma implementação de referência que aplique essas recomendações e considerações.