N8N中文教程
集成节点/Built in_nodes/Cluster_nodes/Sub nodes/Ollama_Model

Ollama 模型节点常见问题#

以下是使用 Ollama 模型节点 时可能遇到的一些常见错误和问题,以及相应的解决或排查步骤。

处理参数#

Ollama 模型节点是一种 子节点(sub-node)。当使用表达式处理多个项目时,子节点的行为与其他节点不同。

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

而在子节点中,表达式始终解析为第一个项目。例如,同样输入五个名称值,表达式 {{ $json.name }} 始终只会解析为第一个名称。

无法连接到远程 Ollama 实例#

Ollama 模型节点支持 Bearer Token 认证,可用于连接位于认证代理之后的远程 Ollama 实例(例如 Open WebUI)。

对于需要身份验证的远程连接,请在你的 Ollama 凭据中同时配置远程 URL 和 API 密钥。 更多信息请参考 Ollama 凭据说明。

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

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

Ollama 默认监听 localhost(本地回环地址)。但在 Docker 中,默认情况下每个容器都有自己的 localhost,仅限容器内部访问。因此,如果 n8n 或 Ollama 任一服务运行在容器中,则它们无法通过 localhost 相互连接。

解决方案取决于你如何部署这两个组件。

如果只有 Ollama 在 Docker 中运行#

如果仅 Ollama 运行在 Docker 容器中,请将 Ollama 配置为绑定到 0.0.0.0,使其监听所有网络接口(官方镜像默认已如此配置)。

启动容器时,使用 -p 标志 发布端口。Ollama 默认使用 11434 端口,因此你的 Docker 命令应如下所示:

docker run -d -p 11434:11434 --name ollama ollama/ollama

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

如果只有 n8n 在 Docker 中运行#

如果仅 n8n 运行在 Docker 容器中,请在主机上配置 Ollama 绑定到 0.0.0.0,以监听所有接口。

如果你在 Linux 上使用 Docker 运行 n8n,请在启动容器时使用 --add-host 参数将 host.docker.internal 映射到 host-gateway。例如:

docker run -d --add-host=host.docker.internal:host-gateway -p 5678:5678 --name n8n n8nio/n8n

如果你使用的是 Docker Desktop,此配置已自动完成。

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

如果 Ollama 和 n8n 分别运行在不同的 Docker 容器中#

如果 Ollama 和 n8n 分别运行在独立的 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

错误:connect ECONNREFUSED ::1:11434#

此错误通常出现在你的计算机启用了 IPv6,但 Ollama 仅监听 IPv4 地址的情况下。

解决方法是:在 Ollama 凭据 中将基础 URL 修改为使用 IPv4 专用的本地地址 127.0.0.1,而不是可能解析为 IPv6 的 localhost 别名。即使用:http://127.0.0.1:11434

Ollama 与 HTTP/HTTPS 代理#

Ollama 的配置不支持自定义 HTTP agent,这使得在自定义 HTTP/HTTPS 代理后使用 Ollama 变得困难。即使设置了 HTTP_PROXYHTTPS_PROXY 环境变量,也可能无法正常工作,具体取决于代理配置。

更多信息请参考 Ollama 官方 FAQ。