落地并存测服全端:智能体 Graph/路由、后台切 8180、主账与部署脚本齐备,便于线上重发与验收。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -35,3 +35,34 @@ class InboundMessage:
|
||||
def has_sender(self) -> bool:
|
||||
"""是否具备可进入业务的发送人身份。"""
|
||||
return bool(self.sender_id and self.sender_id.strip())
|
||||
|
||||
def to_dict(self) -> dict[str, Any]:
|
||||
"""序列化进 PG JSONB;不含密钥。"""
|
||||
return {
|
||||
"sender_id": self.sender_id,
|
||||
"message_id": self.message_id,
|
||||
"content": self.content,
|
||||
"msg_type": self.msg_type,
|
||||
"chat_id": self.chat_id,
|
||||
"chat_type": self.chat_type,
|
||||
"agent_id": self.agent_id,
|
||||
"create_time": self.create_time,
|
||||
"media": self.media,
|
||||
"raw": self.raw,
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, data: dict[str, Any]) -> "InboundMessage":
|
||||
"""从 JSONB / dict 还原。"""
|
||||
return cls(
|
||||
sender_id=str(data.get("sender_id") or ""),
|
||||
message_id=str(data.get("message_id") or ""),
|
||||
content=str(data.get("content") or ""),
|
||||
msg_type=str(data.get("msg_type") or "text"),
|
||||
chat_id=str(data.get("chat_id") or ""),
|
||||
chat_type=str(data.get("chat_type") or "single"),
|
||||
agent_id=str(data.get("agent_id") or ""),
|
||||
create_time=int(data.get("create_time") or 0),
|
||||
media=dict(data.get("media") or {}),
|
||||
raw=dict(data.get("raw") or {}),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user