diff --git a/python/packages/openai/agent_framework_openai/_chat_completion_client.py b/python/packages/openai/agent_framework_openai/_chat_completion_client.py index a6878c9f2d..267f3fde3c 100644 --- a/python/packages/openai/agent_framework_openai/_chat_completion_client.py +++ b/python/packages/openai/agent_framework_openai/_chat_completion_client.py @@ -684,6 +684,13 @@ def _prepare_options(self, messages: Sequence[Message], options: Mapping[str, An def _parse_response_from_openai(self, response: ChatCompletion, options: Mapping[str, Any]) -> ChatResponse: """Parse a response from OpenAI into a ChatResponse.""" + if isinstance(response, str): + raise ChatClientException( + maybe_append_azure_endpoint_guidance( + f"{type(self)} service returned an invalid response (str instead of ChatCompletion): {response!r}", + azure_endpoint=self.azure_endpoint, + ), + ) response_metadata = self._get_metadata_from_chat_response(response) messages: list[Message] = [] finish_reason: FinishReason | None = None @@ -788,7 +795,7 @@ def _parse_text_from_openai(self, choice: Choice | ChunkChoice) -> Content | Non def _get_metadata_from_chat_response(self, response: ChatCompletion) -> dict[str, Any]: """Get metadata from a chat response.""" return { - "system_fingerprint": response.system_fingerprint, + "system_fingerprint": getattr(response, "system_fingerprint", None), } def _get_metadata_from_streaming_chat_response(self, response: ChatCompletionChunk) -> dict[str, Any]: