getsentry / getsentry/sentry-python

Bug: Streaming responses don't capture `response_id` or `model_version`

未关闭
#5,812 4 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
Bug Python Spans
主要语言
Python
星标
2.2k
派生
669
平均合并
1 天 1 小时
30 天内合并 PR
213

描述

## Problem

In `streaming.py`, the `accumulate_streaming_response()` function initializes `response_id` and `model` to `None` (lines 53-54) but **never populates them** from the streaming chunks. The accumulation loop (lines 56-83) never reads `chunk.response_id` or `chunk.model_version`.

This means streaming responses will always have `null` for `gen_ai.response.id` and `gen_ai.response.model`.

The non-streaming path correctly captures both in `utils.py:886-890`:

```python
if getattr(response, "response_id", None):
span.set_data(SPANDATA.GEN_AI_RESPONSE_ID, response.response_id)
if getattr(response, "model_version", None):
span.set_data(SPANDATA.GEN_AI_RESPONSE_MODEL, response.model_version)
```

## Files

* `sentry_sdk/integrations/google_genai/streaming.py` — `accumulate_streaming_response()`

## Acceptance Criteria

* Streaming chunks are checked for `response_id` and `model_version`
* `gen_ai.response.id` and `gen_ai.response.model` are populated on streaming spans
* Test added to verify streaming responses capture these fields

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。