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):
role: Literal["system", "assistant", "tool"]
role: Literal["system", "assistant", "tool", "function"]
content: Union[str, List[ChatCompletionMessageContentTextPart], None] = Field(
default=None
)
@@ -341,9 +341,9 @@ class ChatCompletionMessageGenericParam(BaseModel):
def _normalize_role(cls, v):
if isinstance(v, str):
v_lower = v.lower()
if v_lower not in {"system", "assistant", "tool"}:
if v_lower not in {"system", "assistant", "tool", "function"}:
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
raise ValueError("'role' must be a string")