Skip to main content
Evaluator SDKは、独自のインフラ上で評価を実行します。ワーカーはFailproof AIに評価を登録し、セッションが完了するたびにそれを取得してスコアリングし、結果を送信します。すべてアウトバウンドHTTPS経由で行われるため、外部から接続を受け付けません。ホスト型Pythonでは実現できないLLMジャッジ、モデル呼び出し、パッケージ、シークレット、ネットワークアクセスを活用するためにご利用ください。結果は評価ページにホスト型の結果と並んで表示され、customer タグが付きます。 failproofai-sdk に含まれており、failproofai_sdk.evaluator 配下にあります。トレーシングSDKをインポートしても自動的には読み込まれません。

評価の作成

  • @app.eval(key, version=...) で評価を登録します。キーは結果のチャート表示に使われます。ロジックを変更したらバージョンも更新してください。各結果にはそれを生成したバージョンが保持されます。1つのワーカーには最大100件の評価を登録できます。
  • result_kind は特に指定しない限り "score" です。"metric" または "assertion" 評価の場合は、metrics または assertions エントリのいずれか1つにキーと同じ名前を付けてください。そのエントリが結果として扱われます。
  • when はセッションに評価を適用するかどうかを決定します。スキップする場合は ConditionResult(False, "<reason>") を返してください。理由が記録されます。
  • 評価は通常の関数でも async 関数でも構いません。timeout_seconds でタイムアウトを設定できます。
  • ペイロードキー(上記の tool_name、response、content など)はエージェントが送信する値によって異なるため、実際のセッションから確認してください。

ワーカーの起動

Administration → Keys で作成した evaluations:run 権限を持つキーを FAILPROOFAI_EVALUATOR_TOKEN に設定し(コマンドに直接入力せず、シークレットストアから設定してください)、ワーカーを起動します。
__main__ ブロックがない場合は、python -m failproofai_sdk.evaluator evaluator:app でも同様に起動できます。
FAILPROOFAI_EVALUATOR_ALLOW_INSECURE_HTTP を有効にすると、すべての通信が平文で送信されます。ワーカーはすべてのリクエストに Authorization: Bearer ヘッダーとして FAILPROOFAI_EVALUATOR_TOKEN を付加します。また、取得するトランスクリプトはセッションそのものであるため、通信経路上の第三者がトークンとセッション内容の両方を読み取ることができます。読み取られたトークンはローテーションするまで評価の実行に悪用される可能性があります。このオプションは隔離された開発ネットワーク上のみで使用してください。それ以外の環境ではURLはHTTPSである必要があります。ループバックアドレスの場合はフラグ不要です。

結果の型

EvalResult にはスコア、メトリクス、アサーションのいずれかが少なくとも1つ必要で、最大25件まで設定できます。それぞれのキーは一意である必要があります。

セッション

各イベントには id、ts、event_type、payload が含まれます。

レガシー評価器

旧Evaluator SDK(Failproof AIが EVALUATOR_ENDPOINT でHTTPサービスを呼び出し、/evaluate に応答し、JobPending でポーリングする方式)は廃止されました。新しい評価器はこのワーカーを使用して構築してください。レガシーサービスを稼働中のセルフホスト環境のオペレーターは、移行期間中は引き続き使用できます。