Skip to content

Ollama Chat Model 节点常见问题#

以下是 Ollama Chat Model 节点 的一些常见错误和问题以及解决或故障排除的步骤。

处理参数#

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

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

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

无法连接到远程 Ollama 实例#

Ollama Chat Model 节点仅设计为连接到本地托管的 Ollama 实例。它不包含连接到远程托管的 Ollama 实例所需的身份验证功能。

要使用 Ollama Chat Model,请按照 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 中运行,请通过在容器内绑定到 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 地址应该可以正常工作(将 base 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 网络连接它们。

通过在容器内绑定到 0.0.0.0 来配置 Ollama 监听所有接口(官方镜像已经以这种方式配置)。

配置 Ollama 凭据 时,使用 Ollama 容器的名称作为主机地址而不是 localhost。例如,如果您将 Ollama 容器称为 my-ollama 并且它在默认端口 11434 上监听,您将基础 URL 设置为 http://my-ollama:11434

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

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

错误:connect ECONNREFUSED ::1:11434#

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

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

Ollama 和 HTTP/HTTPS 代理#

Ollama 在其配置中不支持自定义 HTTP 代理。这使得在自定义 HTTP/HTTPS 代理后面使用 Ollama 变得困难。根据您的代理配置,尽管设置了 HTTP_PROXYHTTPS_PROXY 环境变量,它可能根本无法工作。

请参考 Ollama 的 FAQ 获取更多信息。