diff --git a/src/openai/_client.py b/src/openai/_client.py index ed9b46f4b0..064f22bf6d 100644 --- a/src/openai/_client.py +++ b/src/openai/_client.py @@ -147,7 +147,7 @@ def __init__( self.websocket_base_url = websocket_base_url if base_url is None: - base_url = os.environ.get("OPENAI_BASE_URL") + base_url = os.environ.get("OPENAI_BASE_URL") or None if base_url is None: base_url = f"https://api.openai.com/v1" @@ -466,7 +466,7 @@ def __init__( self.websocket_base_url = websocket_base_url if base_url is None: - base_url = os.environ.get("OPENAI_BASE_URL") + base_url = os.environ.get("OPENAI_BASE_URL") or None if base_url is None: base_url = f"https://api.openai.com/v1" diff --git a/src/openai/_streaming.py b/src/openai/_streaming.py index f586de74ff..77deae40db 100644 --- a/src/openai/_streaming.py +++ b/src/openai/_streaming.py @@ -63,7 +63,7 @@ def __stream__(self) -> Iterator[_T]: if sse.event and sse.event.startswith("thread."): data = sse.json() - if sse.event == "error" and is_mapping(data) and data.get("error"): + if sse.event == "error" and is_mapping(data) and (data.get("error") or data.get("message")): message = None error = data.get("error") if is_mapping(error): @@ -80,7 +80,7 @@ def __stream__(self) -> Iterator[_T]: yield process_data(data={"data": data, "event": sse.event}, cast_to=cast_to, response=response) else: data = sse.json() - if is_mapping(data) and data.get("error"): + if is_mapping(data) and (data.get("error") or data.get("message")): message = None error = data.get("error") if is_mapping(error): @@ -165,7 +165,7 @@ async def __stream__(self) -> AsyncIterator[_T]: if sse.event and sse.event.startswith("thread."): data = sse.json() - if sse.event == "error" and is_mapping(data) and data.get("error"): + if sse.event == "error" and is_mapping(data) and (data.get("error") or data.get("message")): message = None error = data.get("error") if is_mapping(error): @@ -182,7 +182,7 @@ async def __stream__(self) -> AsyncIterator[_T]: yield process_data(data={"data": data, "event": sse.event}, cast_to=cast_to, response=response) else: data = sse.json() - if is_mapping(data) and data.get("error"): + if is_mapping(data) and (data.get("error") or data.get("message")): message = None error = data.get("error") if is_mapping(error): diff --git a/src/openai/types/responses/response_text_delta_event.py b/src/openai/types/responses/response_text_delta_event.py index b5379b7ac3..bc121e5c8d 100644 --- a/src/openai/types/responses/response_text_delta_event.py +++ b/src/openai/types/responses/response_text_delta_event.py @@ -37,7 +37,7 @@ class ResponseTextDeltaEvent(BaseModel): item_id: str """The ID of the output item that the text delta was added to.""" - logprobs: List[Logprob] + logprobs: Optional[List[Logprob]] = None """The log probabilities of the tokens in the delta.""" output_index: int