上周帮一个做在线教育的朋友排查问题,他在 Dify 里接了 DeepSeek,结果对话一长就疯狂报错。折腾了两天,最后发现是个特别容易被忽略的配置问题。

今天把这个坑分享出来,省得大家踩。

问题现象

DeepSeek 接入 Dify 后,短对话正常,但对话轮数一多(大概 10 轮以上),就开始频繁出现超时或者返回不完整。

看日志,要么是 timeout,要么是 stream interrupted

真正的原因

DeepSeek 的 API 默认有个 max_tokens 限制,如果你在 Dify 里没显式设置,它会用一个比较保守的默认值。

问题在于:Dify 的模型配置界面上,这个参数藏得比较深,而且默认不会提醒你去改。

当上下文越滚越长,加上你期望的输出长度,很容易就撞到这个天花板。一撞就断。

解决方法

在 Dify 的模型配置里,找到「模型参数」,把 max_tokens 调大。DeepSeek 支持到 8192 甚至更高(看你用哪个版本),别用默认的 2048 或 4096。

同时检查一下 context_length 的设置是否匹配。

顺便说个部署的事

如果你是在自己服务器上跑 Dify,数据库连接池、Redis 配置这些也可能导致类似的假性超时。

我后来帮那朋友把 Dify 迁到了 Sealos 上,用的一键部署模板,这类底层配置都是预调好的,省了不少排查时间。Sealos 模板市场里 Dify 的默认参数还算合理,至少数据库和缓存的配置不会成为瓶颈。


这个坑说大不大,但确实官方文档里没特别强调。遇到长对话异常,先查 max_tokens 和上下文长度的配置,十有八九能解决。

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐