LangBot Docs

消息平台实体

LangBot 支持多种消息平台,每个消息平台的消息实体格式均不相同。为了屏蔽这些差异,我们实现了一套统一的标准。插件开发者只需要掌握并在插件中使用此页所述的消息实体,LangBot 内部的消息处理逻辑能够自动完成消息的解析和转换。

消息链

消息平台的消息不同于用于 AI 交互的消息,消息平台的消息以消息链的形式描述,QQ 上展示的每一个独立的消息就是一条消息链,消息链中可以包含文字、图片、@组件等多种消息链组件,例如:

这就是一个消息链,包含 一个 Plain 组件(Hello World)和 一个 Image 组件(乌萨奇)

消息链和消息链组件的定义位于langbot_plugin.api.entities.builtin.platform.message中。

构造消息链

请先引入langbot_plugin.api.entities.builtin.platform.message包,才能使用其中的消息组件。

from langbot_plugin.api.entities.builtin.platform.message import *

# 构建一个包含文字 Hello LangBot 和图片(从URL获取)的消息
msg_chain = MessageChain([
    Plain(text="Hello LangBot"),
    Image(url='https://qchatgpt.rockchin.top/langbot-logo.png')
])

# 构建一个包含 @全体成员 和文字 Hello LangBot 的消息
msg_chain = MessageChain([
    AtAll(),
    Plain(text="Hello LangBot")
])

# 构建一个包含 @指定成员 和文字 Hello LangBot 的消息
msg_chain = MessageChain([
    At(target=123456),
    Plain(text="Hello LangBot")
])

目前支持的消息链组件:

  • Source 源消息链信息,如果是从消息平台收到的消息,都会在消息链最前端包含此组件,记录消息信息
  • Plain 纯文本消息
  • Quote 引用消息
  • Image 图片消息
  • AtAll @全体成员消息
  • At @指定成员消息
  • Voice 语音消息
    • 需要检查消息平台支持性
  • Forward 转发消息
    • 在很多平台不受支持,不建议使用
  • File 文件消息

创建组件时,须使用具名参数传入。具体使用方式可以查看源码langbot_plugin.api.entities.builtin.platform.message中的定义。

其他实体

除了上述实体之外,还有好友 Friend和群 Group等实体,这些实体的定义位于langbot_plugin.api.entities.builtin.platform.entities中。

平台 API

查询用户、管理群组和调用平台专有接口,请使用平台 API。运行器使用相同的 self.plugin 入口,当前会话回复使用 ctx.reply()。

On this page