Skip to content

Repository files navigation

📦 UApiPro-Toolbox 工具箱插件

本插件是为 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 快递 <单号> 实时追踪轨迹,自动加粗最新物流动态 自动识别快递公司,⚠️单次 40 积分,消耗较高
/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 一言 指令固定使用面板配置。

关于 API 额度

本插件对接 UApiPro

  • 零门槛使用:无需登入即可获得1500访客积分,方便即装即用。由于基础查询消耗较低,因此配额完全足以支撑个人机器人或活跃群聊的日常使用。
  • ⚠️ 快递查询消耗较高/u 快递 单次调用消耗 40 积分,远高于其他指令,频繁使用会较快消耗访客额度,请留意。

文档最后更新: 2026年6月27日 本插件仅供技术交流使用,请合理使用 API 接口并遵守相关法律法规。

致谢


Moe Counter

About

集成 UApiPro 提供的开放接口,为bot提供可使用的工具。

Resources

Stars

11 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages