已经升级到最新版本的插件了,并且重开一个项目新建一个工作流也是一样的结果。切换成其他模型就没有问题。
从弹框来看,你的上下文,没有选择已有的“变量值”
1)我没有开启上下文功能
2)就算开启了也一样报错
3)这个问题不是上下文的问题,换其他模型就不会报错
@penny 请添加一条用户消息。
你好!@lysonober 指出的解决方案是完全正确的。
这个问题确实与 Gemini 模型的 API 限制有关,这也是为什么你切换到其他模型(如 GPT 系列)可能不会报错的原因。
原因解释
报错信息 ValueError: contents are required 是 Google Gemini API 直接返回的错误。
- Gemini API 的机制:它强制要求请求体中必须包含
contents(即具体的对话消息列表)。 - Dify 的机制:在 Dify 的 LLM 节点中,如果你只配置了 SYSTEM(系统提示词),而没有配置 USER(用户消息),或者 USER 消息的内容为空,Dify 发送给 Gemini 的请求中就会缺少
contents部分。 - 区别:其他模型(如 OpenAI)可能允许仅发送 System Prompt 或对空消息有不同的处理逻辑,但 Gemini 对此要求非常严格,必须至少包含一条非空的用户消息。
解决方法
请按照 @lysonober 截图中的指示操作:
- 在报错的 LLM 节点中,点击底部的 “+ Add Message” (添加消息) 按钮。
- 将消息类型设置为 USER。
- 在内容框中填入变量(例如从“开始”节点传来的
{{input}}变量)。
只要确保发送给 Gemini 的消息中包含 User 部分的内容,这个报错就会消失。
1 个赞
万分感谢!
居然还有 Dify_Forum_Helper,太适合技术型社区了
1 个赞


