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 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 n8nio/n8n如果你使用的是 Docker Desktop,则此配置已自动完成。
配置 Ollama 凭据 时,请使用 host.docker.internal 代替 localhost 作为主机地址。例如,若 Ollama 使用默认端口 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 容器中,则无需特殊网络配置。你可以让 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:11434Ollama 与 HTTP/HTTPS 代理#
Ollama 的配置不支持自定义 HTTP agent,这使得在自定义 HTTP/HTTPS 代理后使用 Ollama 变得困难。即使设置了 HTTP_PROXY 或 HTTPS_PROXY 环境变量,也可能无法正常工作,具体取决于代理配置。
更多详情请参阅 Ollama 官方 FAQ。