mcpField
C
cli-eval

cli-eval

github.com/cheaper-inferenceテスト・品質82.3k1.0k 回インストール今日更新
リポジトリ

cli-eval について

cli-eval は、評価スイートの作成、モデルでの実行、結果確認に使う OmniRoute CLI の操作をまとめたスキルです。ライブ進捗、スコアカード、モデル比較、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/cheaper-inference/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> をポーリングしてください

コメント