问题描述
SVG 矢量图作为附件加入会话后,被识别为图片并显示缩略图;发送给不支持 SVG 图片输入的模型时,请求以 HTTP 400 / PROVIDER_ERROR 失败。
客户端能够预览 SVG,不代表模型接口能够接收 SVG 作为图片输入。 目前用户需要等到请求失败后才能发现格式不兼容,影响图片问答和基于附件生成 HTML 等任务。
本次已观察到的矢量格式为 SVG,不推断其他矢量格式或所有模型均有相同行为。
复现步骤
以下根据用户提供的两张截图及描述整理,尚未使用原始 SVG 文件独立复现:
- 在 PI-Desktop 中打开可发送图片附件的会话。
- 将 SVG 矢量图作为附件加入输入框(截图中的附件名为
pasted-*)。
- 输入“这个图片里有什么?”或“帮我生成一份 HTML”,然后发送。
- 观察到附件按图片展示,但模型请求返回图片格式无效的 400 错误。
截图中分别使用 gpt-6-sol 和 grok-4.7,均出现该问题。具体粘贴来源、原始文件内容及尺寸尚未提供。
预期行为
- 区分“可以预览的图片格式”和“当前模型接口支持的图片输入格式”,不能仅因 SVG 的 MIME 为
image/svg+xml 就直接发送为模型图片内容。
- 对不支持 SVG 的接口,不发送原始 SVG 图片载荷;可以按普通文件/文本附件处理,或在需要视觉输入时安全转换为受支持的位图格式。
- 如无法处理,应在发送前明确提示格式限制,保留附件和用户输入,而不是让请求以泛化的服务商错误失败。
- 现有受支持位图的预览及发送行为不应受影响。
实际行为与错误信息
附件已被当作图片展示并发起请求,随后出现“AI 服务返回了错误”及 PROVIDER_ERROR。
gpt-6-sol
截图中的 API 错误为 HTTP 400,code: invalid_value、param: input、type: invalid_request_error:
The image you provided does not represent a valid image. Please check your input and try again with one of the supported image formats: ['image/jpeg', 'image/png', 'image/gif', 'image/webp'].
grok-4.7
截图中的 API 错误为 HTTP 400 / Client specified an invalid argument:
Downloaded response does not contain a valid JPG, PNG, WebP, or ICO image.
以上为用户截图中的报错摘录,不代表所有模型或接口具有相同格式支持范围。
环境信息
- 操作系统:Windows(依据截图中的文件路径判断)。
- 应用版本:未提供,截图中未显示。
- 模型:
gpt-6-sol、grok-4.7。
- 安装方式、具体服务商及接口配置:未提供。
- 证据来源:用户提供的两张会话截图;本报告摘录了关键现象和报错,未上传原始截图。
建议验收与回归覆盖
修复范围聚焦于附件格式与模型输入兼容性,不要求所有模型新增 SVG 支持。
静态代码线索
核对基线:faf91368b9b8afb03cbef5950d668745795f9b6f(本地检出的源码版本,不代表截图中的应用版本,也不声称已验证最新上游或完成端到端复现)。
- 粘贴附件分类 使用
mimeType.startsWith("image/")。因此,当剪贴板文件携带 image/svg+xml 时,它会被判为图片。
- 发送前附件准备 同样接受
image/*;内联条件主要检查模型是否支持视觉输入及附件大小,不能据此保证模型支持 SVG。
- 运行时构造图片内容块 沿用附件 MIME,没有在该处拒绝 SVG 或将其转换成位图。
入口差异: 该基线的普通文件选择/路径导入依赖扩展名映射,.svg 不在其图片扩展名表中,可能作为普通文件处理;不要将“所有 SVG 导入方式均会失败”作为已确认事实。SVG 源码作为纯文本粘贴也属于不同路径。上述线索仅确认给定 image/svg+xml 时的代码行为,具体剪贴板 MIME 仍需结合原始文件验证。
现有 composer-paste-files.test.mjs 和 composer-clipboard.test.mjs 可作为附件分类与粘贴入口的回归测试基础,再覆盖附件准备到模型请求边界的完整路径。
问题描述
SVG 矢量图作为附件加入会话后,被识别为图片并显示缩略图;发送给不支持 SVG 图片输入的模型时,请求以 HTTP 400 /
PROVIDER_ERROR失败。客户端能够预览 SVG,不代表模型接口能够接收 SVG 作为图片输入。 目前用户需要等到请求失败后才能发现格式不兼容,影响图片问答和基于附件生成 HTML 等任务。
本次已观察到的矢量格式为 SVG,不推断其他矢量格式或所有模型均有相同行为。
复现步骤
以下根据用户提供的两张截图及描述整理,尚未使用原始 SVG 文件独立复现:
pasted-*)。截图中分别使用
gpt-6-sol和grok-4.7,均出现该问题。具体粘贴来源、原始文件内容及尺寸尚未提供。预期行为
image/svg+xml就直接发送为模型图片内容。实际行为与错误信息
附件已被当作图片展示并发起请求,随后出现“AI 服务返回了错误”及
PROVIDER_ERROR。gpt-6-sol截图中的 API 错误为 HTTP 400,
code: invalid_value、param: input、type: invalid_request_error:grok-4.7截图中的 API 错误为 HTTP 400 /
Client specified an invalid argument:以上为用户截图中的报错摘录,不代表所有模型或接口具有相同格式支持范围。
环境信息
gpt-6-sol、grok-4.7。建议验收与回归覆盖
修复范围聚焦于附件格式与模型输入兼容性,不要求所有模型新增 SVG 支持。
静态代码线索
核对基线:
faf91368b9b8afb03cbef5950d668745795f9b6f(本地检出的源码版本,不代表截图中的应用版本,也不声称已验证最新上游或完成端到端复现)。mimeType.startsWith("image/")。因此,当剪贴板文件携带image/svg+xml时,它会被判为图片。image/*;内联条件主要检查模型是否支持视觉输入及附件大小,不能据此保证模型支持 SVG。入口差异: 该基线的普通文件选择/路径导入依赖扩展名映射,
.svg不在其图片扩展名表中,可能作为普通文件处理;不要将“所有 SVG 导入方式均会失败”作为已确认事实。SVG 源码作为纯文本粘贴也属于不同路径。上述线索仅确认给定image/svg+xml时的代码行为,具体剪贴板 MIME 仍需结合原始文件验证。现有
composer-paste-files.test.mjs和composer-clipboard.test.mjs可作为附件分类与粘贴入口的回归测试基础,再覆盖附件准备到模型请求边界的完整路径。