Compartilhar via


Comece a usar o Chat de IA Sem Servidor com RAG usando LlamaIndex

Simplifique o Desenvolvimento de aplicativos de IA com RAG usando seus próprios dados gerenciados pelas tecnologias LlamaIndex, Azure Functions e Serverless. Essas ferramentas gerenciam e escalam a infraestrutura automaticamente, permitindo que você se concentre na funcionalidade do chatbot. O LlamaIndex lida com o pipeline de dados desde a ingestão até a resposta transmitida.

Captura de tela do aplicativo de chat no navegador que mostra a entrada do chat e a resposta.

Visão geral da arquitetura

O fluxo de aplicativo inclui:

  • Usar a interface de chat para inserir um prompt.
  • Enviar o prompt do usuário para a API Serverless por meio de chamadas HTTP.
  • Receber o prompt do usuário e usar a estrutura LlamaIndex para processar e transmitir a resposta. A API sem servidor usa um mecanismo para criar uma conexão com o LLM (modelo de linguagem grande) do OpenAI do Azure e o índice de vetor do LlamaIndex.

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

Diagrama da arquitetura do aplicativo de chat RAG do LlamaIndex.

Este exemplo usa o LlamaIndex para gerar inserções e armazenar em seu próprio repositório de vetores. O LlamaIndex também fornece integração com outros repositórios de vetores , incluindo a Pesquisa de IA do Azure. Essa integração não é demonstrada neste exemplo.

Onde está o Azure nessa arquitetura?

A arquitetura do aplicativo depende dos seguintes serviços e componentes:

  • O OpenAI do Azure representa o provedor de IA para o qual enviamos as consultas do usuário.
  • O LlamaIndex é a estrutura que nos ajuda a ingerir, transformar e vetorizar nosso conteúdo (arquivo PDF) e criar um índice de pesquisa a partir de nossos dados.
  • Os Aplicativos de Contêiner do Azure são o ambiente de contêiner em que o aplicativo está hospedado.
  • A Identidade gerenciada do Azure nos ajuda a garantir a melhor segurança da categoria e elimina os requisitos para você, como desenvolvedor, lidar com credenciais e chaves de API.

O LlamaIndex gerencia os dados desde a ingestão até a recuperação

Para implementar um sistema RAG (Retrieval-Augmented Generation) usando o LlamaIndex, as principais etapas são identificadas abaixo com a funcionalidade do LlamaIndex especificada:

Processar Descrição LlamaIndex
Ingestão de dados Importe dados de fontes como PDFs, APIs ou bancos de dados. SimpleDirectoryReader
Documentos em partes Divida documentos grandes em partes menores. SentenceSplitter
Criação de índice vetorial Crie um índice vetorial para pesquisas de similaridade eficientes. VectorStoreIndex
Recuperação recursiva (opcional) do índice Gerencie conjuntos de dados complexos com recuperação hierárquica.
Converter para mecanismo de consulta Converta o índice vetorial em um mecanismo de consulta. asQueryEngine
Configuração avançada de consulta (opcional) Use agentes para um sistema multiagente.
Implementar o pipeline RAG Defina uma função de objetivo que receba consultas do usuário e recupere partes relevantes do documento.
Executar recuperação Processe consultas e reclassifique documentos. RetrieverQueryEngine, CohereRerank

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 Microsoft.Authorization/roleAssignments/write, como Administrador de Acesso do 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.
  • 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. Abra no Codespace.

    Abrir em GitHub Codespaces

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

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

    azd auth login
    

    Conclua o processo de autenticação.

  4. 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 o aplicativo de chat sem servidor 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. Para provisionar os recursos do Azure e implantar o código-fonte, execute o seguinte comando da CLI do desenvolvedor do Azure:

    azd up
    
  2. Use a seguinte tabela para responder aos prompts:

    Prompt Resposta
    Nome do ambiente Mantenha-o curto e em letras minúsculas. Adicione seu nome ou alias. Por exemplo, john-chat. Ele é usado como parte do nome do grupo de recursos.
    Assinatura Selecione a assinatura para criar os recursos.
    Localização (para hospedagem) Selecione uma localização perto de você na lista.
    Localização do modelo OpenAI Selecione uma localização perto de você na lista. Se o mesmo local estiver disponível como seu primeiro local, selecione-o.
  3. Aguarde até que o aplicativo seja implantado. Levará entre 5 e 10 minutos para a implantação ser concluída.

  4. Depois que o aplicativo tiver sido implantado com êxito, você verá duas URLs exibidas no terminal.

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

    Captura de tela da saída do comando de implantação mostrando a URL do aplicativo Web.

Usar o aplicativo de chat para obter respostas de arquivos PDF

O aplicativo de chat é pré-carregado com informações sobre os padrões físicos para correspondência postal doméstica de um catálogo de arquivos PDF. Você pode usar o aplicativo de chat para fazer perguntas sobre a carta de correspondência e os pacotes. As etapas a seguir explicam o processo de uso do aplicativo de chat.

  1. No navegador, selecione ou digite Quanto custa enviar um pacote grande para a França?.

  2. O LlamaIndex deriva a resposta, usa o arquivo PDF e transmite a resposta.

    Captura de tela do aplicativo de chat no navegador que mostra a entrada do chat e a resposta.

    A resposta vem do OpenAI do Azure com influência dos dados PDF ingeridos no repositório de vetores do LlamaIndex.

Limpar os recursos

Para limpar recursos, há duas coisas a serem abordadas:

  • Recursos do Azure, você pode limpá-los com a CLI do Desenvolvedor do Azure, azd.
  • Seu ambiente de desenvolvedor, independentemente de você ter usado o GitHub Codespaces ou o DevContainers por meio do Visual Studio Code.

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

Limpar ambientes de desenvolvedor

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 (https://github.com/codespaces).

  2. Localize seus Codespaces atualmente em execução, originados do repositório Azure-Samples/llama-index-javascript do GitHub.

    Captura de tela de todos os Codespaces em execução, incluindo seu status e modelos.

  3. Abra o menu de contexto, ..., do codespace e então 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 seu problema nos problemas do repositório.

Próxima etapa