Class: ActiveHarness::Providers::Groq

Inherits:
Base
  • Object
show all
Defined in:
lib/active_harness/providers/groq.rb

Overview

Groq — OpenAI-compatible API with fast inference. console.groq.com/docs/openai

Constant Summary collapse

API_URL =
URI("https://api.groq.com/openai/v1/chat/completions")

Constants inherited from Base

Base::HTTP, Base::STREAMING_HTTP

Instance Method Summary collapse

Instance Method Details

#call(model:, messages:, temperature: 0.7) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/active_harness/providers/groq.rb', line 10

def call(model:, messages:, temperature: 0.7)
  raw  = post_json(API_URL,
    headers: {
      "Content-Type"  => "application/json",
      "Authorization" => "Bearer #{api_key}"
    },
    body: { model: model, messages: messages, temperature: temperature }
  )
  data = parse!(raw)
  handle_error!(data)

  {
    content:  data.dig("choices", 0, "message", "content").to_s.strip,
    provider: :groq,
    model:    data["model"] || model,
    usage:    extract_usage_openai(data)
  }
end