14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/llm_cost_tracker/integrations/openai/batch_capture.rb', line 14
def maybe_capture(batch, resource:)
return unless Openai.active?
return unless batch.respond_to?(:status) && batch.status.to_s == "completed"
output_file_id = batch.respond_to?(:output_file_id) ? batch.output_file_id : nil
return unless output_file_id
batch_id = batch.respond_to?(:id) ? batch.id : nil
return unless batch_id && claim(batch_id)
client = resource.instance_variable_get(:@client)
host = Openai.client_host_for(resource)
Openai.record_safely do
io = client.files.content(output_file_id)
capture_jsonl(io.respond_to?(:read) ? io.read : io.to_s, host: host)
end
end
|