Skip to content

feat: improve image refs and add QQ avatar tool - #834

Open
syfantasy wants to merge 5 commits into
ikechan8370:v3from
syfantasy:v3
Open

feat: improve image refs and add QQ avatar tool#834
syfantasy wants to merge 5 commits into
ikechan8370:v3from
syfantasy:v3

Conversation

@syfantasy

Copy link
Copy Markdown
Contributor

变更内容

  • 新增统一的 utils/image_context.js 图片上下文解析层
  • 增强 ask_about_image,支持当前消息、回复消息、历史图片和 ref
  • 增强 resolve_image_ref,支持 URL、data URL、base64 和 ref
  • 新增内置 GetQQAvatar 工具
  • 支持按需读取机器人头像、当前消息被 @ 用户头像和指定 QQ 头像
  • 支持将头像 ref 继续传递给图片处理工具
  • 支持 send: true 直接发送头像
  • 将临时工具图片的生命周期管理统一到 visionService
  • 自动清理过期工具图片缓存

兼容性

  • 不修改 node-chaite
  • 不修改 README
  • 不依赖 SendImage
  • 视觉模型仍直接使用图片上下文
  • 非视觉模型仍通过图片 ref 和 ask_about_image 工作

Copy link
Copy Markdown
Owner

这里有一个图片内容校验问题:目前 utils/image_context.js 对本地路径会直接 readFile(),而 sniffMime() 无法识别内容时会回退到默认的 image/jpeg;URL 返回的内容也没有在读取后确认实际字节确实是图片。这样 JS、JSON、HTML 等非图片内容也可能被包装成 data:image/jpeg;base64,...,并通过 include_data 返回。

这里不需要限制文件路径或 URL,建议保留“任意来源图片”的能力,但在读取/下载完成后根据文件魔数确认内容确实属于支持的图片格式,例如 JPEG、PNG、GIF、WebP;识别失败时直接返回“不是受支持的图片”,不要继续保存或生成 data URL。仅检查 URL 或响应的 Content-Type 不够可靠,最好以实际字节为准。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants