PicTranslator —— QQ群图片关键词识别与存取
-
PicTranslator
基于 Mirai Console 的 QQ 群图片关键词识别与存取插件。通过 AI 视觉模型自动识别图片内容并生成关键词,支持按关键词检索和管理图片。
开源
MIT 开源协议
仓库连接: https://github.com/YsGqHY/PicTranslator
问题反馈请到 Issues: https://github.com/YsGqHY/PicTranslator/issues功能
- AI 图片识别 — 调用 OpenAI 兼容 API,自动分析图片内容生成关键词
- 关键词存取 — 按关键词模糊检索图片,支持批量存储
- 图片合并预览 — 查图时将结果合并为带序号的缩略图发送
- 自动识别 — 可配置指定群自动识别所有图片
- 全局图库 — 图片跨群共享,任意群存的图在任意群可查
环境要求
- JDK 11+
- Mirai Console 2.16.0
- Overflow(可选,用于对接 OneBot 协议)
构建
./gradlew buildPlugin生成的插件 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配置项 说明 默认值 apiUrlAI API 地址(自动补全 /chat/completions)OpenAI 官方地址 apiKeyAPI Key - model模型名称(需支持图片输入) gpt-4o-miniprompt图片识别提示词 返回3-5个中文关键词 enabledGroups启用自动识别的群号列表,空为全部 []autoRecognize是否开启自动图片识别 falsemergeColumns查图合并每行图片数 3thumbnailWidth查图缩略图宽度(像素) 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两张表
License
MIT