Example: Routing with Interceptors and Compliance
Example showing rate limiting, semantic guardrails, GDPR routing, and error handling.
This example showcases a sophisticated routing configuration that uses pre-request interceptors to enforce usage quotas and guardrails, while handling region-specific compliance and prioritizing performance for premium users.
Goals:
Enforce a daily rate limit on all users to prevent abuse.
Check all requests for policy violations using a semantic guardrail.
Provide high-performance models for premium users in the EU, but only if they are reliable.
Ensure GDPR compliance by using a specialized model for requests with that requirement.
Provide a clear error message to users who have exceeded their quota.

Complete Chat Completion Request with Interceptors and Compliance:
Configuration Breakdown:
Request Structure:
Uses
"model": "router/dynamic"to enable dynamic routingUser information and compliance requirements are passed via the
extra.userobjectRouter configuration includes
pre_requestinterceptors and conditional routing
Pre-Request Interceptors: Before routing evaluation, two interceptors run:
rate_limiter: Enforces 1,000 requests per day limit per user. Results are accessible viapre_request.rate_limiter.passedsemantic_guardrail: Scans content for policy violations. Results are accessible viapre_request.semantic_guardrail.passed(custom guardrail implementation required)
Route 1:
premium_eu_high_performanceConditions: Requires premium tier (
extra.user.tier), EU region (metadata.region), rate limit not exceeded, and low provider error rateTargets: Routes to high-performance models with error rate filtering and minimum time-to-first-token sorting
Route 2:
gdpr_compliance_fallbackConditions: Checks for GDPR compliance requirement via
metadata.tags.gdpr(automatically set by LangDB from x-tags header)Targets: Routes to specialized EU GDPR-compliant model regardless of user tier
Route 3:
semantic_guardrail_violation_blockConditions: Triggers when semantic guardrail fails (
pre_request.semantic_guardrail.passed = false)Action: Uses
message_mapperto block request and return policy violation error message
Route 4:
rate_limit_exceeded_blockConditions: Triggers when rate limiter fails (
pre_request.rate_limiter.passed = false)Action: Uses
message_mapperto block request and return informative error message with upgrade suggestion
Route 5:
fallback_routeConditions: Only applies to requests that pass both rate limiting and semantic guardrail checks
Targets: Routes to
openai/gpt-4o-minias reliable fallback for valid requests that don't match other specific conditions
Key Features Demonstrated:
Pre-Request Processing: Rate limiting and content guardrails before routing
Compliance Routing: Automatic GDPR-compliant model selection
Error Handling: Custom error messages for quota exceeded scenarios
Performance Optimization: Provider health checks and fast response prioritization
Regional Awareness: EU-specific routing based on
metadata.region(automatically set by LangDB based on user location)
Last updated
Was this helpful?