Introdução ao chat usando seu próprio exemplo de dados para Python
Este artigo mostra como implantar e executar o aplicativo de chat com seu próprio exemplo de dados para o Python. Este exemplo implementa um aplicativo de chat usando o Python, o Serviço OpenAI do Azure e a RAG (Geração Aumentada de Recuperação) na Pesquisa de IA do Azure para obter respostas sobre os benefícios para os funcionários em uma empresa fictícia. O aplicativo é semeado com arquivos PDF que incluem o manual do funcionário, um documento de benefícios e uma lista de funções e expectativas da empresa.
Assista ao seguinte vídeo de demonstração .
Seguindo as instruções neste artigo, você:
- Implantar um aplicativo 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, você pode começar 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 o Azure OpenAI e o Azure AI Search.
Outros artigos na coleção incluem:
Observação
Este artigo usa um ou mais modelos de aplicativo de IA como base para os exemplos e as diretrizes no artigo. Os modelos de aplicativo de IA fornecem implementações de referência bem mantidas que são fáceis de implantar. Eles ajudam a garantir um ponto de partida de alta qualidade para seus aplicativos de IA.
Visão geral da arquitetura
O diagrama a seguir mostra uma arquitetura simples do aplicativo de chat.
Os principais componentes da arquitetura incluem:
Um aplicativo Web para hospedar a experiência de chat interativa.
Um recurso da Pesquisa de IA do Azure para obter respostas de seus próprios dados.
Azure OpenAI para fornecer:
- Palavras-chave para aprimorar a pesquisa sobre seus próprios dados.
- Respostas do modelo do Azure OpenAI.
- Inserções do modelo de
ada
.
Cost
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. Há uma cobrança para concluir este artigo, mas é mínimo. Quando terminar o artigo, você poderá excluir os recursos para parar de ser cobrado.
Saiba mais sobre o custo no repositório de exemplo.
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 Codespaces do GitHub (em um navegador) ou localmente usando o Visual Studio Code.
Para usar este artigo, você precisa dos pré-requisitos a seguir.
- Uma assinatura do Azure. Crie um gratuitamente.
- Permissões de conta do Azure. Sua conta do Azure deve ter permissões
Microsoft.Authorization/roleAssignments/write
, como Administrador de Acesso do Usuário ou Proprietário. - Uma conta do GitHub.
Abrir um ambiente de desenvolvimento
Comece agora com um ambiente de desenvolvimento que tenha todas as dependências instaladas para concluir este artigo.
O GitHub Codespaces executa um contêiner de desenvolvimento gerenciado pelo GitHub com o Visual Studio Code para Web como interface do usuário (IU). Para o ambiente de desenvolvimento mais simples, use os Codespaces do GitHub para que você tenha as ferramentas e dependências de desenvolvedor corretas pré-instaladas para concluir este artigo.
Importante
Todas as contas do GitHub podem usar o GitHub Codespaces por até 60 horas gratuitas a cada mês com duas instâncias de núcleo. Para saber mais, confira Armazenamento e horas por núcleo incluídos mensalmente no GitHub Codespaces.
Inicie o processo para criar um novo codespace do GitHub no branch
main
do repositório GitHub do Azure-Samples/azure-search-openai-demo.Clique com o botão direito do mouse no botão a seguir e selecione Abrir link em novas janelas para ter o ambiente de desenvolvimento e a documentação disponíveis ao mesmo tempo.
Na página Criar codespace, examine as configurações do codespace e, em seguida, selecione Criar codespace.
Aguarde até que o codespace seja iniciado. Esse processo de inicialização pode levar alguns minutos.
No terminal na parte inferior da tela, faça login no Azure com o CLI do Azure Developer.
azd auth login
Copie o código do terminal e cole-o em um navegador. Siga as instruções para autenticar com sua conta do 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 no Azure.
Implantar o aplicativo de chat no Azure
Importante
Os recursos do Azure criados nesta seção geram custos imediatos, principalmente do recurso de Pesquisa de IA do Azure. Esses recursos podem acumular custos mesmo se você interromper o comando antes que ele seja totalmente executado.
Execute o seguinte comando do Azure Developer CLI para provisionar os recursos do Azure e implantar o código-fonte:
azd up
Se for solicitado que você insira um nome de ambiente, mantenha-o curto e use letras minúsculas. Um exemplo é
myenv
. Ele é usado como parte do nome do grupo de recursos.Quando solicitado, selecione uma assinatura na qual 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 um local para o modelo do Azure OpenAI ou para o recurso de Inteligência de Documentos de IA do Azure, selecione o local mais próximo de você. Se o mesmo local estiver disponível como seu primeiro local, selecione-o.
Aguarde 5 ou 10 minutos após a implantação do aplicativo antes de continuar.
Depois que o aplicativo é implantado com êxito, uma URL é exibida no terminal.
Selecione a URL rotulada
(✓) Done: Deploying service webapp
para abrir o aplicativo de chat em um navegador.
Usar o aplicativo de chat para obter respostas de arquivos PDF
O aplicativo de chat é pré-carregado com informações de benefícios dos funcionários 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. Suas respostas podem variar conforme os modelos subjacentes são atualizados.
No navegador, selecione ou insira O que acontece em uma avaliação de desempenho? na caixa de texto do chat.
Na resposta, selecione uma citação.
No painel direito, use as guias para entender como a resposta foi gerada.
Tabulação Descrição Processo de pensamento Esta aba contém 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 Esta aba inclui as informações para responder à sua pergunta e o 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 Esta aba exibe a página original que contém a citação. Quando terminar, selecione a guia novamente para fechar o painel.
Usar configurações de aplicativo de chat para alterar o comportamento das respostas
A inteligência do chat é determinada pelo modelo do Azure OpenAI e pelas configurações usadas para interagir com o modelo.
Configuração | Descrição |
---|---|
Substituir modelo de prompt | Substitui o prompt usado para gerar a resposta com base na pergunta e nos resultados da pesquisa. |
Temperatura | Define a temperatura da solicitação para o LLM (modelo de linguagem grande) que gera a resposta. Temperaturas mais altas resultam em respostas mais criativas, mas podem ser menos fundamentadas. |
Semente | Define uma semente para aprimorar a reprodutibilidade das respostas do modelo. A semente pode ser qualquer número inteiro. |
Pontuação mínima da pesquisa | Define uma pontuação mínima para os resultados da pesquisa que retornam da Pesquisa de IA do Azure. O intervalo de pontuação dependerá se você estiver usando híbrido (padrão), somente vetores ou somente texto. |
Pontuação mínima do reclassificador | Define uma pontuação mínima para os resultados da pesquisa que retornam do reclassificador semântico. A pontuação sempre varia entre 0 e 4. Quanto maior a pontuação, mais semanticamente relevante é o resultado da pergunta. |
Recuperar muitos resultados da pesquisa | Define o número de resultados da pesquisa a serem recuperados do Azure AI Search. Mais resultados podem aumentar a probabilidade de encontrar a resposta correta. Mas mais resultados também podem fazer o modelo se "perder no meio". Você pode ver essas fontes retornadas nas abas Processo de pensamento e Conteúdo de suporte da citação. |
Excluir categoria | Especifica uma categoria a ser excluída dos resultados da pesquisa. Não há categorias usadas no conjunto de dados padrão. |
Usar o classificador semântico para recuperação | Habilita o classificador semântico do Azure AI Search, que é um modelo que reclassifica os resultados da pesquisa com base na semelhança semântica com a consulta do usuário. |
Usar legendas semânticas | Envia legendas semânticas para o LLM em vez do resultado completo da pesquisa. Uma legenda semântica é extraída de um resultado de pesquisa durante o processo de classificação semântica. |
Sugerir perguntas de acompanhamento | Pede ao LLM que sugira perguntas de acompanhamento com base na consulta do usuário. |
Modo de recuperação | Define o modo de recuperação para a consulta da Pesquisa de IA do Azure. Vetores + Texto (Híbrido) usa uma combinação de pesquisa de vetor e pesquisa de texto completo. Vetores utiliza apenas pesquisa vetorial. O texto usa apenas pesquisa de texto completo. O híbrido geralmente é ideal. |
Transmitir respostas de conclusão do chat | Transmite continuamente a resposta para a interface do usuário do chat conforme ela é gerada. |
As etapas a seguir explicam o processo de alteração das configurações.
No navegador, selecione a guia Configurações do desenvolvedor.
Selecione a caixa de seleção Sugerir perguntas de acompanhamento e faça a mesma pergunta novamente.
What happens in a performance review?
O chat retornou perguntas de acompanhamento sugeridas, como os seguintes exemplos:
1. What is the frequency of performance reviews? 2. How can employees prepare for a performance review? 3. Can employees dispute the feedback received during the performance review?
Na guia Configurações, desmarque a caixa de seleção Usar classificador semântico para recuperação.
Faça a mesma pergunta novamente.
What happens in a performance review?
Qual é a diferença nas respostas?
- Com o Classificador semântico: durante uma avaliação de desempenho na Contoso Electronics, os funcionários têm a oportunidade de conversar sobre seus sucessos e desafios no local de trabalho (1). A revisão fornece comentários positivos e construtivos para ajudar os funcionários a desenvolver e crescer em suas funções (1). O funcionário recebe um resumo escrito da revisão de desempenho, que inclui uma classificação de desempenho, comentários e metas e objetivos para o próximo ano (1). A avaliação de desempenho é um diálogo bidirecional entre gerentes e funcionários (1).
- Sem o classificador semântico: durante uma revisão de desempenho na Contoso Electronics, os funcionários têm a oportunidade de discutir seus sucessos e desafios no local de trabalho. Os comentários positivos e construtivos são fornecidos para ajudar os funcionários a se desenvolverem e crescerem em suas funções. É fornecido um resumo escrito da avaliação de desempenho, incluindo uma classificação de desempenho, comentários e metas para o ano seguinte. A avaliação é um diálogo bidirecional entre gerentes e funcionários (1).
Limpar os recursos
As etapas a seguir explicam o processo de limpeza dos recursos usados.
Limpar recursos do Azure
Os recursos do Azure criados neste artigo são cobrados para sua assinatura do Azure. Se você não espera precisar desses recursos no futuro, exclua-os para evitar incorrer em mais encargos.
Execute o seguinte comando do Azure Developer CLI para excluir os recursos do Azure e remover o código-fonte:
azd down --purge --force
As opções fornecem:
purge
: os recursos excluídos são limpos imediatamente para que você possa reutilizar os tokens do Azure OpenAI por minuto.force
: a exclusão ocorre silenciosamente, sem exigir o consentimento do usuário.
Limpar os codespaces do GitHub e o Visual Studio Code
A exclusão do ambiente GitHub Codespaces garante que você possa maximizar a quantidade de horas gratuitas por núcleo que você tem direito na sua conta.
Importante
Para saber mais sobre os direitos da sua conta do GitHub, confira O GitHub Codespaces inclui mensalmente armazenamento e horas de núcleo.
Entre no painel do GitHub Codespaces.
Localize seus codespaces em execução que são originados no repositório do GitHub Azure-Samples/azure-search-openai-demo.
Abra o menu de contexto do codespace e selecione Excluir.
Obter ajuda
Este repositório de exemplo oferece informações de solução de problemas.
Se o problema não for resolvido, inclua seu problema na página da Web Problemas do repositório.
Conteúdo relacionado
- Obtenha o código-fonte para o exemplo usado neste artigo.
- Crie um aplicativo de chat com a arquitetura de solução baseada em práticas recomendadas do Azure OpenAI.
- Veja o controle de acesso em aplicativos da IA Generativa com a Pesquisa de IA do Azure.
- Crie uma solução do Azure OpenAI pronta para uso empresarial com o Gerenciamento de API do Azure.
- Veja Pesquisa de IA do Azure: superando a busca em vetores com capacidades de recuperação e classificação híbridas.