不能直接用 WebApp 里的会话 ID 去调 Service API。
Dify 把「WebApp 会话」和「Service API 会话」严格隔离(安全域、用户域、鉴权域都不同),所以拿 WebApp 界面上看到的 conversation_id 去请求 Service API(例如 /v1/messages、/v1/messages/{id}/suggested)会得到 404,这正是你前面遇到的现象。
为什么不行(机制层面):
不同命名空间:WebApp 使用的是 Web 前端渠道的会话存储;Service API 使用的是“开发者自定义 user + App Key”下的新会话空间。两者不互通。
双重约束:就算 ID 形状一样,Service API 还会校验:①是否属于当前 App(API Key);②是否属于当前 user。WebApp 的会话通常不满足这两条,所以被拒绝。
用 WebApp 拿到的 conversation_id 调 Service API → 必定 404。
user 不一致:即便是 Service API 侧创建的会话,换了 user 也会 404。
App/Key/域名 不一致:换了 App 或 BASE_URL,ID 也找不到。
想“预览消息里的文件”:只能预览属于 Service API 侧会话且确实挂接到消息里的文件
mapping(app_id, user, webapp_conversation_id, api_conversation_id, created_at);