mirror of
https://github.com/hwchase17/langchain.git
synced 2025-09-02 03:26:17 +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:
@@ -6,6 +6,7 @@ import base64
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
import warnings
|
||||
from io import BytesIO
|
||||
@@ -2011,6 +2012,12 @@ class ChatOpenAI(BaseChatOpenAI): # type: ignore[override]
|
||||
# in September 2024 release
|
||||
if "max_tokens" in payload:
|
||||
payload["max_completion_tokens"] = payload.pop("max_tokens")
|
||||
|
||||
# Mutate system message role to "developer" for o-series models
|
||||
if self.model_name and re.match(r"^o\d", self.model_name):
|
||||
for message in payload.get("messages", []):
|
||||
if message["role"] == "system":
|
||||
message["role"] = "developer"
|
||||
return payload
|
||||
|
||||
def _should_stream_usage(
|
||||
|
Reference in New Issue
Block a user