一个多功能 AstrBot 插件 — 集内容获取、媒体解析、设备控制与跨群记忆于一体。
Pixiv 随机图片 · 每日一言 · 天气查询 · 男娘图片 · 网易云点歌 · JMComic 漫画 · 小红书/B站/抖音解析 · DG-LAB 设备管理 · 跨群聊记忆
💬 插件官方QQ交流群:1106353813,点击跳转
欢迎加入!在这里可以获取更新通知、反馈问题与建议、交流使用心得,开发者也会在群内答疑。 遇到 bug 或有新功能想法,也可以直接在群里 @ 维护者,或到 Issues 提交。
| 模块 | 能力 |
|---|---|
| 🎨 Pixiv 随机图片 | 随机图 / R18 / 标签筛选 / 关键词搜索 / 指定作者 / 长宽比筛选 / 排除 AI |
| 🔍 媒体解析 | 小红书图文视频 · B站视频信息 · 抖音无水印视频 |
| 📚 JMComic 漫画 | 搜索 / 详情 / 章节图片(合并转发分段下发)/ 随机推荐 |
| 🎵 网易云点歌 | 点歌、搜索、语音条、原始文件、按 ID 获取 |
| ✨ 每日一言 | 12 种分类(动画/漫画/游戏/文学/诗词/影视…) |
| 🌤️ 天气查询 | 实时天气 + 未来 3 天预报 |
| 👗 男娘图片 | 随机男娘主题图片(WebP) |
| 🔌 DG-LAB | Socket V2 设备全生命周期管理、多用户/多设备隔离、WebUI 控制面板 |
| 🧩 按群聊开关 | 在单个群用 /开关 命令一键关闭/开启本插件全部命令,互不影响 |
| 🧠 跨群聊记忆 | 同平台所有群共享一份持久化上下文,自动注入 LLM 请求 |
| ✂️ 分段回复 | 把机器人回复拆成多条消息分次发送,模拟逐条回复,可配分段规则与延时 |
- ⚡ 异步高性能:基于
asyncio+aiohttp/websockets,非阻塞 I/O。 - 🛡️ 健壮容错:网络异常、API 错误、参数错误均有友好提示;点歌带指数退避重试。
- ⚙️ 灵活配置:所有默认参数均可在 AstrBot 管理面板自定义。
- 👥 多租户隔离:DG-LAB 每个用户/每台设备连接与操作完全隔离。
方式一:插件市场(推荐) — 在 AstrBot 管理面板搜索 astrbot_plugin_currentcortex 安装。
方式二:手动克隆:
cd AstrBot/data/plugins
git clone https://github.com/backrooms-yrc/astrbot_plugin_currentcortex.git🔐 LeiZ API 鉴权要求:自最新版本起,所有接口(含免费接口)均需携带 API Key,请求头格式为
x-api-key: <API-Key>。
前往 LeiZ API 官网 👉 https://api.bileizhen.top
在官网注册/登录后,进入「控制台 / API Keys」页面创建并复制你的 API Key(即 x-api-key 的值)。该 Key 为所有 LeiZ 接口(Pixiv / 一言 / 天气 / 男娘 / 网易云 / JMComic)统一使用,只需一个。
💡 具体申请位置以官网页面为准(如「控制台 → API Keys / 令牌管理」)。若官网流程有变动,以官网说明为准。
打开 AstrBot 管理面板 → 插件管理 → 本插件 → 配置,把上一步获取的 Key 填入 leiz_api_key 字段,保存后重启插件。
未配置时,Pixiv / 一言 / 天气 / 男娘 / 点歌 / JMComic 等全部 LeiZ 接口命令将不可用,调用时会给出配置引导提示。
旧版迁移:v1.3.x 及更早版本的
femboy_api_key已合并为统一的leiz_api_key。若未填新字段但保留了旧字段,插件会自动作为统一 Key 使用并提示迁移,建议尽快改填到leiz_api_key。
pip install aiohttp>=3.8.0
pip install websockets>=10.0 # 仅 DG-LAB 功能需要- AstrBot >= 4.15(< 5;使用
EventMessageType/ 处理器priority/ProviderRequest等较新 API) - Python >= 3.10
- aiohttp >= 3.8.0
- websockets >= 10.0(DG-LAB 功能必需)
- ffmpeg(网易云语音条功能需要,需在系统 PATH 中)
所有指令均支持中英文别名:
| 指令 | 别名 | 功能 |
|---|---|---|
/pixiv |
/图片 |
Pixiv 随机图片 |
/解析 |
— | 自动识别平台解析媒体链接 |
/xhs |
/小红书 |
小红书解析 |
/bilibili |
/B站 /b站 |
B站视频解析 |
/douyin |
/抖音 |
抖音视频解析 |
/jm |
/漫画 |
JMComic 漫画 |
/jmcommend |
/漫画推荐 |
漫画随机推荐 |
/music |
/音乐 |
音乐点歌(网易云/酷狗) |
/点歌 |
— | 快捷点歌(仅语音条) |
/音源 |
— | 切换点歌音源(auto/网易云/酷狗) |
/hitokoto |
/一言 |
每日一言 |
/weather |
/天气 |
天气查询 |
/femboy |
/男娘 |
男娘图片 |
/dglab |
/电击 |
DG-LAB 设备管理 |
/开关 |
/toggle /switch |
按群聊开关本插件全部命令 |
/apitest |
/连通测试 /接口测试 |
接口连通性测试 |
通过 LeiZ API 获取随机 Pixiv 图片,支持丰富的筛选与搜索。
| 指令 | 说明 |
|---|---|
/pixiv |
获取一张随机图片(按默认参数) |
/pixiv help |
显示帮助 |
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
r18: |
int | 0 | R18 模式:0=全年龄、1=仅 R18、2=混合 |
num: |
int | 1 | 获取数量(1-20) |
size: |
string | regular | 图片尺寸:original/regular/small/thumb/mini |
tag: |
string | — | 标签筛选;单个 tag 内用 | 为 OR,多个 tag 参数为 AND |
keyword: |
string | — | 标题 / 作者 / 标签模糊搜索 |
uid: |
int | — | 指定作者 UID |
ratio: |
string | — | 长宽比筛选,如 gt1.2lt1.8 |
excludeAI: |
bool | false | 排除 AI 生成作品 |
| 快捷词 | 等同于 |
|---|---|
r18 |
r18:1 |
mixed |
r18:2 |
safe / sfw |
r18:0 |
# 基础随机
/pixiv # 随机全年龄图片
/pixiv r18:1 # 随机 R18 图片
/pixiv num:5 # 一次获取 5 张
# 标签与关键词搜索
/pixiv tag:白丝 num:3 # 获取 3 张白丝图
/pixiv keyword:初音ミク num:5 # 搜索初音未来相关
/pixiv tag:萝莉 excludeAI:true # 排除 AI 的萝莉标签
/pixiv uid:123456 num:3 # 指定作者作品
# 组合筛选
/pixiv r18:2 tag:白丝 keyword:初音ミク num:3 size:original
# 快捷语法
/pixiv r18 # 等同 r18:1
/pixiv mixed # 等同 r18:2
📷 [1/3]
🎨 冬日午后
👤 作者:SampleArtist
🔗 https://www.pixiv.net/artworks/12345678
🏷️ 标签:オリジナル / 女の子 / 冬 / 雪
📐 尺寸:1920×1080
[图片]
💡 随机与搜索的路由:未提供
tag/keyword/uid/ratio/excludeAI等过滤参数时,走 GET 随机接口(每次结果不同);提供任一过滤参数时自动切换到 POST 筛选接口。
自动识别平台并解析小红书、B站、抖音的媒体链接,返回无水印图片 / 视频信息。
| 指令 | 说明 |
|---|---|
/解析 <链接> |
自动识别平台并解析 |
/xhs <链接>(/小红书) |
小红书解析 |
/bilibili <链接>(/B站 /b站) |
B站视频解析 |
/douyin <链接>(/抖音) |
抖音视频解析 |
/解析 help |
显示帮助 |
| 平台 | 支持格式 |
|---|---|
| 小红书 | xiaohongshu.com/explore/xxx、xhslink.com/xxx(短链) |
| B站 | bilibili.com/video/BVxxx、b23.tv/xxx(短链)、avxxx |
| 抖音 | douyin.com/video/xxx、v.douyin.com/xxx(短链) |
/解析 https://www.xiaohongshu.com/explore/abc123
/xhs https://xhslink.com/xxxx
/bilibili https://www.bilibili.com/video/BV1xx411c7mD
/douyin https://v.douyin.com/xxxx
- 小红书:标题、作者、点赞、简介、无水印高清原图、视频链接(如有)
- B站:标题、UP主、时长、播放/点赞、封面、分P信息、视频下载链接(如有)
- 抖音:标题、作者、点赞/评论/分享、无水印视频链接
⚠️ 请确保链接可公开访问;部分平台可能因反爬策略导致解析失败。下载链接仅供个人学习使用,请遵守平台规范。
通过 LeiZ JMComic API 搜索、获取漫画与章节图片。
| 指令 | 说明 |
|---|---|
/jm <章节ID> |
最简写法,获取章节图片(合并转发发送) |
/jm chapter <章节ID>(/漫画 章节) |
等价写法 |
/jm con(/漫画 续 /漫画 继续) |
继续查看上一章节的后续图片 |
/jm search <关键词>(/漫画 搜索) |
搜索漫画 |
/jm search <关键词> page:<页码> |
搜索漫画(指定页码) |
/jm detail <漫画ID>(/漫画 详情) |
获取漫画详情 |
/jmcommend(/漫画推荐) |
随机推荐一部漫画 |
/jm help |
显示帮助 |
# 搜索
/jm search 原神 # 搜索「原神」相关
/jm search 萝莉 page:2 # 搜索第 2 页
# 详情
/jm detail 413828 # 获取漫画详情
# 章节图片
/jm 413828 # 最简写法
/jm chapter 413828 # 等价写法
/jm con # 续看后续图片(整章超过 20 张时)
# 随机推荐
/jmcommend
- 分段下发:整章图片较多时,每条命令最多下发
jm_page_size(默认 20)张。仍有剩余会提示,发送/jm con继续查看,可重复直至看完。单条合并转发节点过多可能被 QQ 拒绝(retcode=1200),故默认值偏保守;如遇转发失败可调小该值。 - 统一转 JPEG:章节图片统一转码为 JPEG 再嵌入合并转发——QQ 合并转发对 webp 等格式兼容性差,会被服务端拒绝。超过
jm_image_max_bytes(默认 2MB)的图片会再逐档降质压缩。 - 续看游标:续看状态仅保存在内存中、约 30 分钟 有效,过期后需重新
/jm <章节ID>获取。
⚠️ 内容来源于第三方 API,请遵守相关法律法规。详情与章节接口响应可能较慢,请耐心等待。
通过 LeiZ API 实现点歌、搜索与播放链接获取,支持网易云与酷狗双音源,并提供 auto 自动路由(网易云优先,失败转酷狗)。
| 指令 | 说明 |
|---|---|
/音源 |
查看当前音源 + 可选项 |
/音源 auto(自动) |
默认。网易云优先,VIP/无版权/超时自动转酷狗 |
/音源 网易云 |
仅网易云 |
/音源 酷狗 |
仅酷狗 |
音源按会话(群/私聊)记忆,互不影响;重启后重置为默认(music_default_source 配置项,默认 auto)。
| 指令 | 说明 |
|---|---|
/music <歌曲名>(/音乐) |
点歌(搜索并返回第一首的详细信息) |
/music direct <歌曲名>(/音乐 直接) |
仅返回转码后的语音条 |
/点歌 <歌曲名> |
快捷命令,等效 /音乐 直接,仅返回语音条 |
/music file <歌曲名>(/音乐 文件) |
返回未经转码的原始音乐文件 |
/music id:<歌曲ID>(/音乐 编号:) |
通过 ID 获取详细信息 |
/music search <关键词>(/音乐 搜索) |
搜索歌曲列表 |
/music help |
显示帮助 |
/music 孤勇者 # 点歌
/music 周杰伦 晴天 # 搜索「周杰伦 晴天」
/music direct 孤勇者 # 仅返回语音条
/点歌 孤勇者 # 快捷命令
/music file 孤勇者 # 返回原始音频附件
/music id:1901371647 # 通过 ID 获取
/music search 陈奕迅 # 搜索歌曲列表
歌曲名称、艺术家、专辑、封面、音质(码率/格式/等级)、文件大小、播放链接。在 QQ 平台会自动将播放链接解析为语音条发送(依赖框架 Record 消息段;不支持时降级为文本链接)。
⚠️ 部分 VIP 歌曲可能无法获取播放链接;播放链接有时效性,请及时使用。语音条功能依赖系统ffmpeg。
📦 文件模式与大文件:
/音乐 文件返回的原始音频(尤其无损 flac)体积可能很大,QQ/NapCat 端常因超限上传失败(retcode=1200)。当文件超过music_file_max_bytes(默认 25MB)时,插件会自动转码为 128kbps MP3 后再发送(需ffmpeg),体积可缩小约 90%。如需发送原始无损文件,可在配置中调大该阈值(但不推荐,易发送失败)。
🚫 防连点过载:为避免用户短时间连点触发大量并发下载/转码拖垮服务器,点歌命令内置「进行中去重 + 冷却」(
music_cooldown,默认 3 秒)。同一会话上一首还在处理时再次点歌会提示「请稍候」,刚点完立刻再点会提示「点得太快啦」。不同群/私聊互不影响。
获取来自社区贡献的随机一言。
| 指令 | 说明 |
|---|---|
/hitokoto |
随机获取一言(全部分类) |
/hitokoto <分类代码> |
指定分类 |
/hitokoto help |
显示帮助 |
| 代码 | 分类 | 代码 | 分类 |
|---|---|---|---|
| a | 动画 | g | 其他 |
| b | 漫画 | h | 影视 |
| c | 游戏 | i | 诗词 |
| d | 文学 | j | 网易云 |
| e | 原创 | k | 哲学 |
| f | 来自网络 | l | 抖机灵 |
/hitokoto a # 获取动画类一言
/hitokoto i # 获取诗词类一言
实时查询城市天气及未来 3 天预报。
/weather 广州市 # 查询广州天气
/weather 北京 # 查询北京天气
/weather help # 显示帮助
支持中国主要城市,建议使用中文城市名(最长 50 字符)。返回当前温度/天气/体感/风力/湿度及未来 3 天预报。
随机获取男娘主题图片(WebP)。
/femboy # 随机男娘图片
/femboy help # 显示帮助
使用前必须配置
leiz_api_key,详见 快速开始。
通过 DG-LAB Socket V2 协议实现对郊狼脉冲主机的完整控制。需运行 DG-LAB Socket V2 中转服务器。
| 指令 | 说明 |
|---|---|
/dglab bind [服务器地址](绑定) |
绑定新设备(生成二维码供 APP 扫描,支持多设备追加) |
/dglab unbind [序号](解绑) |
解绑设备(多台时需指定序号) |
/dglab strength [序号] <A|B> <0-200>(强度) |
设置通道强度(序号省略则操作 #1) |
/dglab up [序号] <A|B> [步进](增加) |
增加强度(默认 +5) |
/dglab down [序号] <A|B> [步进](减少) |
减少强度(默认 -5) |
/dglab shock [序号] <A|B> [强度] [波形] [秒数](开始) |
开始电击 |
/dglab stop [序号] [A|B](停止) |
停止电击(强度归零 + 清空波形) |
/dglab pulse [序号] <A|B> <预设|HEX> [秒数](波形) |
发送波形数据(默认 5 秒) |
/dglab clear [序号] <A|B>(清空) |
清空波形队列 |
/dglab feedback [序号](反馈) |
查看实时强度和反馈按钮状态 |
/dglab permission [on|off](权限) |
查看/切换权限隔离(默认开启) |
/dglab status(状态) |
查看全部设备绑定与连接状态 |
/dglab info(信息) |
查看全部设备详细信息 |
/dglab help(帮助) |
显示帮助 |
💡 多设备:同一用户可绑定多台设备,用序号(1/2/3…)区分,省略默认操作 #1。控制他人设备示例:
/dglab strength @用户ID 2 A 50。
| 预设 | 效果 | 预设 | 效果 |
|---|---|---|---|
breathe |
缓慢渐强渐弱 | needle |
高频持续尖刺 |
pulse |
快速间歇脉冲 | throb |
低频缓慢起伏 |
wave |
连续波浪起伏 | chaos |
强弱随机交替 |
tap |
短促单次敲击 | heartbeat |
双拍心跳节奏 |
1. 绑定设备
/dglab bind ws://192.168.1.100:9999
2. 用 DG-LAB APP 扫描二维码完成绑定
3. 控制设备
/dglab shock A 50 breathe 10 # A通道电击(强度50,呼吸波形,10秒)
/dglab strength A 50 # 仅设置A通道强度
/dglab pulse A wave 5 # 发送波浪波形5秒
/dglab up B 10 # B通道强度+10
/dglab stop # 停止所有输出
4. 查看状态
/dglab status
/dglab feedback
5. 解绑(可选)
/dglab unbind
启用 dglab_webui_enabled 后,插件会在 dglab_webui_host:dglab_webui_port(默认 127.0.0.1:9178)启动一个浏览器远程控制界面,可在网页上查看/控制设备,Material Design 3 风格。
⚠️ WebUI 安全(重要)
- 自 v1.5.3 起,WebUI 默认关闭(
dglab_webui_enabled默认false),需手动开启。- 默认监听地址为
127.0.0.1(仅本机访问)。如需公网访问,请将dglab_webui_host显式设为0.0.0.0,并务必在前面部署反向代理与访问控制(如 Nginx + Basic Auth / IP 白名单)。- WebUI 内置独立的用户注册/登录系统,与机器人本体/平台账号无关:任何能访问该端口的人都能注册账号。不要在无防护的情况下直接暴露到公网。
- 建议仅在本机使用,或仅在内网/经反代+鉴权后对外提供。
- 多用户隔离:每个用户独立连接与绑定,互不影响,支持最多 50 个并发连接。
- 自动重连:操作失败自动重试(最多 2 次);连接断开尝试重建;空闲超 5 分钟自动清理。
- 安全机制:所有参数严格校验,操作超时保护,强度限制 0-200。
⚠️ 仅支持郊狼脉冲主机 3.0;二维码在会话期间有效,超时需重新生成;建议局域网用ws://,公网用wss://。
每个群聊可独立控制本插件是否生效,互不影响。例如某个群不需要图片/点歌等功能时,可单独关闭它,而其它群不受影响。
| 指令 | 说明 |
|---|---|
/开关 off(或 /开关 关) |
关闭本群全部插件命令(pixiv/解析/jm/music/… 均不再响应) |
/开关 on(或 /开关 开) |
重新启用本群插件命令 |
/开关 status(或 /开关 状态) |
查看本群当前状态 |
/开关 |
无参数 = 查看状态 + 用法提示 |
别名:
/toggle、/switch(如/toggle off)。
/开关 off # 在本群关闭 CurrentCortex 全部命令
/pixiv # 此时不再响应(已关闭)
/开关 status # 查看状态:⛔ 已关闭
/开关 on # 重新启用
/pixiv # 恢复正常
- 状态持久化:开关状态保存在
data/currentcortex_group_switch.json,重启后保留。默认(未配置过)为启用,只有主动/开关 off的群才会被关闭。 - 永不死锁:
/开关命令本身始终可用——即使本群已关闭,仍可发送/开关 on重新启用,不会被拦截。 - 权限:默认仅群管理员(框架识别的 admin)可操作,避免任意成员随意开关。若你未被识别为管理员,可在配置中关闭
group_switch_admin_only。 - 仅作用于本插件:该开关只拦截 CurrentCortex 的命令,不影响 AstrBot 其它插件与机器人本体功能。
- 私聊不受控:开关仅对群聊生效。
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
group_switch_enable |
bool | true | 是否启用按群聊开关功能(关闭则守卫完全不介入) |
group_switch_admin_only |
bool | true | 是否仅群管理员可操作 /开关 |
可选功能:把机器人的回复拆成多条消息分次发送,模拟「逐条回复」的节奏,让长回复更自然、更有真人感。默认关闭,需在配置面板手动开启。
开启后,插件会在回复发送前介入,按所选规则把整段文本切成若干段,逐条发送,段与段之间加随机延时(首段不延时)。
⚠️ 与框架自带功能的关系:AstrBot 本身已有全局「分段回复」能力(平台设置 → 分段回复)。本插件功能与之独立,请勿同时开启,否则会重复分段。二选一即可——若你已在框架层启用,就不必再开这里的。
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
reply_seg_enable |
bool | false | 【总开关】 开启分段回复 |
reply_seg_only_llm |
bool | true | 仅对大模型(LLM)回复分段;关闭则插件命令回复(如 /pixiv)也会被分段。建议保持开启 |
reply_seg_mode |
string | punct | 分段模式:punct=按标点分句;length=按长度切分 |
reply_seg_split_symbols |
string | 。!?!?~~…+换行+,, |
单字符切分符号(在这些符号处切分,符号保留在段尾)。默认含中英文逗号 |
reply_seg_split_words |
string | 喵 qwq owo awa ovo w ( |
切分词(可多字符,空格分隔),在词的后面切分、词保留在段尾。用于颜文字/语气词。w)会匹配所有出现位置,可能误切英文单词,按需增删 |
reply_seg_min_length |
int | 15 | length 模式:最小段长,短于此不切(建议 10~30) |
reply_seg_max_length |
int | 80 | length 模式:最大段长,超过时在 [最小,最大] 范围找标点切,找不到才硬切(建议 50~150) |
reply_seg_delay_range |
string | 0.8,2.5 |
段间随机延时范围(秒),格式 min,max |
punct(按标点):在每个切分符号/词处断开。最自然,适合大多数对话。length(按长度):当某段超过「最大段长」时,在[最小段长, 最大段长]范围内反向寻找切分点(符号或词)来切;找不到才硬切。适合控制每段不要太长。
💡 除了标点(句号、问号、逗号等),还可配置切分词(
reply_seg_split_words,空格分隔),在颜文字/语气词(如喵、qwq、owo、()后面断开。两种模式都会同时识别切分符号与切分词。
- 分段后的完整回复会被正确写回对话历史,不影响上下文连贯性。
- 分段仅作用于纯文本回复;图片、文件等不会被拆分。
- 若分段过程出现异常,会自动回退为整条发送(不影响正常使用)。
可选功能:在同一平台实例下的所有群聊之间共享一份持久化记忆,作为额外上下文注入 LLM 请求,让机器人在不同群之间拥有连续语境。
- 存储:
data/currentcortex_cross_group.json,按平台实例(platform_id)分桶,重启后保留。 - 记录:群聊中的非命令消息会被格式化为
[昵称/HH:MM:SS]: 文本并滚动追加(超过上限自动裁剪旧记录)。 - 注入:群消息触发 LLM 请求时,自动把同平台其他群的最近若干条记录以
<system_reminder>注入用户消息部分。 - 斜杠命令不记录:命令消息不会进入记忆。
| 配置项 | 默认值 | 说明 |
|---|---|---|
cross_group_enable |
false | 是否启用跨群聊记忆 |
cross_group_max_cnt |
500 | 每个平台保留的最大记录条数 |
cross_group_inject_cnt |
30 | 每次回复注入到 LLM 的最近记录条数 |
⚠️ 开启后会向 LLM 提供其他群的聊天内容,请确认符合你的隐私预期与各群成员的知情同意。
一键诊断全部 LeiZ 上游接口的鉴权与连通状态,快速区分「接口异常」还是「代码问题」。
/apitest # 并行探测全部 6 个接口
/apitest help # 显示帮助
6 个接口(Pixiv / 一言 / 天气 / 男娘 / 点歌 / JMComic)并行探测,每个用最轻量的只读请求,不消耗图片/音频下载流量。状态含义:
| 图标 | 状态 | 含义 |
|---|---|---|
| 🟢 | 正常 | 接口返回成功 |
| 🟡 | HTTP 异常 | 收到非 200(如 401 鉴权失败 / 402 配额 / 5xx) |
| 🔴 | 网络/超时 | 连接失败或超过配置超时 |
| ⚫ | 跳过 | 对应客户端未初始化(通常未配置 API Key) |
路径:AstrBot 管理面板 → 插件管理 → 本插件 → 配置。
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
default_r18 |
int | 0 | 默认 R18 模式(0=全年龄, 1=仅R18, 2=混合) |
default_num |
int | 1 | 默认每次获取的图片数量(1-20) |
default_size |
string | regular | 默认图片尺寸(original/regular/small/thumb/mini) |
image_proxy |
string | pixiv.bileizhen.top | 图片反代域名 |
exclude_ai |
bool | false | 默认是否排除 AI 生成作品 |
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
leiz_api_key |
string | (空) | LeiZ API 统一密钥(请求头 x-api-key),必填。在 LeiZ API 官网 注册后获取,所有 LeiZ 接口均需 |
request_timeout |
int | 15 | API 请求超时时间(秒),影响所有功能 |
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
jm_image_max_bytes |
int | 2097152 | 章节单张图片体积阈值(字节),超此再逐档降质压缩 |
jm_page_size |
int | 20 | 章节图片每条命令下发的张数,遇转发失败可调小 |
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
music_file_max_bytes |
int | 26214400 | /音乐 文件 单文件体积上限(字节,默认 25MB)。超过则自动转码为 128kbps MP3 再发送(需 ffmpeg);设为 0 不限制(不推荐,易发送失败) |
music_cooldown |
int | 3 | 同一会话连续点歌的最小间隔秒数,防止用户连点触发大量并发下载/转码拖垮服务器。处理中的请求会被提示「请稍候」;设为 0 不限制(不推荐) |
music_default_source |
string | auto | 点歌默认音源:auto(网易云优先,失败转酷狗)/ netease(仅网易云)/ kugou(仅酷狗)。用户仍可用 /音源 按会话覆盖 |
⚠️ 使用 DG-LAB 功能前,必须先部署并运行 DG-LAB Socket V2 中转服务器。
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
dglab_server_url |
string | (空) | 中转服务器地址(如 ws://192.168.1.100:9999) |
dglab_heartbeat_interval |
int | 60 | 心跳间隔(秒),建议 30-120 |
dglab_auto_connect |
bool | false | 插件启动时是否自动连接(一般设为 false) |
dglab_webui_enabled |
bool | false | 是否启用 WebUI 控制面板(默认关闭;需了解风险后手动开启) |
dglab_webui_host |
string | 127.0.0.1 | WebUI 监听地址(默认仅本机;公网需显式设为 0.0.0.0 并加反代+鉴权) |
dglab_webui_port |
int | 9178 | WebUI 监听端口 |
📦 DG-LAB 中转服务器部署
- 获取服务器代码:DG-LAB-OPENSOURCE
- 安装依赖并启动:
cd socket/v2/backend npm install npm start - 默认端口
9999(可通过.env修改) - 确保 AstrBot 与 DG-LAB APP 均可访问该服务器
🔄 从旧版 DG-LAB JSON 配置迁移
v1.2.0 及更早版本使用 JSON 字符串配置(已弃用):
{ "dglab": { "server_url": "ws://your-server:9999", "heartbeat_interval": 60, "auto_connect": false } }新格式直接填三个独立项:dglab_server_url、dglab_heartbeat_interval、dglab_auto_connect。插件仍会检测旧版 dglab JSON 配置:若新项留空但旧配置存在,会自动读取并提示迁移。建议尽快手动迁移。
见 🧠 跨群聊记忆 章节。
见 ✂️ 分段回复 章节。
本插件同时提供 Qtine / OneBot v11 兼容包,沿用标准外部插件结构。
将仓库中的 qtine/ 目录复制(或软链接)到 Qtine 外部插件目录(目录名应为 currentcortex):
cp -a qtine/ /path/to/Qtine/plugins/currentcortex/- 目录内必须保留
main.py、data.json与requirements.txt。 - Qtine 配置项会在面板中注册(含
_conf_schema.json所有默认参数),持久化 JSON 记录和 DG-LAB 二维码保存在qtine/data/。 - 富媒体通过 OneBot v11 CQ 码发送(图片
[CQ:image]、语音[CQ:record]、文件[CQ:file])。需使用支持本地file://与 CQ 码的 QQ OneBot 实现(如 NapCat)。JMComic 合并转发会降级为一条文本 + 顺序图片 CQ 码。 - 音乐语音仍依赖系统
ffmpeg。若适配器不支持 record/file CQ 码,插件会保留文本链接或提示。
安装后插件无法加载?
- Python 版本是否 >= 3.10
- 是否已安装依赖:
pip install aiohttp>=3.8.0(DG-LAB 还需websockets>=10.0) - AstrBot 版本是否 >= 4.15(本插件需要较新 API,旧版会无法加载)
- 查看 AstrBot 日志中的错误信息
调用命令提示「功能未启用 / 未配置 API Key」?
需先在 LeiZ API 官网 获取 API Key(见 配置 API Key),再填入配置面板的 leiz_api_key 字段,保存后重启插件。可用 /apitest 验证各接口连通性。Pixiv / 一言 / 天气 / 男娘 / 点歌 / JMComic 均依赖此 Key。
Pixiv 图片无法显示?
- 反代域名不可用:尝试更换
image_proxy配置项 - 网络连接问题:检查服务器能否访问外网
- API 服务异常:稍后重试
如何排除 AI 生成的 Pixiv 作品?
- 全局排除:配置
exclude_ai为true - 单次排除:命令中使用
excludeAI:true,如/pixiv tag:萝莉 excludeAI:true
请求超时怎么办?
适当增大 request_timeout(单位秒),检查网络状况;频繁超时多为 API 繁忙,建议稍后重试。
天气查询支持哪些城市?
支持中国主要城市,建议使用中文城市名(如「广州市」「北京」),最长 50 字符。
DG-LAB 功能无法使用 / 绑定失败?
- 是否安装依赖:
pip install websockets>=10.0 - 是否配置
dglab_server_url,且中转服务器正在运行、可访问 - 二维码生成后需在有效期内用 APP 扫描
- 确认 APP 版本支持 Socket V2,且仅支持郊狼脉冲主机 3.0
- 查看 AstrBot 日志中
[DGLab]相关错误
DG-LAB 连接断开怎么办?
系统会自动重连(最多 2 次);仍失败可用 /dglab unbind 解绑后重新 /dglab bind,并用 /dglab status 查看状态。
多人同时使用会冲突吗?
不会。每个用户拥有独立的设备绑定与连接,操作完全隔离,支持最多 50 个并发连接。
| 错误类型 | 可能原因 | 解决方案 |
|---|---|---|
| 网络错误 | 网络连接失败 | 检查网络连接 |
| 请求超时 | API 响应慢 | 增大 request_timeout 或稍后重试 |
| HTTP 错误 | API 服务异常(401/402/5xx 等) | 检查 API Key / 服务状态 |
| 参数错误 | 命令格式不正确 | 发送 /xxx help 查看帮助 |
| 无结果 | 未找到匹配内容 | 更换搜索参数 |
| 数据格式异常 | API 返回异常数据 | 稍后重试 |
astrbot_plugin_currentcortex/
├── main.py # 主程序:所有命令注册与 API 客户端
├── cross_group_memory.py # 跨群聊记忆持久化存储
├── group_switch_store.py # 按群聊开关状态持久化存储
├── media_parser.py # 小红书/B站/抖音 媒体解析
├── media_cmds.py # 媒体命令辅助
├── dglab_client.py # DG-LAB WebSocket 客户端封装
├── dglab_device_store.py # DG-LAB 设备绑定关系持久化
├── dglab_connection_pool.py # DG-LAB 连接池与状态管理
├── dglab_commands.py # DG-LAB 命令处理器
├── dglab_webui.py # DG-LAB WebUI 控制面板
├── dglab_user_store.py # DG-LAB 用户存储
├── dglab_permission_store.py # DG-LAB 权限存储
├── dglab_post_store.py # DG-LAB 投稿广场存储
├── dglab_email_store.py # DG-LAB 邮箱存储
├── dglab_turnstile_store.py # DG-LAB Turnstile 存储
├── dglab_chat_store.py # DG-LAB 聊天存储
├── qtine/ # Qtine / OneBot v11 兼容包
├── metadata.yaml # 插件元数据
├── _conf_schema.json # 配置模式定义
├── requirements.txt # Python 依赖
└── README.md # 项目文档
内容获取与解析:
- PixivAPIClient (main.py):Pixiv API 客户端,按过滤参数自动路由 GET 随机 / POST 筛选接口
- HitokotoAPIClient / WeatherAPIClient / FemboyAPIClient:一言 / 天气 / 男娘 API 客户端
- NeteaseAPIClient:网易云客户端,点歌带指数退避重试
- JMComicAPIClient:JMComic 客户端(搜索 / 详情 / 章节)
- MediaParserManager (media_parser.py):小红书 / B站 / 抖音 链接解析
- CommandParser (main.py):
key:value参数与快捷语法解析器
DG-LAB 设备管理:
- DGLabClient (dglab_client.py):WebSocket 客户端,连接管理 / 消息收发 / 心跳保活
- DeviceStore (dglab_device_store.py):用户-设备绑定关系持久化(线程安全)
- DeviceConnectionPool (dglab_connection_pool.py):连接池,多用户并发 / 连接复用 / 自动重连 / 空闲清理
- DGLabCommandHandler (dglab_commands.py):命令解析 / 校验 / 执行 / 格式化
- DGLabWebUI (dglab_webui.py):浏览器远程控制面板
主插件与记忆:
- CurrentCortexPlugin(Star) (main.py):主插件类,集成所有功能并注册命令
- CrossGroupMemoryStore (cross_group_memory.py):跨群聊共享记忆,JSON 持久化
- GroupSwitchStore (group_switch_store.py):按群聊开关状态,JSON 持久化
- 异步架构:基于
asyncio+aiohttp/websockets,非阻塞 I/O - 模块化设计:DG-LAB 功能独立为多个模块,职责清晰
- 统一接口:所有 API 客户端遵循相同设计模式
- 健壮容错:全面的异常处理、参数校验、按需重试
- 数据持久化:DG-LAB 绑定存于
data/dglab_bindings.json,跨群记忆存于data/currentcortex_cross_group.json(均符合 AstrBot 规范) - 资源管理:连接池自动清理空闲连接,防止资源泄漏
- 多租户隔离:每个用户独立连接,操作互不干扰
MIT License
致谢:
- LeiZ API — 提供 Pixiv / 一言 / 天气 / 男娘 / 网易云 / JMComic 等 API 服务
- AstrBot — 聊天机器人框架
- DG-LAB-OPENSOURCE — DG-LAB Socket V2 协议与中转服务器
版本:v1.5.7
仓库:GitHub