mirror of
https://github.com/hwchase17/langchain.git
synced 2025-06-20 13:54:48 +00:00
openai: disable streaming for o1 by default (#29147)
Currently 400s https://community.openai.com/t/streaming-support-for-o1-o1-2024-12-17-resulting-in-400-unsupported-value/1085043 o1-mini and o1-preview stream fine
This commit is contained in:
parent
62074bac60
commit
bbc3e3b2cf
@ -562,6 +562,15 @@ class BaseChatOpenAI(BaseChatModel):
|
||||
values["temperature"] = 1
|
||||
return values
|
||||
|
||||
@model_validator(mode="before")
|
||||
@classmethod
|
||||
def validate_disable_streaming(cls, values: Dict[str, Any]) -> Any:
|
||||
"""Disable streaming if n > 1."""
|
||||
model = values.get("model_name") or values.get("model") or ""
|
||||
if model == "o1" and values.get("disable_streaming") is None:
|
||||
values["disable_streaming"] = True
|
||||
return values
|
||||
|
||||
@model_validator(mode="after")
|
||||
def validate_environment(self) -> Self:
|
||||
"""Validate that api key and python package exists in environment."""
|
||||
|
@ -1192,3 +1192,19 @@ def test_o1(use_max_completion_tokens: bool) -> None:
|
||||
assert isinstance(response, AIMessage)
|
||||
assert isinstance(response.content, str)
|
||||
assert response.content.upper() == response.content
|
||||
|
||||
|
||||
@pytest.mark.scheduled
|
||||
def test_o1_doesnt_stream() -> None:
|
||||
"""
|
||||
When this starts failing, remove the `disable_streaming` validator in
|
||||
`BaseChatOpenAI`
|
||||
"""
|
||||
with pytest.raises(openai.BadRequestError):
|
||||
list(ChatOpenAI(model="o1", disable_streaming=False).stream("how are you"))
|
||||
|
||||
|
||||
@pytest.mark.scheduled
|
||||
def test_o1_stream_default_works() -> None:
|
||||
result = list(ChatOpenAI(model="o1").stream("say 'hi'"))
|
||||
assert len(result) > 0
|
||||
|
Loading…
Reference in New Issue
Block a user