Module: Ask::LLM::Sources::OpenRouter
- Defined in:
- lib/ask/llm/sources/openrouter.rb
Constant Summary collapse
- API_URL =
"https://openrouter.ai/api/v1/models"- MODELS_DIR =
File.("../models", __dir__)
- PROVIDER_MAP =
{ "openai" => "openai", "anthropic" => "anthropic", "google" => "gemini", "deepseek" => "deepseek", "mistralai" => "mistral", "meta-llama" => "meta", "x-ai" => "xai", "perplexity" => "perplexity", "amazon" => "bedrock", "groq" => "groq", "together" => "together", "fireworks" => "fireworks", "cerebras" => "cerebras", "moonshotai" => "moonshot", "nvidia" => "nvidia_nim", "cohere" => nil, "qwen" => nil, "minimax" => nil, "z-ai" => nil, "replicate" => nil, "nousresearch" => nil }.freeze
- REGISTERED_SLUGS =
All provider slugs we support (canonical + OpenAI-compatible).
%w[ openai anthropic gemini bedrock ollama mistral cloudflare aiml ai21 anyscale cerebras deepinfra deepseek featherless fireworks friendli github groq hyperbolic meta mimo moonshot nebius novita nscale nvidia_nim opencode opencode_go openrouter perplexity sambanova together xai ].to_set.freeze
Class Method Summary collapse
Class Method Details
.update! ⇒ Object
50 51 52 53 54 55 56 57 58 |
# File 'lib/ask/llm/sources/openrouter.rb', line 50 def update! models = fetch entries = parse(models) write_provider_files(entries) total = entries.length providers = entries.group_by { |e| e[:provider] }.size puts "OpenRouter: #{total} models across #{providers} providers." total end |