14个文本转图像AI API
One-API实现大语言模型请求接口的统一
前言
自ChatGPT发布以来,人工智能大语言模型已经引起了广泛的关注和讨论。而经过最近一两年的发展,很多企业推出了自己的大语言模型:Azure、Anthropic Claude、GooglePaLM2、智谱 ChatGLM、百度文心一言、讯飞星火认知、阿里通义千问、360 智脑以及腾讯混元。但是这些多种多样,混乱不统一的大语言模型会给开发者带来一个问题,当我们想要使用这些大语言模型进行项目开发时,难免会遇到接口不统一问题。
本篇文章介绍的开源项目One-Api
就解决上述了问题,该项目可以让我们以请求OpenAI的接口形式向各种大语言模型进行请求,实现了各种大语言模型的请求接口的统一。
项目介绍
One-Api是一款OpenAI接口管理和分发的系统,支持 Azure、Anthropic Claude、GooglePaLM2、智谱 ChatGLM、百度文心一言、讯飞星火认知、阿里通义千问、360 智脑以及腾讯混元,可用于二次分发管理 key,仅单可执行文件,已打包好 Docker 镜像,一键部署,开箱即用。
使用One-Api的好处就是可以将任何使用OpenAI接口的地方替换为One-Api的接口,然后对One-Api进行大语言模型的渠道配置,比如配置文心一言
、Claude
等,然后你就可以像请求OpenAI一样请求文心一眼
、Claude
。
- 地址:https://github.com/songquanpeng/one-api
部署
One-Api是一个Go项目,开箱即用,因此部署非常简单。这里我们以正常的业务部署为例,实现下述要求:
- 在Linux服务器上部署One-Api
- 配置域名和证书
- 添加ChatGPT和其它大语言模型渠道(这里以ChatGLM为例)
一、在Linux服务器上部署One-Api
一台Linux服务器,建议选择国外地区,但中国大陆或港澳地区亦可,但是在添加国外大语言模型时需要配置代理接口(台湾貌似不需要)。我这里以Vultr的服务器为例,选用Debian 12 x64
。
为了后续的域名配置和SSL配置,我建议服务器选择国外的。
1. 安装Docker
直接通过运行官方提供的安装脚本安装Docker。
curl -fsSL get.docker.com -o get-docker.sh && sudo sh get-docker.sh
3. 运行One-API项目
直接运行下述指令:
docker run -d --name one-api -p 3000:3000 -v ./data/oneapi:/data -v ./logs:/app/logs justsong/one-api:latest --log-dir /app/logs
4. 访问
访问主机IP:3000
默认管理员账户:
- 用户名:
root
- 密码:
123456
登录之后会提示修改密码,按照指引完成即可。
二、配置域名和证书
1. 域名解析
这里不对域名解析操作进行介绍,因为不同的域名提供商,对应的操作界面不同,不会域名解析的,请自行谷歌了解自己的域名提供商怎么进行域名解析。
选用国外服务器的话,域名也要国外的,我一般使用的是
cloudflare
平台的域名。国内服务器进行域名配置的话,需要进行域名备案,且国外域名解析到国内服务器时会出现DNS污染的情况。
我这里已经有一个域名oneapi.mnzdna.xyz
解析到了我这台服务器上。
如何验证域名是否解析到了服务器上?执行
ping 域名
,看看信息反馈的IP地址是不是你服务器的IP即可。
2. 安装Nginx
运行如下指令:
apt install nginx -y
Centos运行:
yum install nginx -y
运行完成后,可以访问服务器IP来验证下Nginx是否安装成功。
在访问服务器的某端口所对应的程序时,需要确保对应的端口是否对外开放,nginx程序端口默认是80,如果访问不了,可以使用
iptables
工具开放对应的端口,不会的话直接向ChatGPT提问。
3. 配置OneAPI项目的Nginx配置
OneAPI的项目我们已经部署上了,从服务器的角度上来说,访问本地3000端口
即可访问OneAPI项目,从外部网络来说,访问服务器IP:3000
即可访问OneAPI项目。
在我们安装了Nginx之后,我们需要将外部的请求全部转发到本地的3000
端口即可,这里就需要用到Nginx的反向代理。
运行下述指令,在/etc/nginx/conf.d
下创建一个oneapi项目的配置文件oneapi.conf
下面的操作需要有一定的linux基础和Vim基础,没有的话,可以现在本地将
oneapi.conf
文件准备好,然后上传到/etc/nginx/conf.d
下。
vim /etc/nginx/conf.d/oneapi.conf
然后将下述配置信息复制进去:
server{
server_name oneapi.mnzdna.xyz; # 请根据实际情况修改你的域名
location / {
client_max_body_size 64m;
proxy_http_version 1.1;
# 反向代理配置
proxy_pass http://localhost:3000; # 请根据实际情况修改你的端口
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_cache_bypass $http_upgrade;
proxy_set_header Accept-Encoding gzip;
proxy_read_timeout 300s; # GPT-4 需要较长的超时时间,请自行调整
}
}
然后运行下述指令,重新加载Nginx配置文件
nginx -s reload
然后在浏览器访问你的域名。
浏览器提示网站不安全,是因为网站没有配置SSL证书。
4. 配置SSL证书
Nginx配置SSL证书可以在我的博客文章中了解:https://pgthinker.me/tag/nginx/.这里我们使用自动化配置SSL工具:Certbot
。
- Certbot:https://certbot.eff.org/
安装官方的教程,依次运行下述指令:
# 1. 安装snapd 不同的Linux版本请使用不同的包管理工具进行安装
apt install snapd
# 2. 使用snapd安装certbot
sudo snap install --classic certbot
# 3. 创建链接,确保certbot能够运行
sudo ln -s /snap/bin/certbot /usr/bin/certbot
# 4. 使用certbot自动配置nginx
sudo certbot --nginx
第4步的时候,需要依次输入信息,第一个是你的邮箱,随意输入,第二个是协议条款,填Y,第三个是订阅消息输入N,第四个是certbot自动检测到你Nginx绑定的哪些域名,选择对应域名的编号回车就会自动安装SSL并对配置文件进行修改。
配置完SSL后,就可以通过https访问,若出现访问不了的情况,请确定443端口是否对外开放。
三、添加ChatGPT和其它大语言模型渠道
1. 添加ChatGPT模型
2. 添加智谱AI模型
3. 创建Key
4. 测试
这里用ChatGPT-Next-Web项目进行测试。
- 地址:https://a.nextweb.fun/
填入One-Api地址和刚刚创建的Key(令牌).
选择gpt-3.5-turbo
模型。
添加自定义模型chatglm_turbo
,并设置chatglm_turbo
,测试智谱AI
文章转自微信公众号@易写开发服务