"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Construindo um aplicativo RAG com LlamaIndex.ts e Azure OpenAI: primeiros passos!

Construindo um aplicativo RAG com LlamaIndex.ts e Azure OpenAI: primeiros passos!

Publicado em 2024-11-08
Navegar:302

À medida que a IA continua a moldar a forma como trabalhamos e interagimos com a tecnologia, muitas empresas procuram formas de aproveitar os seus próprios dados em aplicações inteligentes. Se você já usou ferramentas como ChatGPT ou Azure OpenAI, já sabe como a IA generativa pode melhorar processos e aprimorar as experiências do usuário. Entretanto, para obter respostas verdadeiramente personalizadas e relevantes, seus aplicativos precisam incorporar seus dados proprietários.

É aqui que entra a Geração Aumentada de Recuperação (RAG), fornecendo uma abordagem estruturada para integrar a recuperação de dados com respostas baseadas em IA. Com estruturas como LlamaIndex, você pode facilmente incorporar esse recurso em suas soluções, liberando todo o potencial de seus dados de negócios.

Building a RAG app with LlamaIndex.ts and Azure OpenAI: Getting started!

Deseja executar e explorar o aplicativo rapidamente? Clique aqui.

O que é RAG - Geração Aumentada de Recuperação?

Retrieval-Augmented Generation (RAG) é uma estrutura de rede neural que aprimora a geração de texto de IA, incluindo um componente de recuperação para acessar informações relevantes e integrar seus próprios dados. Consiste em duas partes principais:

  • Retriever: Um modelo de recuperação denso (por exemplo, baseado em BERT) que pesquisa um grande corpus de documentos para encontrar passagens relevantes ou informações relacionadas a uma determinada consulta.
  • Gerador: Um modelo sequência a sequência (por exemplo, baseado em BART ou T5) que recebe a consulta e o texto recuperado como entrada e gera uma resposta coerente e contextualmente enriquecida.

O recuperador encontra documentos relevantes e o gerador os utiliza para criar respostas mais precisas e informativas. Esta combinação permite que o modelo RAG aproveite o conhecimento externo de forma eficaz, melhorando a qualidade e relevância do texto gerado.

Como o LlamaIndex implementa o RAG?

Para implementar um sistema RAG usando LlamaIndex, siga estas etapas gerais:

Ingestão de dados:

  • Carregue seus documentos em LlamaIndex.ts usando um carregador de documentos como SimpleDirectoryReader, que ajuda na importação de dados de várias fontes, como PDFs, APIs ou bancos de dados SQL.
  • Divida documentos grandes em partes menores e gerenciáveis ​​usando o SentenceSplitter.

Criação de índice:

  • Crie um índice vetorial desses pedaços de documentos usando VectorStoreIndex, permitindo pesquisas eficientes de similaridade com base em embeddings.
  • Opcionalmente, para conjuntos de dados complexos, use técnicas de recuperação recursivas para gerenciar dados estruturados hierarquicamente e recuperar seções relevantes com base nas consultas do usuário.

Configuração do mecanismo de consulta:

  • Converta o índice vetorial em um mecanismo de consulta usando asQueryEngine com parâmetros como similarityTopK para definir quantos documentos principais devem ser recuperados.
  • Para configurações mais avançadas, crie um sistema multiagente onde cada agente é responsável por documentos específicos e um agente de nível superior coordena o processo geral de recuperação.

Recuperação e Geração:

  • Implemente o pipeline RAG definindo uma função objetivo que recupere partes relevantes do documento com base nas consultas do usuário.
  • Use o RetrieverQueryEngine para realizar a recuperação real e o processamento de consultas, com etapas opcionais de pós-processamento, como reclassificar os documentos recuperados usando ferramentas como CohereRerank.

Para um exemplo prático, fornecemos um aplicativo de exemplo para demonstrar uma implementação RAG completa usando Azure OpenAI.

Aplicação prática de amostra RAG

Agora vamos nos concentrar na construção de um aplicativo RAG usando LlamaIndex.ts (a implementação TypeScipt do LlamaIndex) e Azure OpenAI, e implantá-lo como aplicativos Web sem servidor em aplicativos de contêiner do Azure.

Requisitos para executar a amostra

  • Azure Developer CLI (azd): uma ferramenta de linha de comando para implantar facilmente todo o seu aplicativo, incluindo back-end, front-end e bancos de dados.
  • Conta do Azure: você precisará de uma conta do Azure para implantar o aplicativo. Obtenha uma conta gratuita do Azure com alguns créditos para começar.

Você encontrará o projeto de introdução no GitHub. Recomendamos que você faça um fork deste modelo para poder editá-lo livremente quando necessário:

Building a RAG app with LlamaIndex.ts and Azure OpenAI: Getting started!

Arquitetura de alto nível

O aplicativo de projeto de introdução é construído com base na seguinte arquitetura:

  • Azure OpenAI: o provedor de IA que processa as consultas do usuário.
  • LlamaIndex.ts: a estrutura que ajuda a ingerir, transformar e vetorizar conteúdo (PDFs) e criar um índice de pesquisa.
  • Aplicativos de contêiner do Azure: o ambiente de contêiner onde o aplicativo sem servidor está hospedado.
  • Azure Managed Identity: Garante segurança de alto nível e elimina a necessidade de lidar com credenciais e chaves de API.

Building a RAG app with LlamaIndex.ts and Azure OpenAI: Getting started!

Para mais detalhes sobre quais recursos são implantados, verifique a pasta infra disponível em todos os nossos exemplos.

Exemplo de fluxos de trabalho de usuário

O aplicativo de exemplo contém lógica para dois fluxos de trabalho:

  1. Ingestão de dados: os dados são buscados, vetorizados e índices de pesquisa são criados. Se você quiser adicionar mais arquivos, como PDFs ou arquivos do Word, é aqui que você deve adicioná-los.

      npm run generate
    
  2. Atendimento de solicitações de prompt: o aplicativo recebe prompts do usuário, os envia para o Azure OpenAI e aumenta esses prompts usando o índice vetorial como um recuperador.

Executando a amostra

Antes de executar o exemplo, certifique-se de ter provisionado os recursos necessários do Azure.

Para executar o modelo GitHub no GitHub Codespace, basta clicar em
Building a RAG app with LlamaIndex.ts and Azure OpenAI: Getting started!

Na sua instância do Codespaces, entre na sua conta do Azure, a partir do seu terminal:

azd auth login

Provisione, empacote e implante o aplicativo de exemplo no Azure usando um único comando:

azd up

Para executar e testar o aplicativo localmente, instale as dependências npm e execute o aplicativo:

npm install
npm run dev

O aplicativo será executado na porta 3000 em sua instância do Codespaces ou em http://localhost:3000 em seu navegador.

Conclusão

Este guia demonstrou como construir um aplicativo RAG (Retrieval-Augmented Generation) sem servidor usando LlamaIndex.ts e Azure OpenAI, implantado no Microsoft Azure. Ao seguir este guia, você pode aproveitar a infraestrutura do Azure e os recursos do LlamaIndex para criar aplicativos de IA poderosos que fornecem respostas contextualmente enriquecidas com base em seus dados.

Estamos entusiasmados para ver o que você cria com este aplicativo de introdução. Sinta-se à vontade para fazer um fork e curtir o repositório GitHub para receber as atualizações e recursos mais recentes.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/azure/building-a-rag-app-with-llamaindexts-and-azure-openai-getting-started-3pgb?1 Se houver alguma violação, entre em contato com study_golang @163.com excluir
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3