Expand description
§Configuration Management
This module provides configuration management for the OpenRouter Rust SDK, including model presets, default settings, and configuration loading.
§Overview
The configuration system supports:
- Model Presets: Predefined groups of models for specific use cases
- Default Configuration: Built-in TOML configuration with sensible defaults
- Custom Configuration: Load configuration from external TOML files
- Model Resolution: Automatic expansion of preset references to actual model IDs
§Model Presets
The SDK includes three built-in presets:
programming
: High-performance models optimized for code generation and programming tasksreasoning
: Models with advanced reasoning capabilities and chain-of-thought processingfree
: Free-tier models suitable for experimentation and development
§Configuration Format
Configuration uses TOML format:
default_model = "deepseek/deepseek-chat-v3-0324:free"
[models]
enable = ["preset:programming", "preset:reasoning"]
[models.presets]
programming = [
"anthropic/claude-sonnet-4",
"google/gemini-2.5-flash",
"qwen/qwen3-coder"
]
reasoning = [
"anthropic/claude-sonnet-4",
"deepseek/deepseek-r1:free",
"google/gemini-2.5-pro"
]
§Usage Examples
§Using Default Configuration
use openrouter_rs::config::OpenRouterConfig;
let config = OpenRouterConfig::default();
println!("Default model: {}", config.get_default_model());
println!("Available models: {:?}", config.get_resolved_models());
§Loading Custom Configuration
use openrouter_rs::config::load_config;
let config = load_config("./my_config.toml")?;
§Checking Model Availability
use openrouter_rs::config::OpenRouterConfig;
let config = OpenRouterConfig::default();
if config.models.is_enabled("anthropic/claude-sonnet-4") {
println!("Claude Sonnet 4 is available!");
}
Structs§
- Model
Config - Configuration for model selection and presets
- Open
Router Config - Main configuration structure for OpenRouter SDK
Functions§
- load_
config - Loads configuration from a TOML file