Skip to content

数据模型

SDK 使用两种方式表示数据:

  1. TypedDict / 普通数据类botpy.types)— API 请求/响应的数据结构,提供类型提示的字典,通过键访问数据
  2. 领域模型botpy.message.*botpy.guild.* 等)— 事件回调中使用的 Python 对象,通过 __slots__ 封装数据并绑定 _api 实例,可调用 API 方法

表格约定

  • 每个类型单独成节,标题为该类型的名称;对同名(TypedDict 与领域模型)或需补充说明的类型,标题会附加中文注释,如 Message (类型)Message (领域模型)
  • 每个类型使用三列表格列出全部变量:变量名称 | 变量类型 | 语义说明
  • 变量类型为 SDK 内部类型时,类型名会链接到对应文档小节。
  • 部分 Literal 字面量别名(如 AuditTypeAudioStatus)没有命名变量,使用 取值 | 语义说明 两列表格说明其合法取值。
  • 已声明但无法从源码确定或未初始化的变量,语义标注为 待确认

类型索引

消息类型(message.md

类型说明
MessagePayload基础消息数据结构
DirectMessagePayload私信消息数据结构
MessageAuditPayload消息审核事件载荷
UserPayload用户基础信息(网关)
MessageRefPayload消息引用信息
MessageAttachPayload消息附件信息
Attachment / Thumbnail附件 / 缩略图
EmbedField / EmbedEmbed 消息
ArkObjKv / ArkObj / ArkKv / ArkArk 模板消息
Reference消息引用配置
MessageMarkdownParams / MarkdownPayloadMarkdown 消息
KeyboardPayload内联键盘消息
Media富媒体消息
Message完整消息类型(继承 MessagePayload)
TypesEnum / MessagesPager消息分页
DmsPayload私信会话响应
DMOriginalAuthor / DeletedMessage / DeletionOperator / DeletedMessageInfo消息删除相关

领域模型: Message(含内嵌 _User/_Member/_MessageRef/_Attachments)、DirectMessageMessageAuditBaseMessageGroupMessageC2CMessage

频道类型(guild.md

类型说明
GuildPayload频道数据结构
Role身份组
GuildRole / GuildRoles身份组详情 / 列表
GuildMembers频道成员列表

领域模型: Guild

子频道类型(channel.md

类型说明
ChannelType / ChannelSubType / PrivateType / SpeakPermission子频道相关枚举
ChannelPayload子频道数据结构
ChannelPermissions子频道权限

领域模型: Channel

用户与成员类型(user.md

类型说明
User用户信息
Member成员信息
GuildMemberPayload频道成员信息

领域模型: Member(含内嵌 _User

内联键盘类型(inline.md

类型说明
Keyboard / KeyboardRow键盘结构
Button / RenderData / Action / Permission按钮及行为

论坛类型(forum.md

类型说明
Format帖子内容格式
ThreadInfo / Thread帖子
PostInfo / Post评论
ReplyInfo / Reply回复
AuditResult发布审核结果
ForumRsp / PostThreadRsp响应结构
OpenForumEvent开放论坛事件数据

领域模型: Thread(含内嵌富文本结构)、OpenThread

富文本类型(rich-text.md

类型说明
AuditType / RichType / AtType / ElemType / Alignment字面量别名
RichText / Paragraph / ParagraphProps富文本整体结构
Elem / TextElem / TextProps / ImageElem / PlatImage / VideoElem / PlatVideo / URLElem元素类型
RichObject / TextInfo / AtInfo / AtUserInfo / AtRoleInfo / AtGuildInfo / URLInfo / EmojiInfo / ChannelInfo富文本对象

其他类型(other.md

类型说明
WsContext / ReadyEvent / WsUrlPayload网关基础类型
RecommendChannel / AnnouncesType / Announce公告
AudioStatus / PublicAudioType / AudioControl / AudioAction / AudioLive音频控制
EmojiType / Emoji表情
APIPermission / APIPermissionDemandIdentify / APIPermissionDemandAPI 权限
PinsMessage精华消息
ReactionTargetType / ReactionTarget / Reaction / ReactionUsers表情表态
RemindType / Schedule日程
Robot机器人信息
ShardConfig / SessionWebSocket 会话
InteractionData / InteractionPayload / InteractionType / InteractionDataType交互

领域模型: RobotTokenAudioPublicAudioReaction(含内嵌 _Emoji/_Target)、Interaction(含内嵌 _Data/_Resolved)、GroupManageEventC2CManageEvent

数据流

QQ API 响应 (JSON)
  → BotAPI 方法返回 TypedDict (字典,用于 API 调用方)
  → 或 ConnectionState.parse_* 创建领域模型 (用于事件回调方)

类型映射表

QQ API 数据TypedDict 类型领域模型
guildGuildPayloadGuild
channelChannelPayloadChannel
messageMessagePayload / MessageMessage
memberMember / GuildMemberPayloadMember
userUser / UserPayloadMessage._User(内嵌)
audioAudioAction / AudioLiveAudio / PublicAudio
reactionReactionReaction
forumThreadThread
interactionInteractionPayloadInteraction