本插件是为 AstrBot 机器人框架开发的综合功能包。它通过集成 UApiPro 提供的开放接口,为机器人提供精美的图文交互体验。在将来也会适配更多接口,尽请期待。 欢迎提issue或pr增加功能。
- 双模式显示:默认渲染为 HTML 图片卡片;可在设置中切换为文本模式,适配低流量环境。
- LLM 工具调用:17 项查询指令同时注册为 function calling 工具,LLM 可根据对话内容自动调用。
- 安全防护:注入阻断:所有输入经转义与长度限制,防止 XSS 与命令注入。
- 磁盘零堆积:临时文件在图片发送后立即删除,不占用服务器磁盘空间。
插件采用转接器模式设计,实现了逻辑与展示的解耦:
astrbot_plugin_uapipro_toolbox/
├── main.py # 核心调度:负责指令分发、安全守卫与文件清理
├── llm_tools.py # LLM function calling 工具注册
├── _conf_schema.json # 配置
├── card_renderer.py # 渲染
├── metadata.yaml # 插件元数据
├── apis/ # API 矩阵
│ ├── weather.py # 天气查询模块
│ ├── ipquery.py # IP 归属地查询模块
│ ├── mcquery.py # Minecraft 服务器状态查询
│ ├── hitokoto.py # 一言/语录获取
│ ├── news.py # 每日新闻摘要获取
│ ├── ocr.py # 图片文字识别
│ ├── random_img.py # 随机图片库获取
│ └── ... # 其他 API 模块
├── hotboard/ # 全网热榜聚合模块
│ ├── __init__.py # 统一入口
│ ├── fetcher.py # 请求调度与错误处理
│ ├── renderer.py # 热榜专属 HTML 渲染引擎
│ ├── bilibili.py # 哔哩哔哩解析器
│ ├── acfun.py # A站解析器
│ ├── hellogithub.py # HelloGitHub 解析器
│ ├── netease_music.py# 网易云音乐解析器
│ ├── qq_music.py # QQ音乐解析器
│ ├── weread.py # 微信读书解析器
│ └── icons/ # 各平台图标
└── README.md # 项目说明文档
| 类别 | 指令格式 | 功能说明 | 亮点/限制 |
|---|---|---|---|
| 社交 | |||
/u bili <UID> |
获取 UP 主详细档案及最新投稿作品 | 注意:每次触发时会同时请求两个接口 | |
/u github <仓库/链接> |
查询 Star/Fork/语言分布/最新 Release | 自动识别 GitHub 链接 | |
/u gh <用户名/链接> |
查询开发者画像、年度贡献统计及仓库列表 | 支持主页链接、含贡献数据 | |
/u steam <ID/链接> |
展示玩家昵称、在线状态、勋章及头像 | 状态语义化转换 | |
| 游戏 | |||
/u epic |
追踪当前 Epic 商店正在免费的游戏大作 | 封面预览、截止时间 | |
/u mc玩家 <正版ID> |
查询正版皮肤预览图及全量更名历史 | 注意:每次触发时会同时请求两个接口 | |
/u mc <服务器地址> |
实时 Ping 服务器状态、版本及在线玩家 | ||
| 网络 | |||
/u whois <域名> |
解析域名注册商、到期日期及 DNS 信息 | ||
/u icp <域名> |
查询备案主体、性质及备案号 | ||
/u ip <IP/域名> |
地理位置、运营商及网络 ASN 编号 | ||
| 实用 | |||
/u 快递 <单号> |
实时追踪轨迹,自动加粗最新物流动态 | 自动识别快递公司, |
|
/u 万年历 [日期] |
查询农历、干支、法定节假日及调休 | ||
/u 二维码 <内容> [尺寸] |
将链接或文本转换为高清二维码图片 | 限制 500 字符内 | |
/u ocr |
发图或引用图片识别其中文字 | 支持返回 Markdown,可配置 | |
/u 天气 <城市> |
实时天气、空气质量及详细生活建议 | ||
| 趣味 | |||
/u 必应 [日期] |
获取 4K 必应每日壁纸及其背后的科普故事 | 原图直出 | |
/u 答案之书 <问题> |
针对你的提问给出一个神秘答案 | ||
/u 随机 [长度] [类型] |
生成数字、十六进制等类型的随机密码 | 支持中文类型指令 | |
/u 一言 |
精选诗词、动漫台词或名言语录 | 极简微卡片展示;开启「高级一言」后支持模式/场景/来源/分类/标签筛选 | |
/u 新闻 |
获取今日全网热点新闻总结图 | 响应约 10-15s | |
/u 随机图片 |
随机发送指定分类的精美壁纸 | 根据面板勾选范围 | |
| 热榜 | |||
/u 热榜 bili |
哔哩哔哩热榜 Top 5,含封面与播放量 | B站封面实时加载 | |
/u 热榜 a站 |
A站热榜 Top 10 | ||
/u 热榜 github |
HelloGitHub 热榜 Top 10,含语言标签与项目简介 | ||
/u 热榜 网易云 |
网易云音乐热歌榜 Top 10,含封面与歌手 | ||
/u 热榜 qq音乐 |
QQ音乐热歌榜 Top 10,含封面与歌手 | ||
/u 热榜 微信读书 |
微信读书热榜 Top 10,含封面与在读人数 | ||
| 其他 | |||
/u 帮助 |
查看所有可用指令列表 |
您可以在 AstrBot Web 面板的插件配置中进行全中文可视化设置:
- 接口密钥 (Token): 填入您在 UApiPro 后台获取的专属 Token(可留空)。
- 随机图片库范围: 多选下拉框。支持勾选
ACG、风景等分类。机器人会仅从您勾选的范围中随机挑选。 - 指令冷却时间: 自定义触发间隔(默认 5.0 秒),防止并发刷屏。
- GitHub 用户查询设置:
- 获取贡献活动数据: 是否返回近一年贡献统计(默认开启)。
- 贡献活动范围:
all(全部贡献,默认)或organization(仅统计指定组织)。 - 组织登录名: 填写组织名后自动按该组织统计贡献,例如
linux-foundation。 - 附带 Pinned 仓库 / 最近活跃仓库: 是否返回对应仓库列表(默认开启)。
- 仓库列表数量: 最近活跃仓库返回上限(1-100,默认 5)。
- 定时早报配置:
- 推送开关: 开启后每天自动执行推送任务。
- 具体时间: 格式为
HH:MM。 - 推送名单: 支持多行输入群号或 QQ 号(直接填纯数字即可)。
- OCR 识图设置:
- 返回 Markdown 格式: 开启后额外整理出 Markdown 文本,适合票据、表格类图片,默认关闭。
- 启用方向校正: 自动校正手机拍摄导致的旋转或倾斜,可提升识别准确率,默认开启。
- 高级一言设置:
- 启用高级一言: 默认关闭。关闭时
/u 一言与 LLM 工具均为基础随机模式;开启后可按下方条件筛选语录。 - 运行模式:
随机模式(默认)/每日一言模式/场景推荐模式/此刻一言模式,四选一。 - 推荐场景: 仅当运行模式为「场景推荐模式」时生效,可选清晨、上午、夜晚、工作、放松等 13 种场景。
- 语料来源 / 分类 / 标签过滤: 均为多选下拉框,不选则不限制;标签支持手动输入面板未列出的值。
- 开启高级一言后,LLM function calling 工具会自动切换为可由 LLM 自主选择模式/场景/分类等参数的版本,便于其根据对话语境获取更贴切的语录。
⚠️ 重要说明:以上高级一言配置对 LLM 工具调用是「默认值」而非「硬性限制」。/u 一言指令始终严格按面板配置执行;但 LLM 调用uapi_hitokoto工具时,只有在不指定某项参数时才会使用面板默认值——LLM 完全可以根据对话语境自行传入模式/场景/分类等参数,覆盖面板设置(例如即使面板「分类过滤」只勾选了"诗词",LLM 判断用户想听游戏梗时仍可能返回"游戏"分类的语录)。若需要严格限制 LLM 的取值范围,目前暂不支持,请关闭「允许 LLM 自动调用工具」,仅通过/u 一言指令固定使用面板配置。
- 启用高级一言: 默认关闭。关闭时
本插件对接 UApiPro
- 零门槛使用:无需登入即可获得1500访客积分,方便即装即用。由于基础查询消耗较低,因此配额完全足以支撑个人机器人或活跃群聊的日常使用。
⚠️ 快递查询消耗较高:/u 快递单次调用消耗 40 积分,远高于其他指令,频繁使用会较快消耗访客额度,请留意。
文档最后更新: 2026年6月27日 本插件仅供技术交流使用,请合理使用 API 接口并遵守相关法律法规。
- 图像渲染策略参考自 群日常分析总结插件