Allgemeine Einführung
RAGLite ist ein Python-Toolkit für Retrieval Augmented Generation (RAG) mit Unterstützung für PostgreSQL- oder SQLite-Datenbanken. RAGLite ist bekannt für seine leichtgewichtigen und effizienten Funktionen, funktioniert auf einer Vielzahl von Betriebssystemen und unterstützt eine Vielzahl von Beschleunigungsoptionen, wie Metal und CUDA.
Funktionsliste
- Unterstützung für mehrere Sprachmodelle, einschließlich nativer llama-cpp-python-Modelle
- Unterstützt PostgreSQL und SQLite als Stichwort- und Vektorsuchdatenbanken
- Mehrere Neuordnungsoptionen verfügbar, einschließlich mehrsprachigem FlashRank
- Geringe Abhängigkeiten, kein PyTorch oder LangChain erforderlich!
- Unterstützung der Konvertierung von PDF in Markdown
- Multi-Vektor-Einbettung und kontextbezogene Blocküberschriften
- Bietet anpassbare ChatGPT Klasse Front-End mit Unterstützung für Web, Slack und Teams
- Unterstützt das Einfügen und Abrufen von Dokumenten für mehrere Dateitypen
- Bereitstellung von Tools zum Abrufen und Erstellen von Leistungsbewertungen
Hilfe verwenden
Ablauf der Installation
- Installieren Sie das mehrsprachige Satzmodell von spaCy:
Pip-Installation 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
- Installieren Sie die beschleunigte vorkompilierte Llama-cpp-python-Binärdatei (optional, aber empfohlen):
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"
- RAGLite installieren:
pip install raglite
- Installieren Sie eine anpassbare ChatGPT-ähnliche Front-End-Unterstützung:
pip install raglite[chainlit]
- Installieren Sie zusätzliche Unterstützung für Dateitypen:
pip install raglite[pandoc]
- Unterstützung bei der Installationsbewertung:
pip install raglite[Ragas]
Richtlinien für die Verwendung
- RAGLite konfigurieren::
- Konfigurieren Sie eine PostgreSQL- oder SQLite-Datenbank und alle unterstützten Sprachmodelle:
from raglite import RAGLiteConfig my_config = RAGLiteConfig( db_url="postgresql://mein_benutzername:mein_passwort@mein_host:5432/meine_datenbank", llm="gpt-4o-mini", embedder="text-embedding-3-large" )
- Konfigurieren Sie eine PostgreSQL- oder SQLite-Datenbank und alle unterstützten Sprachmodelle:
- Einfügen von Dokumenten::
- PDF-Dokumente einfügen, konvertieren und einbetten:
from pathlib import Path from raglite import insert_document insert_document(Path("On the Measure of Intelligence.pdf"), config=my_config)
- PDF-Dokumente einfügen, konvertieren und einbetten:
- Abruf und Erzeugung::
- Verwenden Sie die Vektorsuche, die Schlagwortsuche oder die kombinierte Suche für Ihre Anfrage:
from raglite import hybrid_search, keyword_search, vector_search prompt = "Wie wird Intelligenz gemessen?" chunk_ids_hybrid, _ = hybrid_search(prompt, num_results=20, config=my_config)
- Verwenden Sie die Vektorsuche, die Schlagwortsuche oder die kombinierte Suche für Ihre Anfrage:
- Neuordnung und Beantwortung von Fragen::
- Sortieren Sie die Suchergebnisse neu und generieren Sie Antworten:
from raglite import rerank_chunks, Lappen 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="")
- Sortieren Sie die Suchergebnisse neu und generieren Sie Antworten:
- Abrufen und Erstellen von Bewertungen::
- Verwenden Sie Ragas, um Leistungsbewertungen abzurufen und zu erstellen:
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)
- Verwenden Sie Ragas, um Leistungsbewertungen abzurufen und zu erstellen:
- Einsatz eines ChatGPT-ähnlichen Front-Ends::
- Bereitstellung von anpassbaren ChatGPT-ähnlichen Front-Ends:
raglite chainlit --db_url sqlite:///raglite.sqlite --llm llama-cpp-python/bartowski/Llama-3.2-3B-Instruct-GGUF/*Q4_K_M.gguf@4096 -- einbetten llama-cpp-python/lm-kit/bge-m3-gguf/*F16.gguf
- Bereitstellung von anpassbaren ChatGPT-ähnlichen Front-Ends: