基于 Mirai Console 的 QQ 群图片关键词识别与存取插件。通过 AI 视觉模型自动识别图片内容并生成关键词,支持按关键词检索和管理图片。
开源功能 AI 图片识别 — 调用 OpenAI 兼容 API,自动分析图片内容生成关键词 关键词存取 — 按关键词模糊检索图片,支持批量存储 图片合并预览 — 查图时将结果合并为带序号的缩略图发送 自动识别 — 可配置指定群自动识别所有图片 全局图库 — 图片跨群共享,任意群存的图在任意群可查 环境要求 JDK 11+ Mirai Console 2.16.0 Overflow(可选,用于对接 OneBot 协议) 构建 ./gradlew buildPluginMIT 开源协议
仓库连接: https://github.com/YsGqHY/PicTranslator
问题反馈请到 Issues: https://github.com/YsGqHY/PicTranslator/issues
生成的插件 jar 位于 build/mirai/ 目录。
配置首次启动后会在 data/kim.hhhhhy.pic.translator/config.yml 生成默认配置:
apiUrl: https://api.openai.com/v1 apiKey: sk-xxx model: gpt-4o-mini prompt: "请分析这张图片,返回3-5个中文关键词用于检索。只返回JSON数组格式,例如:[\"关键词1\",\"关键词2\"]" enabledGroups: [] autoRecognize: false mergeColumns: 3 thumbnailWidth: 200 配置项 说明 默认值 apiUrl AI API 地址(自动补全 /chat/completions) OpenAI 官方地址 apiKey API Key - model 模型名称(需支持图片输入) gpt-4o-mini prompt 图片识别提示词 返回3-5个中文关键词 enabledGroups 启用自动识别的群号列表,空为全部 [] autoRecognize 是否开启自动图片识别 false mergeColumns 查图合并每行图片数 3 thumbnailWidth 查图缩略图宽度(像素) 200 群聊命令所有命令以 # 开头:
命令 说明 #存图 回复图片或附带图片,AI 识别后存储(支持批量) #取图 <关键词> [序号] 获取关键词对应的图片,不指定序号则随机 #查图 <关键词> 查询所有匹配图片,合并为一张缩略图发送 #关键词 查看所有已存储的关键词 #帮助 显示帮助信息 存图用法 # 回复一张图片 [回复消息] #存图 # 直接附带图片 #存图 [图片][图片]... # 回复 + 附带混合 [回复消息] #存图 [图片] 关键词匹配取图和查图均使用模糊匹配,搜索"猫"可匹配到"猫咪"、"黑猫"、"猫娘"等关键词。
控制台命令 命令 说明 /pt help 显示管理命令帮助 /pt reload 重载配置文件 /pt clearcache 清除本地图片缓存 /pt status 查看插件运行状态 项目结构 src/main/kotlin/kim/hhhhhy/pic/translator/ ├── PicTranslator.kt # 插件主类 ├── command/ │ └── AdminCommand.kt # 控制台管理命令 ├── config/ │ ├── PluginConfig.kt # 配置数据类 │ └── YamlConfigManager.kt # YAML 配置读写 ├── listener/ │ ├── CommandListener.kt # 群聊命令处理 │ ├── CommandRegister.kt # 命令定义 │ └── ImageListener.kt # 自动图片识别监听 ├── service/ │ ├── AiService.kt # AI API 调用 │ └── ImageService.kt # 图片下载/存储/合并 ├── storage/ │ └── DatabaseManager.kt # SQLite 数据库(Exposed ORM) └── util/ └── ImageUtil.kt # 图片缩放与拼接工具 数据存储 图片文件保存在 data/kim.hhhhhy.pic.translator/images/ SQLite 数据库 pic_translator.db 包含 images 和 keywords 两张表 LicenseMIT