Skip to content

Commit d75e022

Browse files
committed
migrate image instrumentation to events
1 parent c92c78f commit d75e022

File tree

2 files changed

+20
-6
lines changed

2 files changed

+20
-6
lines changed

src/langtrace_python_sdk/instrumentation/openai/patch.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,11 @@ def traced_method(wrapped, instance, args, kwargs):
9393
},
9494
}
9595
]
96-
span.set_attribute(
97-
SpanAttributes.LLM_COMPLETIONS, json.dumps(response)
96+
span.add_event(
97+
Event.RESPONSE.value,
98+
attributes={
99+
SpanAttributes.LLM_COMPLETIONS: json.dumps(response)
100+
},
98101
)
99102

100103
span.set_status(StatusCode.OK)
@@ -159,8 +162,11 @@ async def traced_method(wrapped, instance, args, kwargs):
159162
},
160163
}
161164
]
162-
span.set_attribute(
163-
SpanAttributes.LLM_COMPLETIONS, json.dumps(response)
165+
span.add_event(
166+
Event.RESPONSE.value,
167+
attributes={
168+
SpanAttributes.LLM_COMPLETIONS: json.dumps(response)
169+
},
164170
)
165171

166172
span.set_status(StatusCode.OK)

src/tests/openai/test_image_generation.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ def test_image_generation(openai_client, exporter):
2121
assert image_generation_span.name == "openai.images.generate"
2222

2323
attributes = image_generation_span.attributes
24+
events = image_generation_span.events
25+
2426
assert attributes.get(SpanAttributes.LANGTRACE_SDK_NAME) == "langtrace-python-sdk"
2527

2628
assert attributes.get(SpanAttributes.LANGTRACE_SERVICE_NAME) == "OpenAI"
@@ -38,7 +40,9 @@ def test_image_generation(openai_client, exporter):
3840
prompts = json.loads(attributes.get(SpanAttributes.LLM_PROMPTS))
3941
assert prompts[0]["content"] == prompt
4042

41-
langtrace_responses = json.loads(attributes.get(SpanAttributes.LLM_COMPLETIONS))
43+
langtrace_responses = json.loads(
44+
events[-1].attributes.get(SpanAttributes.LLM_COMPLETIONS)
45+
)
4246
assert isinstance(langtrace_responses, list)
4347
for langtrace_response in langtrace_responses:
4448
assert isinstance(langtrace_response, dict)
@@ -69,6 +73,8 @@ async def test_async_image_generation(async_openai_client, exporter):
6973
assert image_generation_span.name == "openai.images.generate"
7074

7175
attributes = image_generation_span.attributes
76+
events = image_generation_span.events
77+
7278
assert attributes.get(SpanAttributes.LANGTRACE_SDK_NAME) == "langtrace-python-sdk"
7379

7480
assert attributes.get(SpanAttributes.LANGTRACE_SERVICE_NAME) == "OpenAI"
@@ -86,7 +92,9 @@ async def test_async_image_generation(async_openai_client, exporter):
8692
prompts = json.loads(attributes.get(SpanAttributes.LLM_PROMPTS))
8793
assert prompts[0]["content"] == prompt
8894

89-
langtrace_responses = json.loads(attributes.get(SpanAttributes.LLM_COMPLETIONS))
95+
langtrace_responses = json.loads(
96+
events[-1].attributes.get(SpanAttributes.LLM_COMPLETIONS)
97+
)
9098
assert isinstance(langtrace_responses, list)
9199
for langtrace_response in langtrace_responses:
92100
assert isinstance(langtrace_response, dict)

0 commit comments

Comments
 (0)