MCPcopy Create free account
hub / github.com/Nativu5/Gemini-FastAPI / Message

Class Message

app/models/models.py:20–38  ·  view source on GitHub ↗

Message model

Source from the content-addressed store, hash-verified

18
19
20class Message(BaseModel):
21 """Message model"""
22
23 role: str
24 content: str | list[ContentItem] | None = Field(default=None)
25 name: str | None = Field(default=None)
26 tool_calls: list[ToolCall] | None = Field(default=None)
27 tool_call_id: str | None = Field(default=None)
28 refusal: str | None = Field(default=None)
29 reasoning_content: str | None = Field(default=None)
30 audio: dict[str, Any] | None = Field(default=None)
31 annotations: list[dict[str, Any]] = Field(default_factory=list)
32
33 @model_validator(mode="after")
34 def normalize_role(self) -> Message:
35 """Normalize 'developer' role to 'system' for Gemini compatibility."""
36 if self.role == "developer":
37 self.role = "system"
38 return self
39
40
41class Choice(BaseModel):

Calls

no outgoing calls

Tested by

no test coverage detected