mcpField
C
cli-eval

cli-eval

github.com/diegosouzapwテスト・品質82.6k893 回インストール今日更新
リポジトリ

cli-eval について

OmniRoute で LLM 出力を評価するテストスイートを作成・実行するコマンドラインスキルです。実行状況の表示、スコアカード、モデル比較、CI での評価に対応します。

主な機能

  1. 01評価基準を指定したスイート作成
  2. 02評価の実行と進捗監視
  3. 03サンプルごとの結果確認
  4. 04スコアカードの表示
  5. 05モデル性能の比較
  6. 06CI ワークフローでのスコア利用

活用シーン

  1. 01期待する回答に照らした出力評価
  2. 02実行中の評価をターミナルで追跡
  3. 03同じスイートでモデルを比較
  4. 04閾値未達時に CI を失敗させる

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/diegosouzapw/omniroute --skill cli-eval

インストール後、Claude Code で/cli-evalを入力して読み込まれたか確認します。

詳細

概要

評価スイートを作成して実行し、ベンチマークの進捗をリアルタイムで確認し、スコアカードを表示してモデルのパフォーマンスを比較し、CLI から評価の実行を CI ワークフローに統合できます。

クイックインストール

npm install -g omniroute   # or: npx omniroute
omniroute --version

サブコマンド

eval

例:

omniroute eval
eval suites

例:

omniroute eval suites
eval list

例:

omniroute eval list
eval get <suiteId>

例:

omniroute eval get <suiteId>
eval create

フラグ:

  • --file <path>

例:

omniroute eval create
eval run <suiteId>

フラグ:

  • -m, --model <id>
  • --combo <name>
  • --concurrency <n>
  • --tag <tag>
  • --watch

例:

omniroute eval run <suiteId>
eval list

フラグ:

  • --suite <id>
  • --status <s>
  • --since <ts>
  • --limit <n>

例:

omniroute eval list
eval get <runId>

例:

omniroute eval get <runId>
eval results <runId>

フラグ:

  • --failed

例:

omniroute eval results <runId>
eval cancel <runId>

フラグ:

  • --yes

例:

omniroute eval cancel <runId>
eval scorecard <runId>

例:

omniroute eval scorecard <runId>
simulate [prompt]

フラグ:

  • --file <path>
  • -m, --model <id>
  • --combo <name>
  • --reasoning-effort <level>
  • --thinking-budget <n>
  • --explain

例:

omniroute simulate [prompt]

OmniRoute — CLI 評価

omniroute CLI が必要です。インストール方法とグローバルフラグについては、CLI エントリーポイントスキルを参照してください。

評価とは?

評価とは、LLM の出力を期待される回答または評価基準と照らし合わせて採点する自動テストスイートです。OmniRoute は、スイートと実行結果をローカルデータベースに保存します。

評価スイート

omniroute eval suites list                       # List all eval suites
omniroute eval suites list --json                # JSON output

omniroute eval suites get <suiteId>              # Full suite definition
スイートを作成する
omniroute eval suites create \
  --name "code-quality" \
  --rubric "exact-match" \
  --samples-file ./samples.jsonl                 # JSONL: {input, expected_output}

評価基準のオプション:exact-match、contains、llm-judge、regex。

--samples-file の形式(1 行につき JSON オブジェクト 1 つ):

{"input": "What is 2+2?", "expected_output": "4"}
{"input": "Translate 'hello' to Spanish", "expected_output": "hola"}

評価を実行する

omniroute eval suites run <suiteId> \
  --model claude-sonnet-4-6                      # Run suite against a specific model

omniroute eval suites run <suiteId> \
  --model gpt-4o \
  --watch                                        # Live TUI progress (EvalWatch)

実行は非同期です。--watch を使用してターミナルのライブダッシュボードを表示するか、手動でポーリングしてください。

RUN_ID=$(omniroute eval suites run <suiteId> --model claude-sonnet-4-6 --output json | jq -r '.id')
omniroute eval get $RUN_ID

実行を管理する

omniroute eval list                              # List all eval runs
omniroute eval list --json

omniroute eval get <runId>                       # Run details (status, model, score)
omniroute eval results <runId>                   # Per-sample results
omniroute eval scorecard <runId>                 # Full scorecard with pass/fail per sample
omniroute eval cancel <runId>                    # Cancel a running eval

スコアカードの出力

omniroute eval scorecard <runId> --output json

サンプルごとのレスポンスフィールド:

{
  "id": "sample-1",
  "score": 0.95,
  "passed": true,
  "input": "What is 2+2?",
  "output": "4",
  "expected": "4"
}

モデルを比較する

同じスイートを複数のモデルに対して実行し、比較します。

for MODEL in claude-sonnet-4-6 gpt-4o gemini-2.0-flash; do
  omniroute eval suites run $SUITE_ID --model $MODEL --output json | jq '{model: .model, score: .score}'
done

CI 統合

# Run and fail CI if score drops below threshold
SCORE=$(omniroute eval suites run $SUITE_ID --model claude-sonnet-4-6 --output json | jq -r '.score')
python3 -c "import sys; score=float('$SCORE'); sys.exit(0 if score >= 0.90 else 1)"

エラー

  • suites create が invalid rubric で失敗する → 次のいずれかを使用してください:exact-match、contains、llm-judge、regex
  • suites run が model not found を返す → omniroute models --search <name> でモデル ID を確認してください
  • eval get に status: failed と表示される → omniroute logs --search eval でエラーの詳細を確認してください
  • scorecard が空の結果を返す → 実行がまだ running の可能性があります。status が completed になるまで omniroute eval get <runId> をポーリングしてください

コメント