Class: ActiveHarness::Providers::OpenRouter
- Defined in:
- lib/active_harness/providers/openrouter.rb
Overview
OpenRouter proxies many models (OpenAI, Anthropic, etc.) through a single API. API is OpenAI-compatible with an extra “HTTP-Referer” header.
Constant Summary collapse
- API_URL =
URI("https://openrouter.ai/api/v1/chat/completions")
Instance Method Summary collapse
Instance Method Details
#call(request) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/active_harness/providers/openrouter.rb', line 10 def call(request) body = build_body(request) raw = post(body, request.timeout) data = JSON.parse(raw) handle_error!(data) content = data.dig("choices", 0, "message", "content").to_s.strip usage = data["usage"] || {} build_response( content: content, provider: :openrouter, model: data["model"] || request.model, usage: { prompt: usage["prompt_tokens"], completion: usage["completion_tokens"] }, raw: raw ) end |