mirror of
https://github.com/hwchase17/langchain.git
synced 2025-08-05 11:12:47 +00:00
support service_tier
This commit is contained in:
parent
a7903280dd
commit
91c1c86ee1
@ -538,6 +538,10 @@ class BaseChatOpenAI(BaseChatModel):
|
|||||||
However this does not prevent a user from directly passed in the parameter during
|
However this does not prevent a user from directly passed in the parameter during
|
||||||
invocation.
|
invocation.
|
||||||
"""
|
"""
|
||||||
|
service_tier: Optional[str] = None
|
||||||
|
"""Latency tier for request. Options are 'auto', 'default', or 'flex'. Relevant
|
||||||
|
for users of OpenAI's scale tier service.
|
||||||
|
"""
|
||||||
|
|
||||||
use_responses_api: Optional[bool] = None
|
use_responses_api: Optional[bool] = None
|
||||||
"""Whether to use the Responses API instead of the Chat API.
|
"""Whether to use the Responses API instead of the Chat API.
|
||||||
@ -655,6 +659,7 @@ class BaseChatOpenAI(BaseChatModel):
|
|||||||
"n": self.n,
|
"n": self.n,
|
||||||
"temperature": self.temperature,
|
"temperature": self.temperature,
|
||||||
"reasoning_effort": self.reasoning_effort,
|
"reasoning_effort": self.reasoning_effort,
|
||||||
|
"service_tier": self.service_tier,
|
||||||
}
|
}
|
||||||
|
|
||||||
params = {
|
params = {
|
||||||
|
@ -215,12 +215,15 @@ async def test_openai_abatch_tags(use_responses_api: bool) -> None:
|
|||||||
assert isinstance(token.text(), str)
|
assert isinstance(token.text(), str)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.scheduled
|
@pytest.mark.flaky(retries=3, delay=1)
|
||||||
def test_openai_invoke() -> None:
|
def test_openai_invoke() -> None:
|
||||||
"""Test invoke tokens from ChatOpenAI."""
|
"""Test invoke tokens from ChatOpenAI."""
|
||||||
llm = ChatOpenAI(max_tokens=MAX_TOKEN_COUNT) # type: ignore[call-arg]
|
llm = ChatOpenAI(
|
||||||
|
model="o4-mini",
|
||||||
|
service_tier="flex", # Also test service_tier
|
||||||
|
)
|
||||||
|
|
||||||
result = llm.invoke("I'm Pickle Rick", config=dict(tags=["foo"]))
|
result = llm.invoke("Hello", config=dict(tags=["foo"]))
|
||||||
assert isinstance(result.content, str)
|
assert isinstance(result.content, str)
|
||||||
|
|
||||||
# assert no response headers if include_response_headers is not set
|
# assert no response headers if include_response_headers is not set
|
||||||
|
@ -1732,3 +1732,9 @@ def test__construct_responses_api_input_multiple_message_types() -> None:
|
|||||||
|
|
||||||
# assert no mutation has occurred
|
# assert no mutation has occurred
|
||||||
assert messages_copy == messages
|
assert messages_copy == messages
|
||||||
|
|
||||||
|
|
||||||
|
def test_service_tier() -> None:
|
||||||
|
llm = ChatOpenAI(model="o4-mini", service_tier="flex")
|
||||||
|
payload = llm._get_request_payload([HumanMessage("Hello")])
|
||||||
|
assert payload["service_tier"] == "flex"
|
||||||
|
Loading…
Reference in New Issue
Block a user