fix: fix mypy issue in OpenAIChatGenerator that appears since mypy 1.16 (#9456)

* fix mypy issue with 1.16

* add release note
This commit is contained in:
Julian Risch 2025-05-30 11:21:10 +02:00 committed by GitHub
parent aa3d046775
commit 5c2e2445d3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 18 additions and 2 deletions

View File

@ -421,13 +421,19 @@ class OpenAIChatGenerator:
chunks: List[StreamingChunk] = []
chunk = None
chunk_delta: StreamingChunk
last_chunk: Optional[ChatCompletionChunk] = None
for chunk in chat_completion: # pylint: disable=not-an-iterable
assert len(chunk.choices) <= 1, "Streaming responses should have at most one choice."
chunk_delta = self._convert_chat_completion_chunk_to_streaming_chunk(chunk)
chunks.append(chunk_delta)
callback(chunk_delta)
return [self._convert_streaming_chunks_to_chat_message(chunk, chunks)]
last_chunk = chunk
if not last_chunk:
raise ValueError("No chunks received from the stream")
return [self._convert_streaming_chunks_to_chat_message(last_chunk, chunks)]
async def _handle_async_stream_response(
self, chat_completion: AsyncStream, callback: AsyncStreamingCallbackT
@ -435,13 +441,19 @@ class OpenAIChatGenerator:
chunks: List[StreamingChunk] = []
chunk = None
chunk_delta: StreamingChunk
last_chunk: Optional[ChatCompletionChunk] = None
async for chunk in chat_completion: # pylint: disable=not-an-iterable
assert len(chunk.choices) <= 1, "Streaming responses should have at most one choice."
chunk_delta = self._convert_chat_completion_chunk_to_streaming_chunk(chunk)
chunks.append(chunk_delta)
await callback(chunk_delta)
return [self._convert_streaming_chunks_to_chat_message(chunk, chunks)]
last_chunk = chunk
if not last_chunk:
raise ValueError("No chunks received from the stream")
return [self._convert_streaming_chunks_to_chat_message(last_chunk, chunks)]
def _check_finish_reason(self, meta: Dict[str, Any]) -> None:
if meta["finish_reason"] == "length":

View File

@ -0,0 +1,4 @@
---
fixes:
- |
Fixed a mypy issue in the OpenAIChatGenerator and its handling of stream responses. This issue only occurs with mypy >=1.16.0.