8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/tracebook/mappers/ollama.rb', line 8
def normalize(raw_request:, raw_response:, meta: {})
request = symbolize(raw_request || {})
response = symbolize(raw_response || {})
meta_info = indifferent_meta(meta)
metadata = {}
metadata["eval_count"] = response[:eval_count] if response.key?(:eval_count)
build_interaction(
provider: "ollama",
model: request[:model] || response[:model],
project: meta_info[:project],
request_payload: raw_request,
response_payload: raw_response,
request_text: request[:prompt] || request[:input],
response_text: response[:response],
input_tokens: response[:prompt_eval_count],
output_tokens: response[:eval_count],
latency_ms: meta_info[:latency_ms] || to_milliseconds(response[:total_duration]),
status: meta_info[:status]&.to_sym || :success,
error_class: nil,
error_message: nil,
tags: Array(meta_info[:tags]).compact,
metadata: metadata,
user: meta_info[:user],
parent_id: meta_info[:parent_id],
session_id: meta_info[:session_id]
)
end
|