AstrBot Error Pro Plugin
一个强大的AstrBot错误处理插件,可以智能拦截机器人的错误消息并选择是否发送通知给管理员。支持AI上下文感知的错误解释功能,根据用户消息和错误信息生成友好的解释。
(感谢DragonEmpery大佬,此插件是基于原插件astrbot_plugin_error_notice的改良)
功能特性
- 🚫 智能错误拦截:自动识别并拦截包含错误关键词的消息
- 📨 管理员通知:将错误信息实时转发给配置的管理员
- 🤖 AI错误解释:使用AI将技术错误转换为用户友好的提示信息
- 🔧 灵活配置:支持开关错误屏蔽、管理员通知和AI解释功能
- 📍 详细信息:提供错误发生的具体位置(群聊/私聊)和用户信息
- 🎯 精准识别:内置多种错误关键词检测
错误识别关键词
插件会检测以下错误关键词:
- 请求失败
- 错误类型
- 错误信息
- 调用失败
- 处理失败
- 描述失败
- 获取模型列表失败
配置选项
基础配置
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
block_error_messages |
bool | true | 是否屏蔽错误信息(阻止发送给用户) |
notify_admin |
bool | false | 是否将错误信息发送给管理员 |
AI错误解释配置
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
enable_ai_explanation |
bool | false | 启用AI错误解释功能 |
ai_base_url |
string | https://api.openai.com/v1 | OpenAI兼容的API基础URL |
ai_api_key |
string | "" | AI服务的API密钥 |
ai_model |
string | gpt-3.5-turbo | 使用的AI模型名称 |
ai_prompt |
string | 请将以下技术错误信息转换为... | AI提示词模板 |
ai_timeout |
int | 10 | AI调用超时时间(秒) |
ai_max_tokens |
int | 500 | AI响应最大Token数 |
支持的提示词变量
在AI提示词模板中,您可以使用以下变量:
| 变量 | 说明 | 示例 |
|---|---|---|
{error} |
错误信息 | "请求失败,错误类型:ConnectionError" |
{user_message} |
用户原始消息 | "帮我画一只猫" |
{user_name} |
用户昵称 | "Chris" |
{platform} |
平台名称 | "aiocqhttp" |
{chat_type} |
聊天类型 | "群聊" 或 "私聊" |
提示词示例:
用户{user_name}在{platform}的{chat_type}中说了:"{user_message}",但是出现了错误:{error}。请用亲切友好的语言向用户解释这个问题,称呼用户为主人,不超过50字。
使用场景
AI错误解释模式(推荐)
当启用AI错误解释功能时,插件会:
- 检测到错误消息后,发送通知给管理员
- 调用AI服务将技术错误转换为友好提示
- 用AI生成的解释替换原始错误消息发送给用户
- 当然也可以通过修改提示词放弃向用户解释错误,转而继续与用户聊天,实现伪轮询的效果。
示例转换:
- 原始错误:
请求失败,错误类型:ConnectionError,错误信息:连接超时 - AI解释:
抱歉,我现在有点忙,请稍后再试试哦~
传统屏蔽模式
当未启用AI解释时,插件会:
群聊错误处理
当机器人在群聊中出现错误时,插件会:
- 拦截错误消息(如果启用屏蔽功能)
- 向管理员发送通知:
主人,我在群聊 [群名](群号) 中和 [用户名] 聊天出现错误了: [错误内容]
私聊错误处理
当机器人在私聊中出现错误时,插件会:
- 拦截错误消息(如果启用屏蔽功能)
- 向管理员发送通知:
主人,我在和 [用户名](用户ID) 私聊时出现错误了: [错误内容]
版本历史
V1.2.0 (最新)
- 重大更新:AI解释现在能根据用户消息和聊天上下文生成个性化回复
- 支持OpenAI兼容的API接口
- 可配置AI模型、提示词和调用参数
- 智能回退机制:AI调用失败时自动使用传统屏蔽模式
- 用友好的AI解释替代冰冷的技术错误信息
V1.0.0
- 特别感谢:此插件改良自 https://github.com/DragonEmpery/astrbot_plugin_error_notice 。
- 感谢DragonEmpery大佬,此插件只是站在巨人的肩膀上前进了一小步。
- 初始版本
- 基础错误拦截和管理员通知功能
作者
Chris - GitHub
许可证
本项目基于开源许可证发布,详见 LICENSE 文件。