はじめに
RAGLiteは、PostgreSQLまたはSQLiteデータベースをサポートするRAG(Retrieval Augmented Generation)用のPythonツールキットです。RAGLiteは軽量で効率的な機能で知られており、幅広いオペレーティングシステムで動作し、MetalやCUDAなどの様々なアクセラレーションオプションをサポートしています。
機能一覧
- ネイティブのllama-cpp-pythonモデルを含む、複数の言語モデルのサポート
- キーワードおよびベクトル検索データベースとしてPostgreSQLとSQLiteをサポート
- 多言語のFlashRankを含む、複数の並べ替えオプションが利用可能
- 依存関係が軽く、PyTorchもLangChainも不要!
- PDFからMarkdownへの変換をサポート
- マルチベクトル埋め込みと文脈ブロック見出し
- カスタマイズ可能 チャットGPT Web、Slack、Teamsをサポートするクラス・フロントエンド
- 複数のファイルタイプに対するドキュメントの挿入と検索をサポート
- 業績評価を検索し、生成するためのツールを提供する。
ヘルプの使用
設置プロセス
- 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
- 高速化されたllama-cpp-pythonのプリコンパイルバイナリをインストールする(オプションだが推奨):
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_am64 | win_am64win_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をインストールします:
pip install raglite
- カスタマイズ可能なChatGPTのようなフロントエンドサポートをインストールします:
pip install raglite[chainlit]をインストールする。
- 追加ファイルタイプのサポートをインストールします:
pip install raglite[pandoc]
- 設置評価サポート:
pip install raglite[ragas]
使用ガイドライン
- RAGLiteの設定::
- PostgreSQLまたはSQLiteデータベースと、サポートされている言語モデルを設定します:
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" )
- PostgreSQLまたはSQLiteデータベースと、サポートされている言語モデルを設定します:
- ドキュメントの挿入::
- PDF文書を挿入し、変換して埋め込みます:
from pathlib import Path from raglite import insert_document insert_document(Path("On the Measure of Intelligence.pdf"), config=my_config)
- PDF文書を挿入し、変換して埋め込みます:
- 検索と生成::
- ベクトル検索、キーワード検索、またはハイブリッド検索を使用してください:
from raglite import hybrid_search, keyword_search, vector_search prompt = "知能はどのように測定されるか?" chunk_ids_hybrid, _ = hybrid_search(prompt, num_results=20, config=my_config)
- ベクトル検索、キーワード検索、またはハイブリッド検索を使用してください:
- 質問の並べ替えと回答::
- 検索結果の並び替えと回答の生成
from raglite import rerank_chunks、 ぼろ 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="")
- 検索結果の並び替えと回答の生成
- 評価の検索と生成::
- Ragasを使用して業績評価を検索し、作成する:
from raglite import answer_evals, evaluate, insert_evals insert_evals(num_evals=100, config=my_config) answer_evals_df = answer_evals(num_evals=10, config=my_config) evaluation_df = evaluate(answered_evals_df, config=my_config)
- Ragasを使用して業績評価を検索し、作成する:
- ChatGPTライクなフロントエンドの展開::
- カスタマイズ可能なChatGPTライクなフロントエンドを展開:
raglite chainlit --db_url sqlite:///raglite.sqlite --llm llama-cpp-python/bartowski/Llama-3.2-3B-Instruct-GGUF/*Q4_K_M.gguf@4096 --。埋め込み llama-cpp-python/lm-kit/bge-m3-gguf/*F16.gguf
- カスタマイズ可能なChatGPTライクなフロントエンドを展開: