Ollama 聊天模型节点常见问题#
以下是使用 Ollama 聊天模型节点时可能遇到的常见错误和问题,以及解决方法或排查步骤。
参数处理问题#
Ollama 聊天模型节点是一个子节点。在使用表达式处理多个输入项时,子节点的行为与其他节点不同。
包括根节点在内的大多数节点可以接受任意数量的输入项,处理这些项并输出结果。您可以使用表达式引用输入项,节点会依次为每个项解析表达式。例如,给定五个名称值作为输入,表达式 {{ $json.name }}
会依次解析为每个名称。
而在子节点中,表达式总是解析为第一个输入项。例如,给定五个名称值作为输入,表达式 {{ $json.name }}
总是解析为第一个名称。
无法连接到远程 Ollama 实例#
Ollama 聊天模型节点仅设计用于连接本地托管的 Ollama 实例。它不包含连接远程托管 Ollama 实例所需的认证功能。
要使用 Ollama 聊天模型,请按照 Ollama 凭据说明在本地设置 Ollama,并在 n8n 中配置实例 URL。
在 Docker 环境下无法连接本地 Ollama 实例#
Ollama Chat Model 节点通过 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 命令应如下所示:
1 |
|
配置 Ollama 凭证时,localhost
地址应该可以正常工作(将基础 URL 设置为 http://localhost:11434
)。
仅 n8n 运行在 Docker 中的情况#
如果只有 n8n 运行在 Docker 中,需要配置 Ollama 监听所有接口,绑定到主机的 0.0.0.0
。
如果在 Linux 上运行 n8n Docker 容器,启动容器时使用 --add-host
标志将 host.docker.internal
映射到 host-gateway
。例如:
1 |
|
如果使用 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
。
错误:connect ECONNREFUSED ::1:11434#
当您的计算机启用了 IPv6,但 Ollama 正在监听 IPv4 地址时,会出现此错误。
要解决此问题,请修改 Ollama 凭据 中的基础 URL,连接到 IPv4 专用本地地址 127.0.0.1
,而不是可能解析为 IPv4 或 IPv6 的 localhost
别名:http://127.0.0.1:11434
。
Ollama 与 HTTP/HTTPS 代理#
Ollama 在其配置中不支持自定义 HTTP 代理。这使得在自定义 HTTP/HTTPS 代理后使用 Ollama 变得困难。根据您的代理配置,即使设置了 HTTP_PROXY
或 HTTPS_PROXY
环境变量,也可能完全无法工作。
更多信息请参考 Ollama 常见问题。