feat(ai): 图片模式接入 file-list 参考素材上传(issue 14)

上游「AI 创意助手」开始节点有 file-list 变量 user_files(最多 5 个,允许
image/video/document/audio),但 web 端图片模式此前完全没有附件入口 —— 发送键左侧
那两个图标按钮没有绑定任何事件,是纯装饰。

- 聊天页图片模式新增「参考素材」区:添加附件(隐藏 input[type=file])、已选列表可
  逐个移除、上限 5 个(对齐上游 max_length),按 MIME/扩展名判定
  image/video/audio/document,发送时组装 file-list 契约
  {transfer_method:"local_file", type, upload_file_id, url:""};上传中禁止发送
- uploadAiFile(file, app?) 支持应用代号;gxmu/creativeAssistant 表单页改传
  creativeAssistant —— 该页用同一个接口上传却不指定应用,附件必然报
  Invalid upload file(既有缺陷,本次一并修掉)
- CreativeAssistantUploadFile.upload_file_id 由 number 改为 string | number:
  它实际是 Dify /files/upload 返回的 uuid 字符串,原声明与实现不符
- formatCreativeResult 清洗 video_message / photo_message:剥离  thinking 思维链、
  丢弃 {"cover_prompt":…,"width":…} 中间产物 JSON,不再把上游 LLM 的原始输出
  当正文展示(截图实测过:气泡里出现整段英文思考过程或裸 JSON)
- 删除发送键左侧两个无事件的装饰性图标按钮(.icon-btn 样式仍被消息操作按钮使用,保留)
This commit is contained in:
2026-10-13 19:57:57 +08:00
parent bc398bb652
commit 8ca7a00afb
4 changed files with 257 additions and 46 deletions
+3 -1
View File
@@ -480,7 +480,9 @@
mask: true
});
try {
const result = await uploadAiFile(rawFile);
// 必须用创意助手自己的应用凭证上传:Dify 的 /files/upload 按应用鉴权,
// 用别的应用的 Key 上传,工作流的 file-list 变量会报 Invalid upload file。
const result = await uploadAiFile(rawFile, 'creativeAssistant');
uploadedFiles.value = [
...uploadedFiles.value,
{