Documentação
O objetivo deste pacote é oferecer um sistema conveniente de resposta a perguntas (RAG) com uma configuração simples baseada em YAML que permite a interação com múltiplas coleções de documentos locais. Atenção especial é dada às melhorias em vários componentes do sistema, além dos RAGs básicos baseados em LLM - melhor análise de documentos, pesquisa híbrida, pesquisa habilitada para HyDE, histórico de bate-papo, links diretos, reclassificação, capacidade de personalizar embeddings e muito mais . O pacote foi projetado para funcionar com Large Language Models (LLMs) personalizados – seja do OpenAI ou instalado localmente.
Formatos suportados
.md
– Divide arquivos com base em componentes lógicos, como títulos, subtítulos e blocos de código. Suporta recursos adicionais, como limpeza de links de imagens, adição de metadados personalizados e muito mais..pdf
- analisador baseado em MuPDF..docx
- analisador personalizado, suporta tabelas aninhadas.Unstructured
:Suporte para análise de tabela via gmft de código aberto (https://github.com/conjuncts/gmft) ou Azure Document Intelligence.
Suporte opcional para análise de imagens usando API Gemini.
Suporta múltiplas coleções de documentos e filtra os resultados por uma coleção.
Capacidade de atualizar os embeddings de forma incremental, sem a necessidade de reindexar toda a base de documentos.
Gera embeddings densos a partir de uma pasta de documentos e os armazena em um banco de dados vetorial (ChromaDB).
multilingual-e5-base
.instructor-large
.Gera embeddings esparsos usando SPLADE (https://github.com/naver/splade) para permitir pesquisa híbrida (esparsa + densa).
Suporta a estratégia "Recuperar e Reclassificar" para pesquisa semântica, veja aqui.
ms-marco-MiniLM
, bge-reranker
mais moderno é suportado.Suporta HyDE (embeddings de documentos hipotéticos) - veja aqui.
Suporte para múltiplas consultas, inspirado no RAG Fusion
- https://towardsdatascience.com/forget-rag-the-future-is-rag-fusion-1147298d8ad1
Suporta histórico de bate-papo opcional com contextualização de perguntas
Permite a interação com documentos incorporados, suportando internamente os seguintes modelos e métodos (inclusive hospedados localmente):
Interoperabilidade com LiteLLM + Ollama via API OpenAI, suportando centenas de modelos diferentes (veja Configuração de modelo para LiteLLM)
Outros recursos
Navegar na documentação