fix: allow user to specify function as role (#9635)

This commit is contained in:
GavinZhu-GMI
2025-08-26 15:47:20 +08:00
committed by GitHub
parent f7881a27f9
commit 0ef583b7de

View File

@@ -327,7 +327,7 @@ class ToolCall(BaseModel):
class ChatCompletionMessageGenericParam(BaseModel): class ChatCompletionMessageGenericParam(BaseModel):
role: Literal["system", "assistant", "tool"] role: Literal["system", "assistant", "tool", "function"]
content: Union[str, List[ChatCompletionMessageContentTextPart], None] = Field( content: Union[str, List[ChatCompletionMessageContentTextPart], None] = Field(
default=None default=None
) )
@@ -341,9 +341,9 @@ class ChatCompletionMessageGenericParam(BaseModel):
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"}: if v_lower not in {"system", "assistant", "tool", "function"}:
raise ValueError( raise ValueError(
"'role' must be one of 'system', 'assistant', or 'tool' (case-insensitive)." "'role' must be one of 'system', '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")