关于部分翻译软件无法连接 Mac 本地Ollama服务的问题记录

解决Mac Ollama 因 `OLLAMA_ORIGINS` 限制导致403错误。

在使用本地部署的 Ollama 作为 OpenAI API 兼容服务时,如果遇到插件调用被拒绝的问题,通常表现为收到 403 Forbidden 错误。

以下是该问题的成因分析及完整的解决方案:

问题现象与原因分析

当通过浏览器扩展(Chrome Plugin)发起请求时,如果返回如下内容:

HTTP/1.1 403 Forbidden
Content-Length: 0

这通常意味着服务器拒绝了跨域访问。请留意请求头中的 Origin 信息:

Origin: chrome-extension://pjniaipnjcdiiglednmhgmjmpmllelke
Host: 127.0.0.1:11434

这表明请求并非来自普通的网页或命令行,而是源自浏览器插件。

此时检查 Ollama 的启动参数,会发现关键的环境变量 OLLAMA_ORIGINS 限制了允许的访问来源。如果该值未设置为允许所有地址(如 "*"),或者被预设为仅允许本地特定端口/源,浏览器插件的请求就会被拦截。简单理解:Ollama 默认为了安全不会无条件信任所有来自扩展程序的请求,必须手动放行。

解决方案步骤

要彻底解决此问题并让插件能正常调用 API,请按以下顺序操作:

1. 停止 Ollama 服务

首先需要在菜单栏中选择退出客户端(Ollama → Quit Ollama),或者通过终端强制终止进程,以确保新的环境变量配置能立即生效。

killall Ollama

2. 设置允许所有来源的环境变量

在 macOS 系统中,我们需要将 OLLAMA_ORIGINS 设置为通配符 "*",从而开放全部权限给任何发起请求的来源(包括浏览器插件)。

launchctl setenv OLLAMA_ORIGINS "*"

:执行后可以通过以下命令验证状态是否设置成功。返回结果为 * 即表示配置生效。

launchctl getenv OLLAMA_ORIGINS
# 预期输出:*

3. 重启服务

环境修改完成后,重新打开应用程序使新配置加载。

open -a Ollama

验证结果

完成上述步骤后,再次通过浏览器扩展发起请求。如果此时不再返回 403 Forbidden,且能正常获取响应数据(不再是空的 JSON),则说明问题已解决,插件已成功连接到本地 Ollama API。

在使用本地部署的 Ollama 作为 OpenAI API 兼容服务时,如果遇到插件调用被拒绝的问题,通常表现为收到 403 Forbidden 错误。

以下是该问题的成因分析及完整的解决方案:

问题现象与原因分析

当通过浏览器扩展(Chrome Plugin)发起请求时,如果返回如下内容:

HTTP/1.1 403 Forbidden
Content-Length: 0

这通常意味着服务器拒绝了跨域访问。请留意请求头中的 Origin 信息:

Origin: chrome-extension://pjniaipnjcdiiglednmhgmjmpmllelke
Host: 127.0.0.1:11434

这表明请求并非来自普通的网页或命令行,而是源自浏览器插件。

此时检查 Ollama 的启动参数,会发现关键的环境变量 OLLAMA_ORIGINS 限制了允许的访问来源。如果该值未设置为允许所有地址(如 "*"),或者被预设为仅允许本地特定端口/源,浏览器插件的请求就会被拦截。简单理解:Ollama 默认为了安全不会无条件信任所有来自扩展程序的请求,必须手动放行。

解决方案步骤

要彻底解决此问题并让插件能正常调用 API,请按以下顺序操作:

1. 停止 Ollama 服务

首先需要在菜单栏中选择退出客户端(Ollama → Quit Ollama),或者通过终端强制终止进程,以确保新的环境变量配置能立即生效。

killall Ollama

2. 设置允许所有来源的环境变量

在 macOS 系统中,我们需要将 OLLAMA_ORIGINS 设置为通配符 "*",从而开放全部权限给任何发起请求的来源(包括浏览器插件)。

launchctl setenv OLLAMA_ORIGINS "*"

:执行后可以通过以下命令验证状态是否设置成功。返回结果为 * 即表示配置生效。

launchctl getenv OLLAMA_ORIGINS
# 预期输出:*

3. 重启服务

环境修改完成后,重新打开应用程序使新配置加载。

open -a Ollama

验证结果

完成上述步骤后,再次通过浏览器扩展发起请求。如果此时不再返回 403 Forbidden,且能正常获取响应数据(不再是空的 JSON),则说明问题已解决,插件已成功连接到本地 Ollama API。

加载中...