在如今的大数据与人工智能时代,各种大模型层出不穷,从 OpenAI 的 ChatGPT 到百度的文心一言,选择适合的模型显得尤为重要。然而,不同模型的 API 接口各异,开发者在使用时需要花费大量时间进行适配。为了解决这一问题,One API 应运而生,它提供了一种标准的 OpenAI API 格式,开箱即用,支持多种大模型的访问。
一、功能概览
One API 功能强大,涵盖了多种大模型的支持、负载均衡、流式传输、多机部署、令牌管理等方面,旨在为开发者提供一个统一的接口,简化模型调用的复杂性。
1. 多模型支持
One API 支持众多主流的大模型,包括但不限于:
- OpenAI ChatGPT 系列模型:支持 Azure OpenAI API。
- Anthropic Claude 系列模型:支持 AWS Claude。
- Google PaLM2/Gemini 系列模型。
- 百度文心一言系列模型。
- 阿里通义千问系列模型。
- 讯飞星火认知大模型。
- 智谱 ChatGLM 系列模型。
- 腾讯混元大模型。
2. 配置与代理
One API 支持配置镜像以及众多第三方代理服务,能够通过负载均衡的方式访问多个渠道,从而提高访问效率和稳定性。
3. 流式传输与多机部署
流式传输可以实现打字机效果,增强用户体验。此外,One API 支持多机部署,通过设置
SESSION_SECRET
和
SQL_DSN
,可以在多台服务器上进行配置,从而实现高可用性和扩展性。
4. 令牌与渠道管理
One API 提供了强大的令牌管理功能,支持设置令牌的过期时间、额度、允许的 IP 范围以及访问的模型。此外,渠道管理功能可以批量创建和管理渠道,方便用户进行大规模的部署和使用。
5. 自定义与扩展
One API 支持丰富的自定义设置,包括系统名称、logo、页脚等。通过系统访问令牌调用管理 API,用户可以在无需二次开发的情况下扩展和自定义 One API 的功能。
二、部署指南
One API 支持多种部署方式,用户可以根据实际需求选择合适的方案。
1. 基于 Docker 部署
使用 Docker 部署是最为简便和高效的方式。以下是使用 SQLite 和 MySQL 的部署命令:
# 使用 SQLite 的部署命令:docker run --name one-api -d--restart always -p3000:3000 -eTZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api
# 使用 MySQL 的部署命令:docker run --name one-api -d--restart always -p3000:3000 -eSQL_DSN="root:123456@tcp(localhost:3306)/oneapi"-eTZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api
其中,
-p 3000:3000
中的第一个
3000
是宿主机的端口,可以根据需要进行修改。数据和日志将会保存在宿主机的
/home/ubuntu/data/one-api
目录,请确保该目录存在且具有写入权限。
2. 基于 Docker Compose 部署
# 目前支持 MySQL 启动,数据存储在 ./data/mysql 文件夹内docker-compose up -d# 查看部署状态docker-composeps
3. 手动部署
手动部署适用于需要自定义配置的用户。以下是步骤:
- 从 GitHub Releases 下载可执行文件或者从源码编译:
git clone https://github.com/songquanpeng/one-api.git# 构建前端cd one-api/web/defaultnpminstallnpm run build# 构建后端cd../..go mod downloadgo build -ldflags"-s -w"-o one-api
- 运行:
chmod u+x one-api./one-api --port3000 --log-dir ./logs
- 访问 http://localhost:3000/ 并登录。初始账号用户名为
root
,密码为123456
。
4. 多机部署
多机部署可以显著提高系统的可用性和扩展性。需要注意以下几点:
- 所有服务器
SESSION_SECRET
设置一样的值。 - 必须设置
SQL_DSN
,使用 MySQL 数据库而非 SQLite,所有服务器连接同一个数据库。 - 所有从服务器必须设置
NODE_TYPE
为slave
。
三、使用方法
One API 的使用方法非常简单,只需按以下步骤操作即可:
1. 注册与登录
初始账号用户名为
root
,密码为
123456
。登录后可以在后台进行各种配置和管理。
2. 配置与管理
One API 提供了丰富的配置选项,用户可以根据实际需求进行调整。例如,可以在 令牌管理 中设置令牌的过期时间和额度,在 渠道管理 中批量创建渠道,在 用户管理 中设置用户登录注册方式等。
3. 调用 API
One API 采用标准的 OpenAI API 格式,用户只需按标准格式调用即可。例如,调用 ChatGPT 模型进行文本生成:
import requests
url ="http://localhost:3000/v1/completions"
headers ={"Authorization":"Bearer YOUR_API_KEY","Content-Type":"application/json"}
data ={"model":"text-davinci-003","prompt":"Hello, world!","max_tokens":100}
response = requests.post(url, headers=headers, json=data)print(response.json())
四、常见问题与解决
1. 启动失败
如果启动失败,请检查以下几点:
- 确认 Docker 镜像是否正确拉取。
- 检查端口是否被占用。
- 确认数据目录是否存在且具有写入权限。
2. 性能优化
对于高并发量的应用,建议:
- 使用 MySQL 数据库并设置
SQL_DSN
。 - 配置负载均衡,提高访问效率。
- 使用 Redis 缓存,减少数据库访问延迟。
3. 安全问题
- 初次登录系统后,务必修改默认密码
123456
。 - 遵循 OpenAI 的使用条款以及法律法规,不得将 One API 用于非法用途。
五、结语
One API 为开发者提供了一个统一的接口,简化了多种大模型的调用流程。其强大的功能和灵活的配置选项,使得 One API 成为开发者不可或缺的工具。无论是初学者还是资深开发者,都能从中受益,快速实现大模型的调用与管理。
参考文献
- One API GitHub 项目
- OpenAI API 文档
- Anthropic Claude
- Google PaLM2/Gemini
- 百度文心一言
版权归原作者 步子哥 所有, 如有侵权,请联系我们删除。