问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Ollama跨域配置:实现客户端通过API访问服务器端部署的Ollama服务

创作时间:
作者:
@小白创作中心

Ollama跨域配置:实现客户端通过API访问服务器端部署的Ollama服务

引用
CSDN
1.
https://m.blog.csdn.net/qq_30298311/article/details/145919490

Ollama默认在本地运行,不对外提供服务,这会导致在服务器端部署的模型无法被用户通过API的形式访问到。要允许外部设备访问Ollama服务,需要让Ollama服务监听所有网络接口,而不仅仅是本地回环地址。以下是具体设置:

客户端设置

客户端以Windows系统为例,这里我使用Edge浏览器中的Page Assist插件,通过API访问服务器端部署的Ollama服务。设置步骤如下:

  1. 在浏览器中安装Page Assist插件,打开该扩展插件的界面。
  2. 在设置界面的找到“Ollama设置”,将其中的“Ollama URL”修改为自己的服务器IP,端口号为11434(Ollama默认端口号)。
  3. 此时返回聊天交互界面,依然会显示“无法连接到Ollama”,接下来需要在服务器端进行一些设置。

服务器端设置

服务器端以Ubuntu系统为例,在服务器端完成Ollama的安装,并下载任意一个模型。

接下来,通过

sudo netstat -tuln | grep 11434

检查服务器上所有端口号为11434的连接信息,验证Ollama是否能正确地在所有网络接口上监听11434端口。也可以通过

telnet 192.168.120.88 11434

测试从另一台机器(例如你的Windows计算机)是否能连接到服务器上的Ollama服务。

从命令行返回的信息来看,Ollama服务当前仅监听在127.0.0.1(即localhost)上,这意味着它只接受来自本机的连接请求,并不对外网开放,当尝试从另一台机器访问服务器上的Ollama服务时,连接会被拒绝。接下来介绍解决方法。

配置Ollama允许跨域访问

上面的情况是由于Ollama的默认参数配置导致的。Ollama在启动时默认只设置了仅本地访问,所以跨域访问以及端口监听需要进行额外的环境变量设置OLLAMA_ORIGINS。如果Ollama作为systemd服务运行,应该使用systemctl设置环境变量:

  1. 通过调用
sudo systemctl edit ollama.service

编辑systemd服务。执行该命令会打开一个编辑器,在编辑器中,你可以修改Ollama服务的配置,特别是环境变量部分。

  1. 对于每个环境变量,在[Service]部分下添加Environment
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_ORIGINS=*"
  1. 保存并退出。在nano编辑器界面中,“^”对应键盘上的“ctrl”键,也就是说,键盘操作“ctrl+O”实现写入文本,键盘操作“ctrl+X”实现离开编辑器。

  2. 重载systemd并重启Ollama:

sudo systemctl daemon-reload
sudo systemctl restart ollama

重启Ollama服务后,在客户端的Page Assist中刷新页面,可见已经可以连接到服务器端的模型了。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号