Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo mostra como implantar e executar o Chat com sua própria amostra de dados para .NET. Este exemplo implementa um aplicativo de chat usando C#, Serviço OpenAI do Azure e Retrieval Augmented Generation (RAG) em Pesquisa de IA do Azure para obter respostas sobre os benefícios dos funcionários em uma empresa fictícia. O aplicativo de chat de benefícios dos funcionários é semeado com arquivos PDF, incluindo um manual de funcionários, um documento de benefícios e uma lista de funções e expectativas da empresa.
Neste artigo você:
- Implante um aplicativo de chat para Azure.
- Obtenha respostas sobre os benefícios dos funcionários.
- Altere as configurações para alterar o comportamento das respostas.
Depois de concluir este procedimento, comece a modificar o novo projeto com seu código personalizado.
Este artigo faz parte de uma coleção de artigos que mostram como criar um aplicativo de chat usando Azure serviço OpenAI e Pesquisa de IA do Azure .
Outros artigos na coleção incluem:
Visão geral da arquitetura
Neste aplicativo de exemplo, uma empresa fictícia chamada Contoso Electronics fornece a experiência do aplicativo de chat aos seus funcionários para fazer perguntas sobre os benefícios, políticas internas e descrições e funções do trabalho.
A arquitetura do aplicativo de chat é mostrada no diagrama a seguir:
- Interface do usuário – A interface de chat do aplicativo é um aplicativo Blazor WebAssembly. Essa interface é o que aceita consultas de usuário, roteia solicitações para o back-end do aplicativo e exibe respostas geradas.
-
Backend – o back-end do aplicativo é uma API ASP.NET Core Mínima. O back-end hospeda o aplicativo Web estático Blazor e é o que orquestra as interações entre os diferentes serviços. Os serviços usados neste aplicativo incluem:
- Pesquisa de IA do Azure – indexa documentos dos dados armazenados em uma conta de Armazenamento do Azure. Isso torna os documentos pesquisáveis usando recursos de busca em vetores.
- Serviço OpenAI do Azure – fornece o LLM (Modelos de Linguagem Grande) para gerar respostas. Microsoft Agent Framework é usado em conjunto com o Serviço OpenAI do Azure para orquestrar os fluxos de trabalho de IA mais complexos.
Custo
A maioria dos recursos nessa arquitetura usa um tipo de preço básico ou de consumo. O preço de consumo é baseado no uso, o que significa que você paga apenas pelo que usa. Para concluir este artigo, há uma cobrança, mas é mínima. Ao terminar de consultar o artigo, exclua os recursos para evitar custos adicionais.
Para obter mais informações, consulte Exemplos do Azure: Custo no repositório de exemplos.
Pré-requisitos
Um ambiente de contêiner de desenvolvimento está disponível com todas as dependências necessárias para concluir este artigo. Você pode executar o contêiner de desenvolvimento em GitHub Codespaces (em um navegador) ou localmente usando Visual Studio Code.
Para acompanhar este artigo, você precisa dos seguintes pré-requisitos:
- Uma assinatura Azure – Criar uma gratuitamente
- Permissões de conta do Azure – Sua conta Azure deve ter permissões Microsoft.Authorization/roleAssignments/gravação, como User Access Administrator ou Owner.
- GitHub conta
Abrir o ambiente de desenvolvimento
Comece agora com um ambiente de desenvolvimento que tenha todas as dependências instaladas para concluir este artigo.
GitHub Codespaces executa um contêiner de desenvolvimento gerenciado por GitHub com Visual Studio Code para a Web como a interface do usuário. Para o ambiente de desenvolvimento mais simples, use GitHub Codespaces para que você tenha as ferramentas e dependências de desenvolvedor corretas pré-instaladas para concluir este artigo.
Importante
Todas as contas GitHub podem usar codespaces por até 60 horas gratuitas por mês com duas instâncias principais. Para obter mais informações, consulte armazenamento e horas de núcleo incluídos mensalmente do GitHub Codespaces.
Inicie o processo para criar um novo codespace GitHub no branch
maindo repositórioAzure-Samples/azure-search-openai-demo-csharpGitHub.Para ter o ambiente de desenvolvimento e a documentação disponíveis ao mesmo tempo, clique com o botão direito do mouse no seguinte Open no botão GitHub Codespaces e selecione Open link em novas janelas.
Na página Criar codespace, examine as configurações do codespace e selecione Criar novo codespace:
Aguarde até que o codespace seja iniciado. Esse processo de inicialização pode levar alguns minutos.
Na parte inferior da janela do terminal, entre no Azure com a Azure Developer CLI.
azd auth loginCopie o código do terminal e cole-o em um navegador. Siga as instruções para autenticar com sua conta Azure.
As tarefas restantes neste artigo ocorrem no contexto desse contêiner de desenvolvimento.
Implantar e executar
O repositório de exemplo contém todos os arquivos de código e configuração necessários para implantar um aplicativo de chat no Azure. As etapas a seguir explicam o processo de implantação do exemplo para Azure.
Implantar aplicativo de chat no Azure
Importante
Recursos do Azure criados nesta seção incorrem em custos imediatos, principalmente do recurso Azure IA Search. Esses recursos podem acumular custos mesmo se você interromper o comando antes que ele seja totalmente executado.
Execute o seguinte comando Azure CLI do Desenvolvedor para provisionar os recursos de Azure e implantar o código-fonte:
azd upQuando for solicitado que você insira um nome de ambiente, mantenha-o curto e minúsculo. Por exemplo,
myenv. Ele é usado como parte do nome do grupo de recursos.Quando solicitado, selecione uma assinatura para criar os recursos.
Quando for solicitado que você selecione um local na primeira vez, selecione um local próximo a você. Esse local é usado para a maioria dos recursos, incluindo hospedagem.
Se for solicitado que você solicite um local para o modelo OpenAI, selecione um local próximo a você. Se o mesmo local estiver disponível como seu primeiro local, selecione-o.
Aguarde até que o aplicativo seja implantado. A implantação pode levar até 20 minutos para ser concluída.
Depois que o aplicativo é implantado com êxito, uma URL aparece no terminal.
Selecione essa URL rotulada
Deploying service webpara abrir o aplicativo de chat em um navegador.
Usar o aplicativo de chat para obter respostas de arquivos PDF
O aplicativo de chat é carregado previamente com informações sobre benefícios dos funcionários a partir de arquivos PDF. Você pode usar o aplicativo de chat para fazer perguntas sobre os benefícios. As etapas a seguir explicam o processo de uso do aplicativo de chat.
No navegador, navegue até a página Chat usando a navegação à esquerda.
Selecione ou insira "O que está incluído no meu plano Northwind Health Plus que não está no padrão?" na caixa de texto do chat. Sua resposta é semelhante à imagem a seguir.
Na resposta, selecione uma citação. Uma janela pop-up é aberta exibindo a origem das informações.
Navegue entre as guias na parte superior da caixa de resposta para entender como a resposta foi gerada.
Tab Descrição Processo de pensamento Esse é um script das interações no chat. Você pode exibir o prompt do sistema ( content) e a pergunta do usuário (content).Conteúdo de suporte Isso inclui as informações para responder à sua pergunta e ao material de origem. O número de citações de material de origem é observado nas Configurações do Desenvolvedor. O valor padrão é 3. Citação Isso exibe a página de origem que contém a citação. Quando terminar, navegue de volta para a guia de resposta.
Usar as configurações do aplicativo de chat para alterar o comportamento das respostas
A inteligência do chat é determinada pelo modelo OpenAI e pelas configurações usadas para interagir com o modelo.
| Configuração | Descrição |
|---|---|
| Substituir modelo de prompt | Esse é o prompt usado para gerar a resposta. |
| Recuperar muitos resultados da pesquisa | Esse é o número de resultados da pesquisa que são usados para gerar a resposta. Você pode ver essas fontes retornadas nas guias Processo de pensamento e Conteúdo de suporte da citação. |
| Excluir categoria | Essa é a categoria de documentos que são excluídos dos resultados da pesquisa. |
| Usar o classificador semântico para recuperação | Esse é um recurso de Pesquisa de IA do Azure que usa o aprendizado de máquina para melhorar a relevância dos resultados da pesquisa. |
| Modo de recuperação | Vetores + Texto significa que os resultados da pesquisa são baseados no texto dos documentos e nas inserções dos documentos. Vetores significa que os resultados da pesquisa são baseados nas inserções dos documentos. Texto significa que os resultados da pesquisa são baseados no texto dos documentos. |
| Usar resumos contextuais de consulta em vez de documentos inteiros | Quando ambos Use semantic ranker e Use query-contextual summaries são verificados, o LLM usa legendas extraídas de passagens-chave, em vez de todas as passagens, nos documentos mais bem classificados. |
| Sugerir perguntas de acompanhamento | Faça com que o aplicativo de chat sugira perguntas de acompanhamento com base na resposta. |
As etapas a seguir explicam o processo de alteração das configurações.
No navegador, selecione o ícone de engrenagem no canto superior direito da página.
Se não estiver selecionado, marque a caixa de seleção Sugerir perguntas de acompanhamento e faça a mesma pergunta novamente.
What is included in my Northwind Health Plus plan that is not in standard?O chat pode retornar com sugestões de perguntas de acompanhamento.
Na guia Configurações, desmarque Usar classificador semântico para recuperação.
Faça a mesma pergunta novamente.
What is my deductible?Qual é a diferença nas respostas?
A resposta que utilizou o classificador semântico forneceu uma única resposta. A resposta sem classificação semântica retornou uma resposta menos direta.
Limpar os recursos
Para concluir, limpe os recursos Azure e GitHub CodeSpaces usados.
Limpar recursos de Azure
Os recursos de Azure criados neste artigo são cobrados para sua assinatura de Azure. Se você não espera precisar desses recursos no futuro, exclua-os para evitar incorrer em mais encargos.
Execute o seguinte comando Azure CLI do Desenvolvedor para excluir os recursos de Azure e remover o código-fonte:
azd down --purge
Limpar os GitHub Codespaces
A exclusão do ambiente GitHub Codespaces garante que você possa maximizar a quantidade de horas gratuitas por núcleo a que tem direito para sua conta.
Importante
Para obter mais informações sobre os direitos de sua conta GitHub, consulte armazenamento e horas centrais mensais incluídas do GitHub Codespaces.
Faça login no painel de controle do GitHub Codespaces (https://github.com/codespaces).
Localize seus codespaces em execução no momento provenientes do repositório
Azure-Samples/azure-search-openai-demo-csharpGitHub.
Abra o menu de contexto do codespace e selecione Excluir.
Obter ajuda
Este repositório de exemplo oferece informações para solução de problemas.
Se o problema não for resolvido, registre seu problema no Issues do repositório.
Próximas etapas
- Obtenha o código-fonte do exemplo usado neste artigo
- Construa um aplicativo de chat com Azure OpenAI arquitetura de solução de melhores práticas
- Controle de Acesso em Aplicativos de IA Generativa com Pesquisa de IA do Azure
- Construa uma solução OpenAI pronta para o mercado empresarial com o Gerenciamento de API do Azure
- Superar a busca em vetores com recursos de recuperação e classificação híbridas