Module config

Source
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 tasks
  • reasoning: Models with advanced reasoning capabilities and chain-of-thought processing
  • free: 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§

ModelConfig
Configuration for model selection and presets
OpenRouterConfig
Main configuration structure for OpenRouter SDK

Functions§

load_config
Loads configuration from a TOML file