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
| 配置项 | 说明 | 默认值 |
|---|---|---|
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两张表
License
MIT