Class: ActiveHarness::Providers::OpenAI

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

Constant Summary collapse

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

Instance Method Summary collapse

Instance Method Details

#call(request) ⇒ Object



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

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: :openai,
    model:    data["model"] || request.model,
    usage:    { prompt: usage["prompt_tokens"], completion: usage["completion_tokens"] },
    raw:      raw
  )
end