Lingchu Bot 文档现已上线 — 快来看看吧!
Lingchu Bot

消息存储

消息存储

Lingchu Bot 消息存储管道

Lingchu Bot 包含一个可选的消息存储服务,用于记录事件数据、处理结果、Bot 生命周期事件和平台 API 调用摘要。本页说明存储了什么、如何配置,以及如何访问存储的数据。

概述

消息存储在 services/message_store.py 中实现。它挂载到 NoneBot 的事件处理管道,记录结构化摘要而非原始消息内容。事件会经过仓储层模型选择,高频的平台 / 适配器 / 框架组合可以使用专用 ORM 表。

可选功能

消息存储默认启用,但可以通过在 config.json5 中设置 message_store_enabled = false 完全禁用。

存储内容

记录类型描述
事件接收Bot 接收到任意适配器事件时
处理结果事件处理的结局
Bot 生命周期启动、关闭和连接事件
API 调用摘要事件处理期间发起的平台 API 调用

每条记录包含平台、适配器、框架、事件类别和适配器事件类型字段。QQ + OneBot V11 + NoneBot 事件会写入专用分区表;不支持的组合回退到旧的全局表。

配置

属性

类型

数据保留

记录根据 message_store_retention_days 保留:

  • 设置为正数时,超过指定天数的记录会被清理。
  • 设置为 0 时,禁用基于天数的过期;记录将无限期保留。
  • message_store_cleanup_enabledtrue 时,清理在 Bot 关闭期间运行。

平台识别

存储记录中的 platform 字段从适配器注册表派生:

场景平台值
OneBot V11 适配器已启用qq
未知适配器unknown

只有 LINGCHUAdapter 选中的适配器决定平台值。其他已注册的适配器被忽略。

存储后端

消息存储使用 nonebot-plugin-orm 进行数据库访问。database/orm_crud.py 中的 ORM 辅助提供异步 CRUD 操作,在 worker thread 中运行以避免阻塞 NoneBot 事件循环。

阻塞路径

文件存储、JSON5 解析、deepcopy、命令解析和翻译 catalog 加载都会移到 worker thread 执行。不要在异步处理器中直接调用同步存储方法。

禁用消息存储

要完全禁用消息存储:

{
  message_store_enabled: false,
}

禁用后,不会注册任何事件钩子,也不会写入任何记录。现有记录不会被自动删除。

最后更新于

本页目录