pytest に組み込んで使えるオープンソースの LLM 評価フレームワークです。ジャッジ (judge) モデルの呼び出しを、通常のテストスイートや CI パイプラインの一部として実行できます。
前提条件
- SambaCloud のアカウントと API キー
- Python 3.9 以上
セットアップ
1
DeepEval のインストール
2
SambaCloud API キーのエクスポート
3
DeepEval のジャッジモデルを SambaCloud に接続
DeepEval の
OpenAIModel クラスに、カスタムの base_url を指定して使用します。これは DeepEval が本来の OpenAI への接続に使うクラスそのもので、接続先を差し替えているだけです。パラメータの完全な一覧は、DeepEval の OpenAI モデルリファレンス(英語)をご参照ください。旧称の
GPTModel もまったく同じように動作しますが、DeepEval 4.x 時点で非推奨 (deprecated) となっており、現行の名前は OpenAIModel です。使用例: テストケースの採点
test_sambanova.py
Output
reason の文字列はジャッジモデルが生成するものであり、スコアの値を言い換えるのではなく、そのスコアになった理由を説明します。
使用例: pytest の CI チェックとしての実行
通常のテストスイートの中でジャッジモデルの呼び出しを実行する、DeepEval の主なユースケースです。test_ci_example.py
pytest が動作します)。
Output (abridged)
DeepEval は
pytest プラグインであるため、通常どおり pytest test_ci_example.py -v でも実行できます。ただし、公式ドキュメントに記載されているコマンドは deepeval test run で、上記のような詳細なテスト結果の表も表示されます。トラブルシューティング
DeprecationWarning: 'GPTModel' is deprecated
DeprecationWarning: 'GPTModel' is deprecated
代わりに
OpenAIModel を使用してください。コンストラクターも base_url の指定方法も同一で、DeepEval 4.x 時点の現行の名前に変わっただけです。KeyError: SAMBANOVA_API_KEY
KeyError: SAMBANOVA_API_KEY
実行前にキーをエクスポートしてください:
export SAMBANOVA_API_KEY="your-key"。echo $SAMBANOVA_API_KEY で確認できます。AnswerRelevancyMetric のスコアが低い・想定と異なる
AnswerRelevancyMetric のスコアが低い・想定と異なる
metric.reason を確認してください。これはジャッジモデル自身が生成する文字列で、何を減点したのかを具体的に説明しています。問題の原因がプロンプトにあるのか、テストケースにあるのか、ジャッジモデルの解釈にあるのかを切り分けるうえで、スコアの値だけを見るよりも役立ちます。
