Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo mostra-lhe como implementar e executar o Chat com a sua própria amostra de dados para .NET. Este exemplo implementa uma aplicação de chat usando C#, Azure OpenAI Service e Retrieval Augmented Generation (RAG) em Pesquisa de IA do Azure para obter respostas sobre benefícios para funcionários numa empresa fictícia. O aplicativo de bate-papo de benefícios para funcionários é semeado com arquivos PDF, incluindo um manual do funcionário, um documento de benefícios e uma lista de funções e expectativas da empresa.
Neste artigo, você:
- Implemente uma aplicação de chat no 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 o seu código personalizado.
Este artigo faz parte de uma coleção de artigos que lhe mostram como construir uma aplicação de chat usando o serviço Azure OpenAI e o Pesquisa de IA do Azure.
Outros artigos da coleção incluem:
Descrição geral da arquitetura
Neste aplicativo de exemplo, uma empresa fictícia chamada Contoso Electronics fornece a experiência do aplicativo de bate-papo a seus funcionários para fazer perguntas sobre benefícios, políticas internas e descrições de cargos e funções.
A arquitetura do aplicativo de bate-papo é mostrada no diagrama a seguir:
- Interface do usuário - A interface de bate-papo do aplicativo é um aplicativo Blazor WebAssembly. Esta interface é o que aceita consultas do utilizador, encaminha pedidos para o backend da aplicação e apresenta as respostas geradas.
-
Backend - O backend da aplicação é uma API ASP.NET Core Minimal. O backend hospeda o aplicativo web estático Blazor e é o que orquestra as interações entre os diferentes serviços. Os serviços utilizados nesta aplicação incluem:
- Pesquisa de IA do Azure – Indexa documentos a partir dos dados armazenados numa Armazenamento do Azure Conta. Isso torna os documentos pesquisáveis usando capacidades de pesquisa vetorial.
- Azure OpenAI Service – Fornece os Grandes Modelos de Linguagem (LLM) para gerar respostas. Microsoft Agent Framework é usado em conjunto com o Azure OpenAI Service para orquestrar os fluxos de trabalho de IA mais complexos.
Custo
A maioria dos recursos nessa arquitetura usa um nível 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 completar este artigo, há uma taxa, mas é mínima. Quando terminar o artigo, apague os recursos para evitar incorrer em despesas.
Para 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. Podes correr o contentor de desenvolvimento no GitHub Codespaces (num navegador) ou localmente usando o Visual Studio Code.
Para acompanhar este artigo, você precisa dos seguintes pré-requisitos:
- Uma subscrição Azure - Crie uma gratuitamente
- Permissões da conta Azure - A sua conta Azure deve ter permissões Microsoft.Authorization/roleAssignments/write, como User Access Administrator ou Proprietário.
- Conta GitHub
Ambiente de desenvolvimento aberto
Comece agora com um ambiente de desenvolvimento que tenha todas as dependências instaladas para concluir este artigo.
GitHub Codespaces executa um contentor de desenvolvimento gerido por GitHub com Visual Studio Code para a Web como interface de utilizador. Para o ambiente de desenvolvimento mais direto, utilize o GitHub Codespaces para ter as ferramentas e dependências corretas pré-instaladas para completar este artigo.
Importante
Todas as contas do GitHub podem usar o Codespaces para até 60 horas gratuitas por mês com 2 instâncias principais. Para mais informações, veja armazenamento e horas de CPU incluídos mensalmente no GitHub Codespaces.
Inicie o processo para criar um novo espaço de código GitHub no ramo
maindo repositórioAzure-Samples/azure-search-openai-demo-csharpGitHub.Para ter tanto o ambiente de desenvolvimento como a documentação disponíveis ao mesmo tempo, clique com o botão direito no seguinte botão Abrir em GitHub Codespaces e selecione Abrir link em novas janelas.
Na página Criar espaço de código, reveja as definições de configuração do espaço de código e, em seguida, selecione Criar novo espaço de código.
Aguarde até que o codespace esteja pronto. Este processo de arranque pode demorar alguns minutos.
No terminal na parte inferior do ecrã, inicie sessão no Azure com a CLI do Azure Developer.
azd auth loginCopie o código do terminal e cole-o em um navegador. Siga as instruções para autenticar com a sua conta Azure.
As tarefas restantes neste artigo ocorrem no contexto desse contêiner de desenvolvimento.
Desdobrar e executar
O repositório de exemplo contém todo o código e ficheiros de configuração necessários para implementar uma aplicação de chat no Azure. Os passos seguintes guiam-no no processo de implementação do exemplo no Azure.
Implementar a aplicação de chat para o Azure
Importante
Os recursos do Azure criados nesta secção têm custos imediatos, principalmente a partir do recurso Pesquisa de IA do Azure. Estes recursos podem gerar custos mesmo que interrompa o comando antes de estar totalmente executado.
Execute o seguinte comando Azure Developer CLI para provisionar os recursos do Azure e implementar o código-fonte:
azd upQuando lhe for pedido para introduzir 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 em que criar os recursos.
Quando lhe for pedido para selecionar uma localização pela primeira vez, selecione uma localização perto de si. Este local é usado para a maioria dos recursos, incluindo hospedagem.
Se for solicitado 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 isso.
Aguarde até que o aplicativo seja implantado. A implantação pode demorar até 20 minutos a ser concluída.
Depois de a aplicação ser implementada com sucesso, aparece um URL no terminal.
Selecione esse URL rotulado
Deploying service webpara abrir o aplicativo de bate-papo em um navegador.
Use o aplicativo de bate-papo para obter respostas de arquivos PDF
A aplicação de chat está pré-carregada com informações sobre benefícios para funcionários provenientes de ficheiros PDF. Você pode usar o aplicativo de bate-papo para fazer perguntas sobre os benefícios. As etapas a seguir orientam você pelo processo de uso do aplicativo de bate-papo.
No navegador, navegue até a página de bate-papo usando a navegação à esquerda.
Selecione ou digite "O que está incluído no meu plano Northwind Health Plus que não está no padrão?" na caixa de texto do bate-papo. A sua resposta é semelhante à imagem seguinte.
Na resposta, selecione uma citação. Abre-se uma janela pop-up que mostra a origem da informação.
Navegue entre as guias na parte superior da caixa de resposta para entender como a resposta foi gerada.
Separador Descrição Processo de pensamento Este é um script das interações no chat. Você pode visualizar o prompt do sistema ( content) e sua pergunta de usuário (content).Conteúdo de suporte Isso inclui as informações para responder à sua pergunta e o material de origem. O número de citações de material de origem é anotado 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 bate-papo para alterar o comportamento das respostas
A inteligência do chat é determinada pelo modelo OpenAI e pelas configurações que são usadas para interagir com o modelo.
| Configuração | Descrição |
|---|---|
| Substituir modelo de prompt | Este é o prompt que é usado para gerar a resposta. |
| Recuperar esses muitos resultados de pesquisa | Este é o número de resultados de pesquisa que são usados para gerar a resposta. Você pode ver essas fontes nas guias Raciocínio e Conteúdo de Suporte da citação. |
| Excluir categoria | Esta é a categoria de documentos excluídos dos resultados da pesquisa. |
| Usar classificador semântico para recuperação | Esta é uma funcionalidade do Pesquisa de IA do Azure que utiliza aprendizagem automática para melhorar a relevância dos resultados de pesquisa. |
| Modo de recuperação | Vetores + Texto significa que os resultados da pesquisa são baseados no texto dos documentos e nas incorporações dos documentos. Vetores significa que os resultados da pesquisa são baseados nas incorporações dos documentos. Texto significa que os resultados da pesquisa se baseiam no texto dos documentos. |
| Use resumos contextuais de consulta em vez de documentos inteiros | Quando Use semantic ranker e Use query-contextual summaries estão ambos selecionados, o LLM utiliza captações extraídas de passagens chave, em vez de todas as passagens, nos documentos de maior classificação. |
| Sugira perguntas de acompanhamento | Peça ao aplicativo de bate-papo que sugira perguntas de acompanhamento com base na resposta. |
As etapas a seguir orientam você pelo 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 selecionada, 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 bate-papo 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 usou o ranker semântico forneceu uma única resposta. A resposta sem classificação semântica retornou uma resposta menos direta.
Limpar recursos
Para terminar, limpa os recursos do Azure e GitHub CodeSpaces que usaste.
Limpar recursos do Azure
Os recursos do Azure criados neste artigo são faturados para a sua subscrição do Azure. Se você não espera precisar desses recursos no futuro, exclua-os para evitar incorrer em mais cobranças.
Execute o seguinte comando Azure Developer CLI para eliminar os recursos do Azure e remover o código-fonte:
azd down --purge
Limpar os Codespaces do GitHub
Eliminar o ambiente do GitHub Codespaces garante que pode maximizar a quantidade de horas gratuitas por núcleo a que a sua conta tem direito.
Importante
Para mais informações sobre os recursos da sua conta do GitHub, consulte armazenamento e horas de core incluídos mensalmente no GitHub Codespaces.
Inicie sessão no painel do GitHub Codespaces (https://github.com/codespaces).
Localiza os teus codespaces atualmente em execução provenientes do repositório
Azure-Samples/azure-search-openai-demo-csharpGitHub.
Abra o menu de contexto do espaço de código e selecione Excluir.
Obter ajuda
Este repositório de exemplos oferece informações para resolução de problemas.
Se o seu problema não for resolvido, registo o seu problema no Issues do repositório.
Próximos passos
- Obtenha o código-fonte do exemplo usado neste artigo
- Construa uma aplicação de chat com Azure OpenAI na arquitetura de melhor prática de solução
- Controlo de acesso em Aplicações de IA Generativa com Pesquisa de IA do Azure
- Construa uma solução OpenAI pronta para empresas com API Management do Azure
- Superando a pesquisa vetorial com recursos híbridos de recuperação e classificação