Autobot::Providers
Constants
DEFAULT_MAX_TOKENS = 4096
Default LLM parameters
DEFAULT_TEMPERATURE = 0.7
PROVIDERS = [ProviderSpec.new(name: "openrouter", keywords: ["openrouter"], display_name: "OpenRouter", api_url: "https://openrouter.ai/api/v1/chat/completions", model_prefix: "openrouter", gateway: true, detect_by_key_prefix: "sk-or-", detect_by_base_keyword: "openrouter"), ProviderSpec.new(name: "aihubmix", keywords: ["aihubmix"], display_name: "AiHubMix", api_url: "https://aihubmix.com/v1/chat/completions", gateway: true, detect_by_base_keyword: "aihubmix", strip_model_prefix: true), ProviderSpec.new(name: "anthropic", keywords: ["anthropic", "claude"], display_name: "Anthropic", api_url: "https://api.anthropic.com/v1/messages", auth_header: "x-api-key"), ProviderSpec.new(name: "openai", keywords: ["openai", "gpt", "o1", "o3", "o4"], display_name: "OpenAI", api_url: "https://api.openai.com/v1/chat/completions", use_max_completion_tokens: true, max_tokens_legacy_patterns: ["gpt-4", "gpt-3"]), ProviderSpec.new(name: "deepseek", keywords: ["deepseek"], display_name: "DeepSeek", api_url: "https://api.deepseek.com/v1/chat/completions"), ProviderSpec.new(name: "gemini", keywords: ["gemini"], display_name: "Gemini", api_url: "https://generativelanguage.googleapis.com/v1beta/openai/chat/completions"), ProviderSpec.new(name: "kimi", keywords: ["kimi"], display_name: "Kimi Code", api_url: "https://api.kimi.com/coding/v1/chat/completions", detect_by_key_prefix: "sk-kimi-", user_agent: "KimiCLI/0.77"), ProviderSpec.new(name: "moonshot", keywords: ["moonshot"], display_name: "Moonshot", api_url: "https://api.moonshot.ai/v1/chat/completions", model_overrides: {"kimi-k2.5" => {"temperature" => JSON::Any.new(1.0)}}), ProviderSpec.new(name: "minimax", keywords: ["minimax"], display_name: "MiniMax", api_url: "https://api.minimax.io/v1/chat/completions"), ProviderSpec.new(name: "groq", keywords: ["groq"], display_name: "Groq", api_url: "https://api.groq.com/openai/v1/chat/completions"), ProviderSpec.new(name: "bedrock", keywords: ["bedrock", "nova", "amazon"], display_name: "AWS Bedrock"), ProviderSpec.new(name: "duckai", keywords: ["duckai"], display_name: "DuckAI", local: true, detect_by_base_keyword: "duckai", supports_system_role: false), ProviderSpec.new(name: "vllm", keywords: ["vllm"], display_name: "vLLM/Local", local: true)]
Single source of truth for all supported providers. Order = priority.
Class methods
Find a standard (non-gateway, non-local) provider by model name keywords.
Find a provider spec by config name (e.g. "deepseek", "openrouter").
find_gateway(provider_name : String | Nil = nil, api_key : String | Nil = nil, api_base : String | Nil = nil) : ProviderSpec | Nil
Detect a gateway or local provider.
Priority:
- Explicit provider_name matching a gateway/local spec.
- api_key prefix (e.g. "sk-or-" -> OpenRouter).
- api_base keyword (e.g. "aihubmix" in URL).
Nested types
- Autobot::Providers::BedrockProvider
- Autobot::Providers::GeminiProvider
- Autobot::Providers::HttpProvider
- Autobot::Providers::MessageConverter
- Autobot::Providers::Provider
- Autobot::Providers::ProviderSpec
- Autobot::Providers::Response
- Autobot::Providers::TokenUsage
- Autobot::Providers::ToolCall
- Autobot::Providers::ToolConverter