from pydantic import BaseModel, Field from typing import List, Optional, Any from datetime import datetime class StandardMessage(BaseModel): """全平台通用的输入消息协议""" platform: str = "qianniu" # 来源平台:qianniu, wechat, feishu, console msg_id: str # 消息唯一ID user_id: str # 发送者唯一ID user_name: str = "" # 发送者昵称 content: str # 消息文本内容 image_urls: List[str] = [] # 提取出来的图片链接 acc_id: str = "" # 商家/店铺账号ID acc_type: str = "" # 平台类型标识 timestamp: datetime = Field(default_factory=datetime.now) raw_data: Any = None # 原始消息体(仅供调试或特殊逻辑备查) # 扩展字段:针对电商场景 goods_name: Optional[str] = None goods_order: Optional[str] = None class StandardResponse(BaseModel): """大脑给出的通用回复协议""" reply_content: str # 回复文本或图片URL msg_type: int = 0 # 0: 文本, 1: 图片, 2: 撤回, 9: 转人工 should_reply: bool = True # 是否需要发送 need_transfer: bool = False # 是否触发转人工 transfer_group: str = "" # 转人工的分组ID metadata: dict = {} # 额外元数据(如埋点、调试信息)