MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接

    PicTranslator —— QQ群图片关键词识别与存取

    插件发布
    1
    1
    11
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • Y
      YsGqHY 最后由 YsGqHY 编辑

      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

      1 条回复 最后回复 回复 引用 0
      • 1 / 1
      • First post
        Last post
      Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact