Konzept: Middleware | API: Evaluation API
RAILMiddleware umschließt jede asynchrone Funktion, die LLM-Antworten generiert, und fügt eine automatische RAIL-Bewertung hinzu, ohne Ihre LLM-Aufruflogik zu ändern.
import asyncio
from rail_score_sdk import RAILMiddleware
async def my_llm(messages, **kwargs):
# Ihr LLM-Aufruf hier — gibt einen String zurück
return "Das LLM hat diese Antwort generiert."
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": "Sie sind ein hilfreicher Assistent."},
{"role": "user", "content": "Erklären Sie Quantencomputing."},
]
)
print(f"Score: {result.score}, Met threshold: {result.threshold_met}")
print(f"Content: {result.content}")
asyncio.run(main())
mw = RAILMiddleware(
api_key="YOUR_RAIL_API_KEY",
generate_fn=my_llm,
# Kein Schwellenwert — bewertet jede Antwort, blockiert aber niemals
)
result = await mw.run(messages=[...])
print(result.score) # Immer vorhanden
print(result.threshold_met) # Keine — kein Schwellenwert gesetzt
mw = RAILMiddleware(
api_key="YOUR_RAIL_API_KEY",
generate_fn=my_llm,
threshold=7.0,
policy="regenerate",
max_iterations=3,
)
result = await mw.run(messages=[...])
print(result.content) # Beste Inhalte über Iterationen hinweg
print(result.iterations_taken) # 1, wenn das Original bestanden hat
Parameter
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
api_key | str | — | RAIL API-Schlüssel |
generate_fn | async callable | — | Ihre LLM-Funktion |
threshold | float | None | Blockieren/regenerieren unter diesem Wert |
policy | str | "block" | "block" oder "regenerate" |
eval_input | bool | False | Auch die Eingabemeldungen bewerten |
input_threshold | float | None | Schwellenwert für die Eingabebewertung |
max_iterations | int | 3 | Maximalversuche zur Regeneration |