# ステップ1:ドキュメントからQAペアを生成
ragscore generate docs/
# ステップ2:RAGシステムを評価
ragscore evaluate http://localhost:8000/queryこれだけです。 精度スコアと不正解のQAペアを即座に取得。
============================================================
✅ 優秀:85/100 正解 (85.0%)
平均スコア:4.20/5.0
============================================================
❌ 15個の不正解ペア:
1. Q: "RAGとは何ですか?"
スコア:2/5 - 事実誤り
2. Q: "検索はどのように機能しますか?"
スコア:3/5 - 不完全な回答
pip install ragscore # コア版(Ollama対応)
pip install "ragscore[openai]" # + OpenAIサポート
pip install "ragscore[notebook]" # + Jupyter/Colabサポート
pip install "ragscore[all]" # + 全プロバイダーJupyter、Colab、迅速な反復に最適。即座に可視化を取得。
from ragscore import quick_test
# 1. 1行でRAGを監査
result = quick_test(
endpoint="http://localhost:8000/query", # RAG API
docs="docs/", # ドキュメント
n=10, # テスト質問数
)
# 1b. 対象読者に合わせたQA生成
result = quick_test(
endpoint="http://localhost:8000/query",
docs="docs/",
audience="開発者", # 誰が質問するか?
purpose="API統合", # ドキュメントの目的は?
)
# 2. レポートを表示
result.plot()
# 3. 失敗を検査
bad_rows = result.df[result.df['score'] < 3]
display(bad_rows[['question', 'rag_answer', 'reason']])リッチオブジェクトAPI:
result.accuracy- 精度スコアresult.df- 全結果のPandas DataFrameresult.plot()- 3パネル可視化(detailed=Trueの場合4パネル)result.corrections- 修正が必要な項目リスト
# APIキーを設定(またはローカルOllamaを使用 - キー不要!)
export OPENAI_API_KEY="sk-..."
# 任意のドキュメントから生成
ragscore generate paper.pdf
ragscore generate docs/*.pdf --concurrency 10
# 対象読者に合わせたQA生成
ragscore generate docs/ --audience 開発者 --purpose FAQ
ragscore generate docs/ --audience 顧客 --purpose 営業資料
ragscore generate docs/ --audience 監査人 --purpose コンプライアンス# RAGエンドポイントを指定
ragscore evaluate http://localhost:8000/query
# カスタムオプション
ragscore evaluate http://api/ask --model gpt-4o --output results.json単一スコアを超えましょう。detailed=True を追加するだけで、各回答の 5つの診断次元 を取得 — 同じLLM呼び出しで。
result = quick_test(
endpoint=my_rag,
docs="docs/",
n=10,
detailed=True, # ⭐ マルチメトリクス評価を有効化
)
# 各質問の詳細指標を確認
display(result.df[[
"question", "score", "correctness", "completeness",
"relevance", "conciseness", "faithfulness"
]])
# レーダーチャート + 4パネル可視化
result.plot()==================================================
✅ 合格:9/10 正解 (90%)
平均スコア:4.3/5.0
閾値:70%
──────────────────────────────────────────────────
正確性: 4.5/5.0
完全性: 4.2/5.0
関連性: 4.8/5.0
簡潔性: 4.1/5.0
忠実性: 4.6/5.0
==================================================
| 指標 | 測定内容 | スケール |
|---|---|---|
| 正確性 | ゴールデンアンサーとの意味的一致度 | 5 = 完全に正確 |
| 完全性 | すべての重要ポイントをカバー | 5 = 完全にカバー |
| 関連性 | 質問に対して適切に回答 | 5 = 完全に的確 |
| 簡潔性 | 無駄な情報なく簡潔 | 5 = 簡潔で正確 |
| 忠実性 | ソースに忠実で捜造なし | 5 = 完全に忠実 |
CLI:
ragscore evaluate http://localhost:8000/query --detailed📓 完全なデモノートブック — ミニRAGを構築し、詳細指標でテスト。
🎯 対象読者・目的デモ — 開発者、顧客、監査人向けのQA生成。
# Ollamaを使用 - APIキー不要、クラウド不要、100%プライベート
ollama pull llama3.1
ragscore generate confidential_docs/*.pdf
ragscore evaluate http://localhost:8000/query最適な用途: 医療 🏥 • 法律 ⚖️ • 金融 🏦 • 研究 🔬
| プロバイダー | セットアップ | 備考 |
|---|---|---|
| Ollama | ollama serve |
ローカル、無料、プライベート |
| OpenAI | export OPENAI_API_KEY="sk-..." |
最高品質 |
| Anthropic | export ANTHROPIC_API_KEY="..." |
長いコンテキスト |
| DashScope | export DASHSCOPE_API_KEY="..." |
Qwenモデル |
| vLLM | export LLM_BASE_URL="..." |
プロダクショングレード |
| OpenAI互換 | export LLM_BASE_URL="..." |
Groq、Togetherなど |
{
"id": "abc123",
"question": "RAGとは何ですか?",
"answer": "RAG(検索拡張生成)は...",
"rationale": "これは序論で明示的に述べられています...",
"support_span": "RAGシステムは関連ドキュメントを検索...",
"difficulty": "medium",
"source_path": "docs/rag_intro.pdf"
}{
"summary": {
"total": 100,
"correct": 85,
"incorrect": 15,
"accuracy": 0.85,
"avg_score": 4.2
},
"incorrect_pairs": [
{
"question": "RAGとは何ですか?",
"golden_answer": "RAGは検索と生成を組み合わせ...",
"rag_answer": "RAGはデータベースシステムです。",
"score": 2,
"reason": "事実誤り - RAGはデータベースではありません"
}
]
}from ragscore import run_pipeline, run_evaluation
# QAペアを生成
run_pipeline(paths=["docs/"], concurrency=10)
# 対象読者に合わせたQAペアを生成
run_pipeline(
paths=["docs/"],
audience="サポートエンジニア",
purpose="チャットボットのファインチューニング",
)
# RAGを評価
results = run_evaluation(
endpoint="http://localhost:8000/query",
model="gpt-4o", # 評価用LLM
)
print(f"精度:{results.accuracy:.1%}")RAGScoreはAIエージェントと自動化のために設計されています:
# 構造化されたCLI、予測可能な出力
ragscore generate docs/ --concurrency 5
ragscore evaluate http://api/query --output results.json
# 終了コード:0 = 成功、1 = エラー
# プログラムによる解析用のJSON出力CLIリファレンス:
| コマンド | 説明 |
|---|---|
ragscore generate <paths> |
ドキュメントからQAペアを生成 |
ragscore generate <paths> --audience <誰> |
対象読者に合わせたQA生成 |
ragscore generate <paths> --purpose <目的> |
ドキュメントの目的に合わせたQA生成 |
ragscore evaluate <endpoint> |
ゴールデンQAペアに対してRAGを評価 |
ragscore evaluate <endpoint> --detailed |
マルチメトリクス評価 |
ragscore --help |
すべてのコマンドとオプションを表示 |
ragscore generate --help |
生成オプションを表示 |
ragscore evaluate --help |
評価オプションを表示 |
ゼロコンフィグで動作します。オプションの環境変数:
export RAGSCORE_CHUNK_SIZE=512 # ドキュメントのチャンクサイズ
export RAGSCORE_QUESTIONS_PER_CHUNK=5 # チャンクあたりのQA数
export RAGSCORE_WORK_DIR=/path/to/dir # 作業ディレクトリ| データ | クラウドLLM | ローカルLLM |
|---|---|---|
| ドキュメント | ✅ ローカル | ✅ ローカル |
| テキストチャンク | ✅ ローカル | |
| 生成されたQA | ✅ ローカル | ✅ ローカル |
| 評価結果 | ✅ ローカル | ✅ ローカル |
コンプライアンス: GDPR ✅ • HIPAA ✅(ローカルLLM使用時)• SOC 2 ✅
git clone https://github.com/HZYAI/RagScore.git
cd RagScore
pip install -e ".[dev,all]"
pytestRAGScoreはMCPサーバーモード(ragscore serve)でのみテレメトリを収集します。標準のCLIおよびPython APIの使用ではテレメトリを送信しません。
機能の使用状況を把握し信頼性を向上させるため、限定的な匿名の運用指標を収集します。ドキュメント内容、プロンプト、QAテキスト、モデル出力、APIキー、エンドポイントURL、ファイルパスは一切収集しません。
MCPモードで収集する情報:
- 呼び出したMCPツール
- LLMプロバイダーとモデル名
ragscoreバージョン、Pythonバージョン、OS種別- 成功/失敗ステータス
- ランダムな匿名インストールID
オプトアウト:
export RAGSCORE_NO_TELEMETRY=1- GitHub • PyPI • Issues • Discussions
⭐ RAGScoreが役立つ場合は、GitHubでスターをください!
RAGコミュニティのために ❤️ で作られました
