Class: ActiveHarness::Providers::Images::OpenRouter
- Defined in:
- lib/active_harness/providers/images/openrouter.rb
Constant Summary
Constants inherited from Base
Base::HTTP, Base::STREAMING_HTTP
Instance Method Summary collapse
Instance Method Details
#call(model:, prompt:, size: nil, quality: nil, **_) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/active_harness/providers/images/openrouter.rb', line 10 def call(model:, prompt:, size: nil, quality: nil, **_) headers = { "Content-Type" => "application/json", "Authorization" => "Bearer #{api_key}" } referer = config.openrouter_http_referer.to_s headers["HTTP-Referer"] = referer unless referer.empty? = [{ role: "user", content: prompt }] body = { model: model, messages: , modalities: ["image", "text"] } body[:size] = size if size body[:quality] = quality if quality raw = post_json(URI(config.openrouter_api_url), headers: headers, body: body, timeout: 120) data = parse!(raw) handle_error!(data) content = extract_image(data) raise Errors::ProviderError, "No image data in response: #{data.dig('choices', 0, 'message')&.keys}" unless content { content: content, provider: :openrouter, model: model, usage: extract_usage_openai(data) } end |