MCPcopy Create free account
hub / github.com/pgadmin-org/pgadmin4 / Message

Class Message

web/pgadmin/llm/models.py:68–122  ·  view source on GitHub ↗

Represents a message in a conversation.

Source from the content-addressed store, hash-verified

66
67@dataclass
68class Message:
69 """Represents a message in a conversation."""
70 role: Role
71 content: str
72 tool_calls: list[ToolCall] = field(default_factory=list)
73 tool_results: list[ToolResult] = field(default_factory=list)
74 name: Optional[str] = None
75
76 def to_dict(self) -> dict:
77 """Convert to dictionary representation."""
78 result = {
79 'role': self.role.value,
80 'content': self.content
81 }
82 if self.tool_calls:
83 result['tool_calls'] = [tc.to_dict() for tc in self.tool_calls]
84 if self.tool_results:
85 result['tool_results'] = [tr.to_dict() for tr in self.tool_results]
86 if self.name:
87 result['name'] = self.name
88 return result
89
90 @classmethod
91 def system(cls, content: str) -> 'Message':
92 """Create a system message."""
93 return cls(role=Role.SYSTEM, content=content)
94
95 @classmethod
96 def user(cls, content: str) -> 'Message':
97 """Create a user message."""
98 return cls(role=Role.USER, content=content)
99
100 @classmethod
101 def assistant(cls, content: str,
102 tool_calls: list[ToolCall] = None) -> 'Message':
103 """Create an assistant message."""
104 return cls(
105 role=Role.ASSISTANT,
106 content=content,
107 tool_calls=tool_calls or []
108 )
109
110 @classmethod
111 def tool_result(cls, tool_call_id: str, content: str,
112 is_error: bool = False) -> 'Message':
113 """Create a tool result message."""
114 return cls(
115 role=Role.TOOL,
116 content='',
117 tool_results=[ToolResult(
118 tool_call_id=tool_call_id,
119 content=content,
120 is_error=is_error
121 )]
122 )
123
124
125@dataclass

Callers 2

generateFunction · 0.90
deserialize_historyFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected