メインコンテンツへスキップ
RAILMiddleware は、LLMレスポンスを生成する任意の非同期関数をラップし、LLM呼び出しロジックを変更することなく自動RAILスコアリングを追加します。
import asyncio
from rail_score_sdk import RAILMiddleware

async def my_llm(messages, **kwargs):
    # ここにあなたのLLM呼び出し — 文字列を返します
    return "LLMがこの応答を生成しました。"

async def main():
    mw = RAILMiddleware(
        api_key="YOUR_RAIL_API_KEY",
        generate_fn=my_llm,
        threshold=7.0,
        policy="block",
        eval_input=True,
        input_threshold=5.0,
    )

    result = await mw.run(
        messages=[
            {"role": "system", "content": "あなたは役立つアシスタントです。"},
            {"role": "user", "content": "量子コンピューティングについて説明してください。"},
        ]
    )
    print(f"スコア: {result.score}, 閾値を満たしました: {result.threshold_met}")
    print(f"コンテンツ: {result.content}")

asyncio.run(main())

パラメータ

パラメータデフォルト説明
api_keystrRAIL APIキー
generate_fnasync callableあなたのLLM関数
thresholdfloatNoneこのスコア未満でブロック/再生成
policystr"block""block" または "regenerate"
eval_inputboolFalse入力メッセージもスコアリング
input_thresholdfloatNone入力スコアリングのための閾値
max_iterationsint3最大再生成試行回数