API de RAG (Conversar com Arquivos)
API de Retrieval-Augmented Generation (RAG) para indexação e recuperação de documentos usando Langchain e FastAPI. Esta API integra-se ao LibreChat para fornecer respostas com reconhecimento de contexto baseadas em arquivos enviados pelo usuário.
A RAG (Retrieval-Augmented Generation) API é uma ferramenta poderosa que se integra ao LibreChat para fornecer respostas com reconhecimento de contexto baseadas em arquivos enviados pelo usuário.
Ele utiliza LangChain, PostgresQL + PGVector e Python FastAPI para indexar e recuperar documentos relevantes, aprimorando a experiência de conversação.
Para mais detalhes, consulte o guia de configuração fornecido aqui: RAG API Configuration
Atualmente, este recurso está disponível através de Agents, bem como através de Custom Endpoints, OpenAI, Azure OpenAI, Anthropic e Google.
Os Assistants da OpenAI possuem sua própria implementação de RAG através da capacidade "Retrieval". Saiba mais sobre isso aqui.
Ainda será útil implementar o uso da API de RAG com a Assistants API, já que a OpenAI cobra tanto pelo armazenamento de arquivos quanto pelo uso de "Retrieval", e isso será introduzido em uma atualização futura.
Ainda confuso sobre RAG? Leia a seção que escrevi abaixo explicando o conceito geral com mais detalhes, com um link para um vídeo útil.
O que é RAG?
RAG, ou Retrieval-Augmented Generation, é um framework de IA projetado para melhorar a qualidade e a precisão das respostas geradas por grandes modelos de linguagem (LLMs). Ele alcança isso fundamentando o LLM em fontes externas de conhecimento, suplementando a representação interna de informações do modelo.
Recursos
- Indexação de Documentos: A API de RAG indexa arquivos enviados pelo usuário, criando embeddings para uma recuperação eficiente.
- Busca Semântica: Realiza uma busca semântica nos documentos indexados para encontrar as informações mais relevantes com base na entrada do usuário.
- Respostas com Consciência de Contexto: Ao aumentar o prompt do usuário com informações recuperadas, a API permite que o LibreChat gere respostas mais precisas e contextualmente relevantes.
- Processamento Assíncrono: A API suporta operações assíncronas para melhor desempenho e escalabilidade.
- Configuração Flexível: Permite a personalização de vários parâmetros, como tamanho do chunk, sobreposição (overlap) e modelos de embedding.
Principais Benefícios do RAG
- Acesso a fatos atualizados e confiáveis: O RAG garante que o LLM tenha acesso às informações mais atuais e confiáveis, recuperando fatos relevantes de uma base de conhecimento externa.
- Transparência e confiança: Os usuários podem acessar as fontes do modelo, permitindo que verifiquem a precisão das respostas geradas e construam confiança no sistema.
- Redução de vazamento de dados e alucinações: Ao fundamentar o LLM em um conjunto de fatos externos e verificáveis, o RAG reduz as chances de o modelo vazar dados sensíveis ou gerar informações incorretas ou enganosas.
- Custos computacionais e financeiros menores: O RAG reduz a necessidade de treinamento contínuo e atualização dos parâmetros do modelo, potencialmente diminuindo os custos computacionais e financeiros de executar chatbots baseados em LLM em um ambiente corporativo.
Como o RAG funciona
O RAG consiste em duas fases principais: recuperação e geração de conteúdo.
- Fase de Recuperação: Algoritmos pesquisam e recuperam trechos de informações relevantes para o prompt ou pergunta do usuário a partir de uma base de conhecimento externa. Em um ambiente de domínio aberto e voltado ao consumidor, esses fatos podem vir de documentos indexados na internet. Em um ambiente de domínio fechado e corporativo, um conjunto mais restrito de fontes é normalmente utilizado para maior segurança e confiabilidade.
- Fase Generativa: O conhecimento externo recuperado é anexado ao prompt do usuário e passado para o LLM. O LLM então utiliza o prompt aumentado e sua representação interna dos dados de treinamento para sintetizar uma resposta personalizada e envolvente para o usuário. A resposta pode ser enviada para um chatbot com links para suas fontes.
Desafios e Pesquisas em Andamento
Embora o RAG seja atualmente uma das ferramentas mais conhecidas para fundamentar LLMs em informações recentes e verificáveis, além de reduzir os custos de retreinamento e atualização constantes, ele não é perfeito. Alguns desafios incluem:
- Reconhecendo perguntas sem resposta: LLMs precisam ser explicitamente treinados para reconhecer perguntas que não podem responder com base nas informações disponíveis. Isso pode exigir um fine-tuning em milhares de exemplos de perguntas que podem e que não podem ser respondidas.
- Melhorando a recuperação e a geração: Pesquisas contínuas focam em inovar em ambas as extremidades do processo de RAG: melhorar a recuperação das informações mais relevantes possíveis para alimentar o LLM e otimizar a estrutura dessas informações para obter as respostas mais ricas do LLM.
Em resumo, RAG é uma estrutura poderosa que aprimora as capacidades de LLMs ao fundamentá-las em conhecimento externo e verificável. Isso ajuda a garantir respostas mais precisas, atualizadas e confiáveis, reduzindo os custos associados ao retreinamento contínuo de modelos. À medida que a pesquisa nesta área avança, podemos esperar melhorias adicionais na qualidade e na eficiência de sistemas de IA conversacional baseados em LLM.
Para uma explicação mais detalhada sobre RAG, você pode assistir a este vídeo informativo da IBM no Youtube:
Conclusão
A RAG API é uma adição poderosa ao LibreChat, permitindo respostas com reconhecimento de contexto baseadas em arquivos enviados pelo usuário. Ao aproveitar o Langchain e o FastAPI, ela oferece recursos eficientes de indexação, recuperação e geração de documentos. Com suas opções de configuração flexíveis e integração perfeita, a RAG API aprimora a experiência conversacional no LibreChat.
Para informações mais detalhadas sobre a RAG API, incluindo endpoints da API, formatos de solicitação/resposta e configuração avançada, consulte a documentação oficial da RAG API.
Como está este guia?