Skip to main content

Example: Building an Enterprise Routing Configuration

This example demonstrates a multi-layered routing strategy for a SaaS company that balances performance for premium users, cost for standard users, and flexibility for internal development.

Goals:

  1. Provide the fastest possible responses for "premium" customers on support-related queries.
  2. Minimize costs for "standard" tier users.
  3. Allow the internal "development" team to test a new, experimental model without affecting customers.
Enterprise routing config workflow

Complete Chat Completion Request with Enterprise Routing:

{
"model": "router/dynamic",
"messages": [
{
"role": "system",
"content": "You are an expert customer support agent for TechCorp SaaS platform. You have access to user account information and can help resolve billing, technical, and feature-related issues. Always provide helpful, accurate responses and escalate complex issues when needed."
},
{
"role": "user",
"content": "Hi, I'm experiencing critical downtime with our enterprise API integration. Our production system has been failing to authenticate for the past 30 minutes and we're losing revenue. This is urgent - can you help me troubleshoot the OAuth token refresh process immediately?"
}
],
"stream": true,
"extra": {
"user": {
"tier": "premium",
"request": {
"topic": "support"
}
}
},
"router": {
"type": "conditional",
"routes": [
{
"name": "premium_support_fast_track",
"conditions": {
"all": [
{
"extra.user.tier": {
"$eq": "premium"
}
},
{
"extra.user.request.topic": {
"$eq": "support"
}
}
]
},
"targets": {
"$any": [
"anthropic/claude-4-opus",
"openai/gpt-o3",
"gemini/gemini-2.5-pro",
"xai/grok-4"
],
"filter": {
"ttft": {
"$lt": 1000
}
},
"sort_by": "ttft",
"sort_order": "min"
}
},
{
"name": "standard_user_cost_optimized",
"conditions": {
"extra.user.tier": {
"$eq": "standard"
}
},
"targets": {
"$any": [
"mistral/mistral-large-latest",
"anthropic/claude-4-sonnet"
],
"sort_by": "price",
"sort_order": "min"
}
},
{
"name": "internal_dev_testing",
"conditions": {
"metadata.group_name": {
"$eq": "development"
}
},
"targets": "google/gemini-2.5-pro"
},
{
"name": "fallback_route",
"conditions": {
"all": []
},
"targets": "openai/gpt-4o-mini"
}
],
"max_retries": 2
}
}

Configuration Breakdown:

  • Request Structure:
    • Uses "model": "router/dynamic" to enable dynamic routing
    • User information is passed via the extra.user object
    • Router configuration is specified in the router field with "type": "conditional"
  • Route 1: premium_support_fast_track
    • Conditions: Applies when extra.user.tier equals "premium" AND extra.user.request.topic equals "support"
    • Targets: Routes to high-performance models (anthropic/claude-4-opus, openai/gpt-o3, gemini/gemini-2.5-pro, xai/grok-4) with filtering for fast response times (ttft < 1000ms) and sorts by minimum time-to-first-token
  • Route 2: standard_user_cost_optimized
    • Conditions: Catches all requests from "standard" tier users via extra.user.tier
    • Targets: Uses cost-effective models (mistral/mistral-large-latest, anthropic/claude-4-sonnet) and sorts by minimum price
  • Route 3: internal_dev_testing
    • Conditions: Applies to users in the "development" cost group via metadata.group_name (automatically set by LangDB based on the LangDB user's cost group assignment)
    • Targets: Routes directly to google/gemini-2.5-pro for isolated testing
  • Route 4: fallback_route
    • Conditions: Empty conditions array ("all": []) catches all remaining requests
    • Targets: Routes to openai/gpt-4o-mini as a reliable fallback option

Key Features Demonstrated:

  • Conditional Logic: Uses all operators and comparison operators ($eq, $lt)
  • Target Selection: Shows both single targets and pools with filtering/sorting
  • Request Context: Leverages both extra user data and metadata for routing decisions
  • Cost Group Integration: metadata.group_name is automatically populated by LangDB based on the LangDB user's cost group assignment
  • Retry Configuration: Includes max_retries: 2 for resilience

Additional Example Scenarios

Scenario 1: Standard User Cost-Optimized Request

{
"model": "router/dynamic",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant for analyzing business data and generating reports."
},
{
"role": "user",
"content": "Can you help me create a monthly sales report template with charts for our Q4 review? I need to include revenue trends, customer acquisition metrics, and regional performance comparisons."
}
],
"extra": {
"user": {
"tier": "standard"
}
},
"router": { /* same router config */ }
}

This request will match standard_user_cost_optimized route and use cost-effective models.

Scenario 2: Internal Development Testing

{
"model": "router/dynamic",
"messages": [
{
"role": "system",
"content": "You are a code review assistant that helps identify potential bugs and suggests improvements."
},
{
"role": "user",
"content": "Please review this TypeScript function for potential issues:\n\n```typescript\nfunction processUserData(users: any[]) {\n return users.map(u => {\n return {\n id: u.id,\n name: u.firstName + ' ' + u.lastName,\n email: u.email?.toLowerCase()\n }\n })\n}\n```"
}
]
// Note: metadata.group_name = "development" is automatically set by LangDB
// based on the user's cost group assignment - no need to specify manually
}

This request will match internal_dev_testing route because the LangDB user belongs to the "development" cost group, automatically setting metadata.group_name = "development".

Scenario 3: Fallback Route

{
"model": "router/dynamic",
"messages": [
{
"role": "user",
"content": "What's the weather like today?"
}
],
"extra": {
"user": {
"tier": "basic"
}
},
"router": { /* same router config */ }
}

This request doesn't match any specific conditions and will use the fallback_route with GPT-4o-mini.