Unverified Commit fe2a0f96 authored by mlmz's avatar mlmz Committed by GitHub
Browse files

minor: 'role' must be system/assistant/tool, but case insensitive for now (#7499)

parent 20beb370
......@@ -313,6 +313,18 @@ class ChatCompletionMessageGenericParam(BaseModel):
reasoning_content: Optional[str] = None
tool_calls: Optional[List[ToolCall]] = Field(default=None, examples=[None])
@field_validator("role", mode="before")
@classmethod
def _normalize_role(cls, v):
if isinstance(v, str):
v_lower = v.lower()
if v_lower not in {"system", "assistant", "tool"}:
raise ValueError(
"'role' must be one of 'system', 'assistant', or 'tool' (case-insensitive)."
)
return v_lower
raise ValueError("'role' must be a string")
class ChatCompletionMessageUserParam(BaseModel):
role: Literal["user"]
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment