自检
- 仅用于报告错误,如果您想提问,请访问 Discussions 。
- 我已在现有问题中搜索 search for existing issues (包括已关闭的问题)。
- 我确认我使用英文提交此报告(我已阅读并同意 Language Policy )。
- 请务必使用英文提交问题,否则会被关闭。谢谢!:)
- 请不要修改此模板 :) 并填写所有必需的字段。
Dify版本
0.6.14
云或自托管
自托管(Docker)
重现步骤
(ollama v0.2.7 在4090的第二个插槽上运行qwen2-7b,有时它只是卡住并完全占用,就像这样,几个小时)
我的工作流程是处理长上下文(超过20K)和数十个LLM节点迭代。LLM节点都在Ollama linux服务器上运行,最近更新了Ollama和Dify的几个版本,但问题仍然存在。该过程并不总是卡住,它以每两三个回合的机会发生,其中一个LLM节点会卡住。当这种情况发生时,它将永远不会响应,因此工作流程将等待超时(已经设置为3600秒),或者直到我注意到并删除Ollama pod。
也怀疑问题可能是由Ollama引起的,但我在两个仓库中搜索问题,没有真正相同的主题。
✔️ 预期行为
如果有解决方案,或者有人遇到与我相同的问题
❌ 实际行为
我手动删除了ollama pod并等待重启,然后祈祷下一次运行能够正常工作。提供服务器。
5条答案
按热度按时间gzszwxb41#
你好!我在这里协助你解决任何bug、问题或贡献。让我们一起解决这个问题。
已知Dify中的Ollama集成存在可能导致LLM节点在长时间运行过程中挂起或失败的问题。具体来说,在使用Docker部署Dify和Ollama时,可能会遇到由于Docker容器无法访问绑定到
localhost
的Ollama服务而导致的连接错误。要解决这个问题,你需要将Ollama服务暴露给网络。你可以将
OLLAMA_HOST
环境变量设置为0.0.0.0
,以便将服务绑定到所有网络接口。此外,你可以使用host.docker.internal
而不是localhost
从Docker容器内访问该服务:对于不同操作系统上设置环境变量的详细说明,请参考Ollama文档。以下是针对不同操作系统的具体步骤:
在Mac上设置环境变量
如果Ollama作为macOS应用程序运行,应使用
launchctl
设置环境变量:launchctl setenv
。问题在于Docker本身,要访问Docker主机,你应该连接到
host.docker.internal
。因此,将服务中的localhost
替换为host.docker.internal
将使其有效工作。在Linux上设置环境变量
如果Ollama作为systemd服务运行,应使用
systemctl
设置环境变量:systemctl edit ollama.service
编辑systemd服务。这将打开一个编辑器。[Service]
部分下添加一行Environment
:systemd
并重启Ollama:在Windows上设置环境变量
在Windows上,Ollama继承了你的用户和系统环境变量。
OLLAMA_HOST
、OLLAMA_MODELS
等。ollama
。按照这些步骤,你可以确保Docker化的Dify环境能够成功与Ollama服务通信,从而可能解决挂起问题(如有)。要继续与我交谈,请提及@dosu。
arknldoa2#
我相信这并不是因为Dify和Ollama容器之间的连接,它们都位于k8s的同一个命名空间中,彼此之间没有任何阻力。顺便说一下,我统计了这种事情发生的机会,每次循环包括5次13次调用LLM,而每3次循环中的1次失败导致大约0.5%的这种失败可能性。所以这似乎是一个稳定性问题,对吗?
7vhp5slm3#
为了解决在您的Dify设置中长时间运行过程中LLM节点挂起的稳定性问题,请考虑以下步骤:
以下是您可能需要构建的工作流结构示例,以提高稳定性:
通过以这种方式构建工作流,您可以确保每个步骤都能高效处理,从而降低长时间运行过程中节点挂起的可能性。
omjgkv6w4#
请在问题发生时提供Dify的运行时日志。如果工作流中出现未捕获的错误,日志中应该记录一些错误信息。
kfgdxczn5#
我正在遭受这个问题,猜想这就是你想要的。如你所见,它已经处于空闲状态(GPU利用率显示为311W,风扇以100%的速度运转,并非完全空闲),并且没有记录任何日志。我该如何跳出?我不得不强制删除ollama pod,所以无论如何都没有记录。