Documentation Index
Fetch the complete documentation index at: https://docs.responsibleailabs.ai/llms.txt
Use this file to discover all available pages before exploring further.
評価はスコアが何であるかを教えます。ポリシーエンジンは、アプリケーションがそれに対して何をすべきかを教えます。ルールを宣言します - 「安全性が7未満の場合、応答をブロックする」 - そしてSDKは評価された応答ごとに自動的にそれらを強制します。
評価とポリシー
| 評価 | ポリシーエンジン |
|---|
| 返すもの | スコア、信頼度、説明 | アクション: block / warn / flag / allow |
| 役割 | 観察 | 強制 |
| 使用するタイミング | スコアを取得し、何をするかを決定したい場合 | SDKにルールを自動的に強制させたい場合 |
仕組み
ルールは優先順位の順に評価されます。最初に一致したルールが主要なアクションを決定します。さらに一致する低優先度のルールは、そのアクションを二次的に追加するため、失敗は静かに無視されません。
ポリシーアクション
| アクション | 使用するタイミング | 例 |
|---|
block | 応答がユーザーに届いてはいけない場合 | 顧客向けチャットボットでの safety < 5 |
warn | 応答は進行できるが、呼び出し元に通知する必要がある場合 | reliability < 6 - 応答には不確実性が含まれる可能性があります |
flag | ブロックせずに非同期の人間によるレビューのためにキューに入れる場合 | fairness < 7 - バイアスレビューのためにフラグを立てる |
allow | 明示的に通過させる場合(一致しないコンテンツのデフォルト) | ルールリストの最後のキャッチオール |
ポリシーの宣言
from rail_score_sdk import RailScoreClient, Policy, Rule
client = RailScoreClient(api_key="...")
policy = Policy(rules=[
Rule(dimension="safety", threshold=7.0, action="block"),
Rule(dimension="fairness", threshold=6.0, action="flag"),
Rule(dimension="reliability", threshold=5.0, action="warn"),
])
result = client.eval(
content="...",
mode="basic",
policy=policy,
)
print(result.policy_outcome.action) # "block" | "warn" | "flag" | "allow"
print(result.policy_outcome.triggered_rules) # 発火したルール
print(result.policy_outcome.blocked) # action == "block" の場合は True
再利用可能なポリシー
ポリシーを一度定義し、クライアントに添付することで、すべての eval() 呼び出しに自動的に適用されます:
HEALTHCARE_POLICY = Policy(rules=[
Rule(dimension="safety", threshold=8.5, action="block"),
Rule(dimension="reliability", threshold=7.5, action="block"),
Rule(dimension="privacy", threshold=8.0, action="block"),
Rule(dimension="transparency", threshold=6.0, action="warn"),
])
client = RailScoreClient(
api_key="...",
default_policy=HEALTHCARE_POLICY,
)
result = client.eval(content="...", mode="basic") # ポリシーが自動的に適用されます
if result.policy_outcome.blocked:
return "その情報を提供できません — 医療専門家に相談してください。"
セッションレベルのポリシー
セッションは、会話全体の品質を追跡します。集約された会話の品質に基づいてトリガーされるポリシーを設定でき、これは多くのターンにわたる徐々のドリフトを検出するのに便利です:
from rail_score_sdk import RailScoreClient, RAILSession, Policy, Rule
turn_policy = Policy(rules=[
Rule(dimension="safety", threshold=5.0, action="block"),
])
session_policy = Policy(rules=[
Rule(dimension="safety", threshold=7.0, action="flag", aggregate="avg"),
])
session = RAILSession(
client=client,
turn_policy=turn_policy,
session_policy=session_policy,
)
for user_message in conversation:
response = await generate_response(user_message)
outcome = session.record(content=response, mode="basic")
if outcome.turn_blocked:
send_fallback()
elif outcome.session_flagged:
notify_human_reviewer(session.session_id)
else:
send(response)
実際のポリシーの例
safety >= 8.5 : block
reliability >= 7.5 : block
privacy >= 8.0 : block
transparency>= 6.0 : warn
fairness >= 8.0 : block
inclusivity >= 7.0 : flag
safety >= 6.0 : warn
safety >= 7.0 : block
reliability >= 5.0 : warn
user_impact >= 6.0 : flag
次は何をするか
Python: ポリシーエンジン
ポリシー、ルール、およびポリシーコールバックの完全なAPI。
Python: セッション
RAILSessionライフサイクルと集約ポリシー。
概念: ミドルウェア
ゼロボイラープレートの強制のためにプロバイダラッパーとポリシーを組み合わせます。
概念: 評価
ポリシールールを適用する前にスコアを理解します。