Zum Hauptinhalt springen
Hinzugefügt in SDK 2.6.0. Jeder API-Schlüssel ist an eine Anwendung gebunden, deren Governance-Richtlinie zentral im Dashboard konfiguriert wird. Diese drei Methoden lassen Ihren Code diese Konfiguration zur Laufzeit lesen — nützlich für Startup-Prüfungen, Dashboards und Überwachung. Sie sind nur-Lesen und verbrauchen keine Credits.

Anwendungs-Konfiguration

get_config() gibt die Anwendung zurück, an die der Schlüssel gebunden ist, ihre Governance-Richtlinie und ob die Durchsetzung aktiv Antworten formt oder nur beobachtet.
from rail_score_sdk import RailScoreClient

client = RailScoreClient(api_key="YOUR_RAIL_API_KEY")

cfg = client.get_config()

print(f"Application: {cfg.application.id} ({cfg.application.environment})")
print(f"Plan:        {cfg.application.plan}")
print(f"Enforcement: {cfg.policy.enforcement}")   # log_only | block | regenerate
print(f"Eval mode:   {cfg.policy.eval_mode}")      # basic | deep
print(f"Threshold:   {cfg.policy.overall_threshold}")
print(f"Mode:        {cfg.enforcement.mode}")      # enforce | monitor

if cfg.policy.locked:
    print("Policy is locked by an administrator; per-request overrides are ignored.")

Plan-Fähigkeiten

get_capabilities() berichtet, auf was der Plan des Schlüssels zugreifen kann — Bewertungsmodi, Compliance Frameworks, Agent und DPDP Funktionen sowie Anfragenlimits. Verwenden Sie es, um Verhalten anzupassen, ohne Plan-Annahmen hart zu codieren.
caps = client.get_capabilities()

print(f"Plan: {caps.plan}")
print(f"Frameworks: {caps.compliance.get('frameworks')}")
print(f"DPDP evidence available: {caps.dpdp.get('evidence')}")   # Pro+ only
print(f"Requests/day: {caps.limits.get('requests_per_day')}")     # None = unlimited

Dimensions-Metadaten

get_dimensions() gibt die acht RAIL Dimensionen mit dem Gewicht und Schwellenwert zurück, die für Ihre Anwendung konfiguriert sind, plus die Sore Bands, in die ein Ergebnis fällt.
dims = client.get_dimensions()

for d in dims.dimensions:
    print(f"{d.get('name'):14} weight={d.get('weight')} threshold={d.get('threshold')}")

for band in dims.score_bands:
    print(band.get("band"), ">=", band.get("min"))
Jedes typisierte Ergebnis zeigt auch ein .raw dict mit der unveränderten Antwort, daher sind neue Felder immer erreichbar, auch bevor das SDK einen typisierten Accessor hinzufügt.

Async

Der Async-Client zeigt die gleichen drei Methoden:
import asyncio
from rail_score_sdk import AsyncRAILClient

async def main():
    client = AsyncRAILClient(api_key="YOUR_RAIL_API_KEY")
    caps = await client.get_capabilities()
    print(caps["plan"])  # async client returns raw dicts

asyncio.run(main())

Verwandt

Konfigurations-API

Die REST Endpoints hinter diesen Methoden.

Richtlinien-Engine

Wie Durchsetzung, Schwellenwerte und Sperren funktionieren.