Comece com o bate-papo usando sua própria amostra de dados para Python
Este artigo mostra como implantar e executar o bate-papo com seu próprio exemplo de dados para Python. Este exemplo implementa um aplicativo de bate-papo usando Python, Serviço OpenAI do Azure e Geração Aumentada de Recuperação (RAG) na Pesquisa de IA do Azure para obter respostas sobre os benefícios dos funcionários em uma empresa fictícia. O aplicativo é semeado com arquivos PDF, incluindo o manual do funcionário, um documento de benefícios e uma lista de funções e expectativas da empresa.
Seguindo as instruções neste artigo, você irá:
- Implante 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 Serviço OpenAI do Azure e a Pesquisa do Azure AI.
Outros artigos da coleção incluem:
Nota
Este artigo usa um ou mais modelos de aplicativo de IA como base para os exemplos e orientações no artigo. Os modelos de aplicativos de IA fornecem implementações de referência bem mantidas e fáceis de implantar que ajudam a garantir um ponto de partida de alta qualidade para seus aplicativos de IA.
Descrição geral da arquitetura
Uma arquitetura simples do aplicativo de bate-papo é mostrada no diagrama a seguir:
Os principais componentes da arquitetura incluem:
- Uma aplicação Web para alojar a experiência de chat interativa.
- Um recurso do Azure AI Search para obter respostas dos seus próprios dados.
- Um Serviço OpenAI do Azure para fornecer:
- Palavras-chave para melhorar a pesquisa sobre os seus próprios dados.
- Respostas do modelo OpenAI.
- Incorporações do modelo ada
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, haverá uma cobrança, mas será mínima. Quando terminar o artigo, você pode excluir os recursos para parar de incorrer em cobranças.
Saiba mais sobre o custo no repositório de amostra.
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 no GitHub Codespaces (em um navegador) ou localmente usando o Visual Studio Code.
Para usar este artigo, você precisa dos seguintes pré-requisitos:
- Uma assinatura do Azure - Crie uma gratuitamente
- Permissões da conta do Azure - Sua Conta do Azure deve ter permissões Microsoft.Authorization/roleAssignments/write, como Administrador de Acesso de Usuário ou Proprietário.
- Acesso concedido ao Azure OpenAI na subscrição pretendida do Azure. Atualmente, o acesso a este serviço é concedido apenas por pedido. Você pode solicitar acesso ao Azure OpenAI preenchendo o formulário em https://aka.ms/oai/access. Abra um problema neste repositório para entrar em contato conosco se tiver um problema.
- Conta do GitHub
Ambiente de desenvolvimento aberto
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 for the Web como interface do usuário. Para o ambiente de desenvolvimento mais simples, use o GitHub Codespaces para que você tenha as ferramentas de desenvolvedor corretas e as dependências pré-instaladas para concluir este artigo.
Importante
Todas as contas do GitHub podem usar o Codespaces por até 60 horas gratuitas por mês com 2 instâncias principais. Para obter mais informações, consulte GitHub Codespaces mensalmente incluído armazenamento e horas principais.
Inicie o processo para criar um novo espaço de código GitHub na
main
ramificação doAzure-Samples/azure-search-openai-demo
repositório GitHub.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 espaço de código, revise as definições de configuração do espaço de código e selecione Criar novo espaço de código
Aguarde até que o espaço de código inicie. Este processo de arranque pode demorar alguns minutos.
No terminal na parte inferior da tela, entre no Azure com a 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 orientam você pelo processo de implantação do exemplo no Azure.
Implantar o aplicativo de chat no Azure
Importante
Os recursos do Azure criados nesta seção incorrem em custos imediatos, principalmente do recurso Azure AI Search. Esses recursos podem acumular custos mesmo se você interromper o comando antes que ele seja totalmente executado.
Execute o seguinte comando da CLI do Desenvolvedor do Azure para provisionar os recursos do Azure e implantar o código-fonte:
azd up
Se você for solicitado a inserir 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 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 ou para o recurso Document Intelligence, selecione o local mais próximo de você. Se o mesmo local estiver disponível como seu primeiro local, selecione isso.
Aguarde 5 ou 10 minutos após a implantação do aplicativo antes de continuar.
Depois que o aplicativo for implantado com êxito, você verá uma URL exibida no terminal.
Selecione esse URL rotulado
(✓) Done: Deploying service webapp
para abrir o aplicativo de bate-papo em um navegador.
Use o aplicativo de bate-papo para obter respostas de arquivos PDF
O aplicativo de bate-papo é pré-carregado com informações de benefícios de funcionários de arquivos 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. As suas respostas podem variar à medida que os modelos subjacentes são atualizados.
No navegador, selecione ou digite O que acontece em uma avaliação de desempenho? na caixa de texto do bate-papo.
Na resposta, selecione uma citação.
No painel direito, use as guias para entender como a resposta foi gerada.
Separador Description 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 original que contém a citação. Quando terminar, selecione a guia selecionada novamente para fechar o painel.
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.
Definiçã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 que gera a resposta. Temperaturas mais altas resultam em respostas mais criativas, mas podem ser menos fundamentadas. |
Sementes | Define uma semente para melhorar a reprodutibilidade das respostas do modelo. A semente pode ser qualquer inteiro. |
Pontuação mínima de pesquisa | Define uma pontuação mínima para os resultados de pesquisa que voltam da pesquisa de IA do Azure. O intervalo de pontuação depende se você está 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. O resultado varia sempre entre 0-4. Quanto maior a pontuação, mais semanticamente relevante é o resultado para a pergunta. |
Recuperar esses muitos resultados de pesquisa | Define o número de resultados de pesquisa a serem recuperados da pesquisa do Azure AI. Mais resultados podem aumentar a probabilidade de encontrar a resposta correta, mas podem levar o modelo a ficar "perdido no meio". Você pode ver essas fontes retornadas nas guias 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 classificador semântico para recuperação | Habilita o classificador semântico do Azure AI Search, 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. |
Sugira 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 Azure AI Search. Vetores + Texto (Híbrido) usa uma combinação de pesquisa vetorial e pesquisa de texto completo, Vetores usa apenas pesquisa vetorial e Texto usa apenas pesquisa de texto completo. O híbrido é geralmente o ideal. |
Transmitir respostas de conclusão do chat | Transmite continuamente a resposta à interface do usuário do chat à medida que ela é gerada. |
As etapas a seguir orientam você pelo processo de alteração das configurações.
No navegador, selecione a guia Configurações do desenvolvedor .
Marque a caixa de seleção Sugerir perguntas de acompanhamento e faça a mesma pergunta novamente.
What happens in a performance review?
O bate-papo retornou sugestões de perguntas de acompanhamento, como as seguintes:
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 Usar classificador semântico para recuperação.
Fazer 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 terão a oportunidade de discutir seus sucessos e desafios no local de trabalho (1). A revisão fornecerá feedback positivo e construtivo para ajudar os funcionários a se desenvolverem e crescerem em suas funções (1). O funcionário receberá um resumo escrito da avaliação de desempenho, que incluirá uma avaliação de seu desempenho, feedback e metas e objetivos para o próximo ano (1). A avaliação de desempenho é um diálogo bidirecional entre gestores e empregados (1).
Sem a classificação semântica: durante uma avaliação de desempenho na Contoso Electronics, os funcionários têm a oportunidade de discutir seus sucessos e desafios no local de trabalho. Feedback positivo e construtivo é fornecido para ajudar os funcionários a se desenvolverem e crescerem em suas funções. É apresentado um resumo escrito da avaliação de desempenho, incluindo uma avaliação do desempenho, feedback e objetivos para o ano seguinte. A revisão é um diálogo bidirecional entre gestores e empregados (1).
Clean up resources (Limpar recursos)
Limpar recursos do Azure
Os recursos do Azure criados neste artigo são cobrados na sua assinatura 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 da CLI do Desenvolvedor do Azure para excluir os recursos do Azure e remover o código-fonte:
azd down --purge --force
Os interruptores fornecem:
purge
: Os recursos excluídos são imediatamente limpos. Isso permite que você reutilize o Azure OpenAI TPM.force
: A exclusão acontece silenciosamente, sem exigir o consentimento do usuário.
Limpar espaços de código do GitHub
Excluir o ambiente do GitHub Codespaces garante que você possa maximizar a quantidade de direitos de horas gratuitas por núcleo que você obtém para sua conta.
Importante
Para obter mais informações sobre os direitos da sua conta do GitHub, consulte Codespaces do GitHub mensalmente incluídos armazenamento e horas principais.
Entre no painel do GitHub Codespaces (https://github.com/codespaces).
Localize seus Codespaces atualmente em execução provenientes do
Azure-Samples/azure-search-openai-demo
repositório GitHub.Abra o menu de contexto do espaço de código 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, registre-o nos Problemas do repositório.
Próximos passos
- Obtenha o código-fonte para o exemplo usado neste artigo
- Crie um aplicativo de bate-papo com a arquitetura de solução de práticas recomendadas do Azure OpenAI
- Controle de acesso em aplicativos de IA generativa com a Pesquisa de IA do Azure
- Crie uma solução OpenAI pronta para empresas com o Azure API Management
- Superando a pesquisa vetorial com recursos híbridos de recuperação e classificação