mirror of
https://github.com/hwchase17/langchain.git
synced 2025-09-19 00:58:32 +00:00
openai[patch]: update system role to developer for o-series models (#29785)
Some o-series models will raise a 400 error for `"role": "system"` (`o1-mini` and `o1-preview` will raise, `o1` and `o3-mini` will not). Here we update `ChatOpenAI` to update the role to `"developer"` for all model names matching `^o\d`. We only make this change on the ChatOpenAI class (not BaseChatOpenAI).
This commit is contained in:
@@ -881,6 +881,20 @@ def test__get_request_payload() -> None:
|
||||
payload = llm._get_request_payload(messages)
|
||||
assert payload == expected
|
||||
|
||||
# Test we coerce to developer role for o-series models
|
||||
llm = ChatOpenAI(model="o3-mini")
|
||||
payload = llm._get_request_payload(messages)
|
||||
expected = {
|
||||
"messages": [
|
||||
{"role": "developer", "content": "hello"},
|
||||
{"role": "developer", "content": "bye"},
|
||||
{"role": "user", "content": "how are you"},
|
||||
],
|
||||
"model": "o3-mini",
|
||||
"stream": False,
|
||||
}
|
||||
assert payload == expected
|
||||
|
||||
|
||||
def test_init_o1() -> None:
|
||||
with pytest.warns(None) as record: # type: ignore[call-overload]
|
||||
|
Reference in New Issue
Block a user