Introdução geral
O dsRAG é um mecanismo de recuperação de alto desempenho projetado para lidar com consultas complexas em dados não estruturados. O dsRAG emprega três abordagens principais para melhorar o desempenho: segmentação semântica, autogeração contextual e extração de segmentos relevantes. Essas abordagens permitem que o dsRAG atinja uma precisão significativamente maior do que a linha de base tradicional do RAG em tarefas complexas de questionamento com livros abertos. Além disso, o dsRAG suporta uma ampla gama de opções de configuração que podem ser personalizadas de acordo com as necessidades do usuário. Seu design modular permite que os usuários integrem facilmente diferentes componentes, como bancos de dados vetoriais, modelos de incorporação e reordenadores, para obter resultados de recuperação ideais.
Em comparação com as linhas de base RAG (Retrieval-Augmented Generation) tradicionais, o dsRAG alcança taxas de precisão significativamente mais altas em tarefas complexas de questionários com livros abertos. Por exemplo, no teste de benchmark FinanceBench, o dsRAG alcança uma precisão de 96,61 TP3T, em comparação com 321 TP3T da linha de base tradicional do RAG. O dsRAG melhora significativamente o desempenho da recuperação por meio de métodos importantes, como segmentação semântica, contexto automático e extração de segmentos relevantes.
Lista de funções
- segmentação semânticaUso do LLM para segmentar documentos e melhorar a precisão da recuperação.
- Geração automática de contextoGeração de cabeçalhos de bloco contendo contexto de nível de documento e parágrafo para melhorar a qualidade da incorporação.
- Extração de segmentos relevantesCombinação inteligente de blocos de texto relacionados no momento da consulta para gerar parágrafos mais longos.
- Suporte a banco de dados de vetores múltiplosPor exemplo, BasicVectorDB, WeaviateVectorDB, ChromaDB, etc.
- Suporte a vários modelos incorporados: por exemplo, OpenAIEmbedding, CohereEmbedding, etc.
- Suporte a vários reordenadores: por exemplo, CohereReranker, VoyageReranker, etc.
- Base de conhecimento persistenteSuporte à persistência de objetos da base de conhecimento no disco para carregamento e consulta subsequentes.
- Suporte a vários formatos de documentosSuporte a PDF, Markdown e outros formatos de documentos, como análise e processamento.
Usando a Ajuda
montagem
Para instalar o pacote Python para o dsRAG, você pode executar o seguinte comando:
pip install dsrag
Certifique-se de que você tenha as chaves de API do OpenAI e do Cohere e defina-as como variáveis de ambiente.
Início rápido
Você pode usar ocreate_kb_from_file
cria uma nova base de conhecimento diretamente de um arquivo:
from dsrag.create_kb import create_kb_from_file
file_path = "dsRAG/tests/data/levels_of_agi.pdf"
kb_id = "levels_of_agi"
kb = create_kb_from_file(kb_id, file_path)
Os objetos da base de conhecimento são automaticamente armazenados no disco, portanto, não precisam ser salvos explicitamente.
Agora, você pode ter uma ideia melhor do que está acontecendo com seukb_id
Carregue a base de conhecimento e use a funçãoconsulta
Os métodos são consultados:
from dsrag.knowledge_base import KnowledgeBase
kb = KnowledgeBase("levels_of_agi")
search_queries = ["Quais são os níveis de AGI?", "Qual é o nível mais alto de AGI?"]
resultados = kb.query(search_queries)
for segment in results.
print(segment)
Personalização básica
Você pode personalizar a configuração da base de conhecimento, por exemplo, usando apenas o OpenAI:
from dsrag.llm import OpenAIChatAPI
de dsrag.reranker import NoReranker
llm = OpenAIChatAPI(model='gpt-4o-mini')
reranker = NoReranker()
kb = KnowledgeBase(kb_id="levels_of_agi", reranker=reranker, auto_context_model=llm)
Em seguida, useadicionar_documento
para adicionar um documento:
file_path = "dsRAG/tests/data/levels_of_agi.pdf"
kb.add_document(doc_id=file_path, file_path=file_path)
construir
O objeto da base de conhecimento aceita documentos (na forma de texto bruto) e executa chunking e embedding, bem como outras operações de pré-processamento neles. Quando uma consulta é inserida, o sistema executa a pesquisa no banco de dados vetorial, a reordenação e a extração de segmentos relevantes e, por fim, retorna o resultado.
Os objetos da base de conhecimento são persistentes por padrão e sua configuração completa é salva como um arquivo JSON para facilitar a reconstrução e a atualização.