跳至内容

Ollama模型节点常见问题#

以下是Ollama Model节点常见错误和问题及其解决方法或排查步骤。

处理参数#

Ollama模型节点是一个子节点。在使用表达式处理多个项目时,子节点的行为与其他节点不同。

大多数节点,包括根节点,可以接收任意数量的项目作为输入,处理这些项目并输出结果。您可以使用表达式来引用输入项,节点会依次为每个项目解析该表达式。例如,给定五个名称值作为输入,表达式{{ $json.name }}会依次解析为每个名称。

在子节点中,表达式始终解析为第一项。例如,给定五个名称值的输入,表达式 {{ $json.name }} 始终解析为第一个名称。

无法连接到远程Ollama实例#

Ollama模型节点仅设计用于连接本地托管的Ollama实例。它不包含连接远程托管Ollama实例所需的身份验证功能。

要使用Ollama模型,请按照Ollama凭证说明在本地设置Ollama,并在n8n中配置实例URL。

使用Docker时无法连接到本地Ollama实例#

Ollama模型节点通过Ollama凭证中定义的基础URL连接到本地托管的Ollama实例。当您在Docker中运行n8n或Ollama时,需要配置网络以确保n8n能够连接到Ollama。

Ollama通常监听localhost(本地网络地址)上的连接。在Docker中,默认情况下每个容器都有自己的localhost,只能从容器内部访问。如果n8n或Ollama运行在容器中,它们将无法通过localhost建立连接。

解决方案取决于您如何托管这两个组件。

如果只有Ollama在Docker中#

如果Ollama仅在Docker中运行,请通过绑定容器内的0.0.0.0来配置Ollama监听所有接口(官方镜像已采用此配置方式)。

运行容器时,使用-p标志发布端口。默认情况下,Ollama运行在11434端口上,因此您的Docker命令应如下所示:

1
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

配置Ollama凭据时,localhost地址应该可以正常工作(将基础URL设置为http://localhost:11434)。

如果只有n8n在Docker中#

如果只有n8n在Docker中运行,请通过绑定主机上的0.0.0.0来配置Ollama监听所有接口。

如果您在Linux系统的Docker中运行n8n,启动容器时请使用--add-host标志将host.docker.internal映射到host-gateway。例如:

1
docker run -it --rm --add-host host.docker.internal:host-gateway --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n

如果您使用的是Docker Desktop,这将自动为您配置。

配置Ollama凭据时,请使用host.docker.internal作为主机地址而非localhost。例如,要绑定到默认端口11434,您可以将基础URL设置为http://host.docker.internal:11434

如果Ollama和n8n运行在独立的Docker容器中#

如果n8n和Ollama分别在独立的Docker容器中运行,您可以使用Docker网络将它们连接起来。

配置Ollama通过绑定容器内的0.0.0.0来监听所有接口(官方镜像已默认采用此配置)。

配置Ollama凭据时,请使用Ollama容器的名称作为主机地址,而非localhost。例如,若您将Ollama容器命名为my-ollama且其监听默认端口11434,则应将基础URL设置为http://my-ollama:11434

如果Ollama和n8n运行在同一个Docker容器中#

如果Ollama和n8n运行在同一个Docker容器中,localhost地址不需要任何特殊配置。您可以将Ollama配置为监听localhost,并在n8n中的Ollama凭据中配置基础URL为:http://localhost:11434

错误:连接被拒绝 ECONNREFUSED ::1:11434#

当您的计算机启用了IPv6,但Ollama正在监听IPv4地址时,会出现此错误。

要解决此问题,请将您的Ollama凭据中的基础URL更改为连接到127.0.0.1(特定于IPv4的本地地址),而不是可能解析为IPv4或IPv6的localhost别名:http://127.0.0.1:11434

优云智算