Skip to content

Commit 4873264

Browse files
authored
fix(sdk): support message logging in OpenAI format (#12)
1 parent 3056da9 commit 4873264

3 files changed

Lines changed: 41 additions & 24 deletions

File tree

sample-app/Gemfile.lock

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,54 +4,61 @@ GEM
44
addressable (2.8.7)
55
public_suffix (>= 2.0.2, < 7.0)
66
aws-eventstream (1.3.0)
7-
aws-partitions (1.947.0)
8-
aws-sdk-bedrockruntime (1.14.0)
9-
aws-sdk-core (~> 3, >= 3.199.0)
10-
aws-sigv4 (~> 1.1)
11-
aws-sdk-core (3.199.0)
7+
aws-partitions (1.987.0)
8+
aws-sdk-bedrockruntime (1.26.0)
9+
aws-sdk-core (~> 3, >= 3.207.0)
10+
aws-sigv4 (~> 1.5)
11+
aws-sdk-core (3.209.1)
1212
aws-eventstream (~> 1, >= 1.3.0)
1313
aws-partitions (~> 1, >= 1.651.0)
14-
aws-sigv4 (~> 1.8)
14+
aws-sigv4 (~> 1.9)
1515
jmespath (~> 1, >= 1.6.1)
16-
aws-sigv4 (1.8.0)
16+
aws-sigv4 (1.10.0)
1717
aws-eventstream (~> 1, >= 1.0.2)
18-
base64 (0.1.1)
18+
base64 (0.2.0)
1919
ethon (0.16.0)
2020
ffi (>= 1.15.0)
2121
event_stream_parser (1.0.0)
22-
faraday (2.9.2)
23-
faraday-net_http (>= 2.0, < 3.2)
22+
faraday (2.12.0)
23+
faraday-net_http (>= 2.0, < 3.4)
24+
json
25+
logger
2426
faraday-multipart (1.0.4)
2527
multipart-post (~> 2)
26-
faraday-net_http (3.0.2)
28+
faraday-net_http (3.3.0)
29+
net-http
2730
faraday-typhoeus (1.1.0)
2831
faraday (~> 2.0)
2932
typhoeus (~> 1.4)
3033
ffi (1.17.0-arm64-darwin)
31-
gemini-ai (4.1.0)
34+
gemini-ai (4.2.0)
3235
event_stream_parser (~> 1.0)
33-
faraday (~> 2.9, >= 2.9.2)
36+
faraday (~> 2.10)
3437
faraday-typhoeus (~> 1.1)
3538
googleauth (~> 1.8)
3639
typhoeus (~> 1.4, >= 1.4.1)
37-
google-cloud-env (2.1.1)
40+
google-cloud-env (2.2.1)
3841
faraday (>= 1.0, < 3.a)
39-
google-protobuf (3.25.3-arm64-darwin)
40-
googleapis-common-protos-types (1.15.0)
42+
google-protobuf (3.25.5-arm64-darwin)
43+
googleapis-common-protos-types (1.16.0)
4144
google-protobuf (>= 3.18, < 5.a)
42-
googleauth (1.11.0)
45+
googleauth (1.11.1)
4346
faraday (>= 1.0, < 3.a)
4447
google-cloud-env (~> 2.1)
4548
jwt (>= 1.4, < 3.0)
4649
multi_json (~> 1.11)
4750
os (>= 0.9, < 2.0)
4851
signet (>= 0.16, < 2.a)
4952
jmespath (1.6.2)
50-
jwt (2.8.2)
53+
json (2.7.2)
54+
jwt (2.9.3)
5155
base64
56+
logger (1.6.1)
5257
multi_json (1.15.0)
53-
multipart-post (2.3.0)
54-
opentelemetry-api (1.2.5)
58+
multipart-post (2.4.1)
59+
net-http (0.4.1)
60+
uri
61+
opentelemetry-api (1.4.0)
5562
opentelemetry-common (0.21.0)
5663
opentelemetry-api (~> 1.0)
5764
opentelemetry-exporter-otlp (0.26.3)
@@ -68,12 +75,12 @@ GEM
6875
opentelemetry-common (~> 0.20)
6976
opentelemetry-registry (~> 0.2)
7077
opentelemetry-semantic_conventions
71-
opentelemetry-semantic_conventions (1.10.0)
78+
opentelemetry-semantic_conventions (1.10.1)
7279
opentelemetry-api (~> 1.0)
7380
opentelemetry-semantic_conventions_ai (0.0.3)
7481
opentelemetry-api (~> 1.0)
7582
os (1.1.4)
76-
public_suffix (6.0.0)
83+
public_suffix (6.0.1)
7784
ruby-openai (7.1.0)
7885
event_stream_parser (>= 0.3.0, < 2.0.0)
7986
faraday (>= 1)
@@ -83,12 +90,13 @@ GEM
8390
faraday (>= 0.17.5, < 3.a)
8491
jwt (>= 1.5, < 3.0)
8592
multi_json (~> 1.10)
86-
traceloop-sdk (0.1.2)
93+
traceloop-sdk (0.1.4)
8794
opentelemetry-exporter-otlp (~> 0.26.1)
8895
opentelemetry-sdk (~> 1.3.1)
8996
opentelemetry-semantic_conventions_ai (~> 0.0.3)
9097
typhoeus (1.4.1)
9198
ethon (>= 0.9.0)
99+
uri (0.13.1)
92100

93101
PLATFORMS
94102
arm64-darwin-23

traceloop-sdk/lib/traceloop/sdk.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,15 @@ def initialize(span, provider, model)
2929
@model = model
3030
end
3131

32+
def log_messages(messages)
33+
messages.each_with_index do |message, index|
34+
@span.add_attributes({
35+
"#{OpenTelemetry::SemanticConventionsAi::SpanAttributes::LLM_PROMPTS}.#{index}.role" => message[:role] || "user",
36+
"#{OpenTelemetry::SemanticConventionsAi::SpanAttributes::LLM_PROMPTS}.#{index}.content" => message[:content] || "",
37+
})
38+
end
39+
end
40+
3241
def log_prompt(system_prompt="", user_prompt)
3342
unless system_prompt.empty?
3443
@span.add_attributes({

traceloop-sdk/traceloop-sdk.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Gem::Specification.new do |spec|
22
spec.name = 'traceloop-sdk'
3-
spec.version = '0.1.2'
3+
spec.version = '0.1.4'
44
spec.authors = ["Traceloop"]
55
spec.email = ['dev@traceloop.com']
66

0 commit comments

Comments
 (0)