Compartilhar via


Comece a usar o chat com sua própria amostra de dados para Java

Este artigo mostra como implantar e executar o Chat com seus próprios exemplos de dados para Java. Este exemplo implementa um aplicativo de chat usando-se o Java, 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, incluindo o manual do funcionário, um documento de benefícios e uma lista de funções e expectativas da empresa.

Neste artigo, você realizará as seguintes tarefas:

  • 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 artigo, você poderá 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-se o Serviço OpenAI do Azure e a Pesquisa de IA do Azure. 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 regulares e fáceis de implantar que ajudam a garantir um ponto de partida de alta qualidade para os aplicativos de IA.

Visão geral da arquitetura

Uma arquitetura simples do aplicativo de chat é mostrada no diagrama a seguir:

Diagram showing architecture from client to backend app.Diagrama mostrando a arquitetura do cliente para o aplicativo de back-end.

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.
  • Um Serviço OpenAI do Azure a ser fornecido:
    • Palavras-chave para aprimorar a pesquisa sobre seus próprios dados.
    • Respostas do modelo OpenAI.
    • Inserções do modelo 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. Para concluir este artigo, há uma cobrança, mas é mínima. 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 seguintes pré-requisitos:

  • Uma assinatura do Azure – Crie uma gratuitamente.
  • Permissões de conta do Azure – sua conta do Azure deve ter permissões de Microsoft.Authorization/roleAssignments/write, como Administrador de Acesso de Usuário ou Proprietário.
  • Acesso permitido ao OpenAI do Azure na assinatura do Azure desejada. No momento, o acesso a esse serviço é permitido somente por aplicativo. Você pode solicitar acesso ao Serviço OpenAI do Azure preenchendo o formulário em https://aka.ms/oai/access. Abra um problema neste repositório para entrar em contato conosco se você tiver algum problema.
  • Uma conta do GitHub.

Abrir o 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. 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 Codespaces por até 60 horas gratuitas por mês com 2 instâncias principais. Para saber mais, confira Armazenamento e horas por núcleo incluídos mensalmente no GitHub Codespaces.

  1. 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.

    Open in GitHub CodespacesAbrir em GitHub Codespaces

  2. Na página Criar codespace, examine as configurações do codespace e selecione Criar Codespace.

    Screenshot of the confirmation screen before creating a new codespace.Captura de tela da tela de confirmação antes de criar um novo codespace.

  3. Aguarde até que o codespace seja iniciado. Esse processo de inicialização pode levar alguns minutos.

  4. No terminal na parte inferior da tela, entre no Azure com o Azure Developer CLI.

    azd auth login
    
  5. Copie o código do terminal e cole-o em um navegador. Siga as instruções para autenticar com sua conta do Azure.

  6. 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 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.

  1. Provisione os recursos do Azure e implante o código-fonte executando o seguinte comando:

    azd up
    
  2. Se 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.

  3. Quando solicitado, selecione uma assinatura para criar os recursos.

  4. 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.

  5. 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.

  6. Aguarde até que o aplicativo seja implantado, o que pode levar de 5 a 10 minutos para ser concluído.

  7. Depois que o aplicativo for implantado com êxito, você verá uma URL exibida no terminal.

  8. Selecione essa URL rotulada Deploying service web para abrir o aplicativo de chat em um navegador.

    Captura de tela do aplicativo de chat no navegador mostrando várias sugestões de entrada de chat, bem como a caixa de chat em que você insere uma pergunta.

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.

  1. No navegador, 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.

    Screenshot of chat app's first answer.Captura de tela da primeira resposta do aplicativo de chat.

  2. Na resposta, selecione uma das citações.

    Screenshot of chat app's first answer with its citation highlighted in a red box.Captura de tela da primeira resposta do aplicativo de chat com sua citação realçada em uma caixa vermelha.

  3. No painel direito, use as guias para entender como a resposta foi gerada.

    Tabulação Descrição
    Processo de pensamento Script das interações no chat.
    Conteúdo de suporte Inclui as informações para responder à sua pergunta e ao material de origem.
    Citação Exibe a página PDF que contém a citação.
  4. Quando terminar, selecione a guia escolhida novamente para fechar o painel.

Usar as configurações do aplicativo de chat para alterar o comportamento das respostas

O modelo OpenAI e as configurações usadas para interagir com o modelo determinam a inteligência do aplicativo de chat.

Screenshot of chat developer settings.Captura de tela das configurações do desenvolvedor de chat.

Configuração Descrição
Substituir modelo de prompt O prompt usado para gerar a resposta.
Recuperar muitos resultados da pesquisa 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 Categoria de documentos excluídos dos resultados da pesquisa.
Usar o classificador semântico para recuperação Recurso da Pesquisa de IA do Azure que usa o aprendizado de máquina para melhorar a relevância dos resultados da pesquisa.
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.
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.
Transmitir respostas de conclusão do chat Transmita a resposta em vez de esperar até que a resposta completa esteja disponível para uma resposta.

As etapas a seguir explicam o processo de alteração das configurações.

  1. No navegador, selecione a guia Configurações do desenvolvedor.

  2. Selecione a caixa de seleção Sugerir perguntas de acompanhamento e faça a mesma pergunta novamente.

    What is my deductible?
    

    O chat retorna perguntas de acompanhamento sugeridas, como estas:

    1. What is the cost sharing for out-of-network services?
    2. Are preventive care services subject to the deductible?
    3. How does the prescription drug deductible work?
    
  3. Na guia Configurações, desmarque Usar classificador semântico para recuperação.

  4. Fazer a mesma pergunta novamente?

    What is my deductible?
    
  5. Qual é a diferença nas respostas?

    Por exemplo, a resposta, que usou o classificador semântico, forneceu uma única resposta: The deductible for the Northwind Health Plus plan is $2,000 per year.

    A resposta sem classificação semântica retornou uma resposta, o que exigiu mais trabalho para obter a resposta: Based on the information provided, it is unclear what your specific deductible is. The Northwind Health Plus plan has different deductible amounts for in-network and out-of-network services, and there is also a separate prescription drug deductible. I would recommend checking with your provider or referring to the specific benefits details for your plan to determine your deductible amount.

Limpar os recursos

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. Use o seguinte comando para excluir os recursos do Azure e remover o código-fonte:

azd down --purge

Limpar GitHub Codespaces

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.

  1. Entre no painel do GitHub Codespaces.

  2. Localize seus codespaces em execução originados no repositório do GitHub Azure-Samples/azure-search-openai-demo-java.

    Screenshot of all the running Codespaces including their status and templates.Captura de tela de todos os Codespaces em execução, incluindo seu status e modelos.

  3. Abra o menu de contexto do codespace e selecione Excluir.

    Screenshot of the context menu for a single codespace with the delete option highlighted.Captura de tela do menu de contexto de um único codespace com a opção de exclusão destacada.

Como a pergunta é respondida?

O aplicativo é separado em dois aplicativos:

  • Um aplicativo JavaScript de front-end usando a estrutura React com a ferramenta de build Vite.
  • Um aplicativo Java de back-end responde à pergunta.

A API de back-end /chat percorre o processo de obtenção da resposta:

  • Opções de BUILD RAG: crie um conjunto de opções usadas para gerar uma resposta.
  • Criar uma abordagem usando opções RAG: use uma combinação de modelos baseados em recuperação e generativos para criar uma abordagem para gerar uma resposta precisa e natural.
  • Executar a abordagem com as opções RAG e a conversa anterior: use as opções de abordagem e RAG para gerar uma resposta com base na conversa anterior. A resposta inclui informações sobre quais documentos foram usados para gerar a resposta.

Obter ajuda

Este repositório de exemplo oferece informações de solução de problemas. Se o problema não for resolvido, registre-o em Problemas do repositório.

Próximas etapas