将Ollama接入one-api
one-api是一个开源AI中间件服务,可以聚合各家大模型API,比如OpenAI、ChatGLM、文心一言等,聚合后提供统一的OpenAI调用方法。举个例子:ChatGLM和文心一言的API调用方法并不相同,one-api可以对其进行整合,然后提供一个统一的OpenAI调用方法,调用时只需要改变模型名称即可,从而消除接口差异和降低开发难度。
one-api具体安装方法请参考官方项目地址:https://github.com/songquanpeng/one-api
步骤
通过one-api后台 >> 渠道 >> 添加一个新的渠道。
类型:Ollama
渠道API地址:填写Ollama WEB地址,比如http://IP:11434
模型:你在Ollama上已经下载好的本地大模型名称
密钥:这个是必填项,由于Ollama默认不支持鉴权访问,所以这里随便填写即可
调用命令:
curl https://ai.xxx.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxx" \
-d '{
"model": "qwen2",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
ai.xxx.com改成你one-api的域名
sk-xxx填写你在one-api创建的令牌
安全问题
尝试使用stream的方式调用one-api Ollama时,返回空白,通过issues发现是one-api BUG导致,目前降级one-api版本为0.6.6解决,期待作者后续修复这个问题。
安全风险
由于Ollama本身没有提供鉴权访问机制,所以Ollama部署到服务器上存在安全隐患,知道你IP和端口的用户都可以进行API调用,非常不安全,生产环境我们大致可通过下面的一些方法来提高安全性。
- 方法一:Linux内置防火墙
Docker部署Ollama时改为HOST网络
通过Linux内置防火墙限制只能指定IP访问11434端口
- 方法二:Nginx反向代理
Docker部署Ollama时,映射IP改为127.0.0.1
然后本机的Nginx反向代理127.0.0.1:11434,并在nginx上设置黑名单(deny)和白名单(allow)IP