[FIX][DS32]openai protocol: support openai message role: developer (#14304)
This commit is contained in:
@@ -390,7 +390,7 @@ class ToolCall(BaseModel):
|
|||||||
|
|
||||||
|
|
||||||
class ChatCompletionMessageGenericParam(BaseModel):
|
class ChatCompletionMessageGenericParam(BaseModel):
|
||||||
role: Literal["system", "assistant", "tool", "function"]
|
role: Literal["system", "assistant", "tool", "function", "developer"]
|
||||||
content: Union[str, List[ChatCompletionMessageContentPart], None] = Field(
|
content: Union[str, List[ChatCompletionMessageContentPart], None] = Field(
|
||||||
default=None
|
default=None
|
||||||
)
|
)
|
||||||
@@ -398,15 +398,16 @@ class ChatCompletionMessageGenericParam(BaseModel):
|
|||||||
name: Optional[str] = None
|
name: Optional[str] = None
|
||||||
reasoning_content: Optional[str] = None
|
reasoning_content: Optional[str] = None
|
||||||
tool_calls: Optional[List[ToolCall]] = Field(default=None, examples=[None])
|
tool_calls: Optional[List[ToolCall]] = Field(default=None, examples=[None])
|
||||||
|
tools: Optional[List[Tool]] = Field(default=None, examples=[None])
|
||||||
|
|
||||||
@field_validator("role", mode="before")
|
@field_validator("role", mode="before")
|
||||||
@classmethod
|
@classmethod
|
||||||
def _normalize_role(cls, v):
|
def _normalize_role(cls, v):
|
||||||
if isinstance(v, str):
|
if isinstance(v, str):
|
||||||
v_lower = v.lower()
|
v_lower = v.lower()
|
||||||
if v_lower not in {"system", "assistant", "tool", "function"}:
|
if v_lower not in {"system", "assistant", "tool", "function", "developer"}:
|
||||||
raise ValueError(
|
raise ValueError(
|
||||||
"'role' must be one of 'system', 'assistant', 'tool', or 'function' (case-insensitive)."
|
"'role' must be one of 'system', 'developer', 'assistant', 'tool', or 'function' (case-insensitive)."
|
||||||
)
|
)
|
||||||
return v_lower
|
return v_lower
|
||||||
raise ValueError("'role' must be a string")
|
raise ValueError("'role' must be a string")
|
||||||
|
|||||||
Reference in New Issue
Block a user