Introdução geral
O RAGLite é um kit de ferramentas Python para Retrieval Augmented Generation (RAG) com suporte para bancos de dados PostgreSQL ou SQLite. Ele oferece opções de configuração flexíveis que permitem aos usuários escolher diferentes modelos de linguagem e reordenadores. O RAGLite é conhecido por seus recursos leves e eficientes, funciona em uma ampla variedade de sistemas operacionais e oferece suporte a várias opções de aceleração, como Metal e CUDA.
Lista de funções
- Suporte a vários modelos de linguagem, incluindo modelos nativos llama-cpp-python
- Suporta PostgreSQL e SQLite como bancos de dados de pesquisa de palavras-chave e vetores
- Várias opções de reordenação disponíveis, incluindo o FlashRank em vários idiomas
- Dependências leves, sem necessidade de PyTorch ou LangChain!
- Suporte à conversão de PDF para Markdown
- Incorporação de vários vetores e títulos de blocos contextuais
- Fornece um sistema personalizável ChatGPT Front-end de classe com suporte para Web, Slack e Teams
- Oferece suporte à inserção e recuperação de documentos para vários tipos de arquivos
- Fornecer ferramentas para recuperar e gerar avaliações de desempenho
Usando a Ajuda
Processo de instalação
- Instale o modelo de sentença multilíngue do spaCy:
pip install https://github.com/explosion/spacy-models/releases/download/xx_sent_ud_sm-3.7.0/xx_sent_ud_sm-3.7.0-py3-none-any.whl
- Instale o binário pré-compilado llama-cpp-python acelerado (opcional, mas recomendado):
LLAMA_CPP_PYTHON_VERSION=0.2.88 PYTHON_VERSION=310 ACCELERATOR=metal | cu121 | cu122 | cu123 | cu124 PLATFORM=macosx_11_0_arm64 | linux_x86_64 | win_amd64 pip install "https://github.com/abetlen/llama-cpp-python/releases/download/v$LLAMA_CPP_PYTHON_VERSION-$ACCELERATOR/llama_cpp _python-$LLAMA_CPP_PYTHON_VERSION-cp$PYTHON_VERSION-cp$PYTHON_VERSION-$PLATFORM.whl"
- Instale o RAGLite:
pip install raglite
- Instale um suporte de front-end personalizável do tipo ChatGPT:
pip install raglite[chainlit]
- Instalar suporte adicional a tipos de arquivos:
pip install raglite[pandoc]
- Suporte à avaliação da instalação:
pip install raglite[ragas]
Diretrizes para uso
- Configuração do RAGLite::
- Configure um banco de dados PostgreSQL ou SQLite e todos os modelos de linguagem compatíveis:
from raglite import RAGLiteConfig my_config = RAGLiteConfig( db_url="postgresql://my_username:my_password@my_host:5432/my_database", llm="gpt-4o-mini", embedder="text-embedding-3-large" )
- Configure um banco de dados PostgreSQL ou SQLite e todos os modelos de linguagem compatíveis:
- Inserção de documentos::
- Insira documentos PDF, converta-os e incorpore-os:
from pathlib import Path from raglite import insert_document insert_document(Path("On the Measure of Intelligence.pdf"), config=my_config)
- Insira documentos PDF, converta-os e incorpore-os:
- Recuperação e geração::
- Use a pesquisa vetorial, a pesquisa por palavra-chave ou a pesquisa híbrida para sua consulta:
from raglite import hybrid_search, keyword_search, vector_search prompt = "Como a inteligência é medida?" chunk_ids_hybrid, _ = hybrid_search(prompt, num_results=20, config=my_config)
- Use a pesquisa vetorial, a pesquisa por palavra-chave ou a pesquisa híbrida para sua consulta:
- Reordenar e responder a perguntas::
- Reorganizar os resultados da pesquisa e gerar respostas:
from raglite import rerank_chunks, trapo chunks_reranked = rerank_chunks(prompt, chunk_ids_hybrid, config=my_config) stream = rag(prompt, search=chunks_reranked, config=my_config) for update in stream. print(update, end="")
- Reorganizar os resultados da pesquisa e gerar respostas:
- Recuperação e geração de avaliações::
- Use Ragas para recuperar e gerar avaliações de desempenho:
from raglite import answer_evals, evaluate, insert_evals insert_evals(num_evals=100, config=my_config) answered_evals_df = answer_evals(num_evals=10, config=my_config) evaluation_df = evaluate(answered_evals_df, config=my_config)
- Use Ragas para recuperar e gerar avaliações de desempenho:
- Implementação de um front-end semelhante ao ChatGPT::
- Implante front-ends personalizáveis do tipo ChatGPT:
raglite chainlit --db_url sqlite:///raglite.sqlite --llm llama-cpp-python/bartowski/Llama-3.2-3B-Instruct-GGUF/*Q4_K_M.gguf@4096 -- embedder llama-cpp-python/lm-kit/bge-m3-gguf/*F16.gguf
- Implante front-ends personalizáveis do tipo ChatGPT: