Skip to content

Commit 6ea663f

Browse files
authored
fix(langchain): Wrap finish_reason in array for gen_ai span attribute (#5666)
Resolves #5664 and PY-2139
1 parent 6345af9 commit 6ea663f

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

sentry_sdk/integrations/langchain.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -554,7 +554,8 @@ def on_llm_end(
554554
finish_reason = generation.generation_info.get("finish_reason")
555555
if finish_reason is not None:
556556
span.set_data(
557-
SPANDATA.GEN_AI_RESPONSE_FINISH_REASONS, finish_reason
557+
SPANDATA.GEN_AI_RESPONSE_FINISH_REASONS,
558+
[finish_reason],
558559
)
559560
except AttributeError:
560561
pass

tests/integrations/langchain/test_langchain.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,12 @@ def test_langchain_agent(
297297
f"and include_prompts={include_prompts}"
298298
)
299299

300+
# Verify finish_reasons is always an array of strings
301+
assert chat_spans[0]["data"][SPANDATA.GEN_AI_RESPONSE_FINISH_REASONS] == [
302+
"function_call"
303+
]
304+
assert chat_spans[1]["data"][SPANDATA.GEN_AI_RESPONSE_FINISH_REASONS] == ["stop"]
305+
300306
# Verify that available tools are always recorded regardless of PII settings
301307
for chat_span in chat_spans:
302308
span_data = chat_span.get("data", {})

0 commit comments

Comments
 (0)