✨ 通过标准的 OpenAI API 格式访问所有的大模型,开箱即用 ✨
docker run --name one-api -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api
其中,-p 3000:3000 中的第一个 3000 是宿主机的端口,可以根据需要进行修改。
数据和日志将会保存在宿主机的 /home/ubuntu/data/one-api 目录,请确保该目录存在且具有写入权限,或者更改为合适的目录。
如果启动失败,请添加 --privileged=true,具体参考 此处。
如果上面的镜像无法拉取,可以尝试使用 GitHub 的 Docker 镜像,将上面的 justsong/one-api 替换为 ghcr.io/songquanpeng/one-api 即可。
如果你的并发量较大,务必设置 SQL_DSN,详见下面环境变量一节。
docker-compose up -d
仅启动方式不同,参数设置不变,请参考基于 Docker 部署部分。
git clone https://github.com/songquanpeng/one-api.git
cd one-api/web/default
npm install
npm run build
cd ../..
go mod download
go build -ldflags "-s -w" -o one-api
chmod u+x one-api
./one-api --port 3000 --log-dir ./logs
在渠道页面中添加你的 API Key,之后在令牌页面中新增访问令牌。
之后就可以使用你的令牌访问 One API 了,使用方式与 OpenAI API 一致。
你需要在各种用到 OpenAI API 的地方设置 API Base 为你的 One API 的部署地址,例如:https://openai.justsong.cn,API Key 则为你在 One API 中生成的令牌。
注意,具体的 API Base 的格式取决于你所使用的客户端。
OPENAI_API_KEY="sk-xxxxxx"
OPENAI_API_BASE="https://:/v1"
额度 = 分组倍率 * 模型倍率 * (提示 token 数 + 补全 token 数 * 补全倍率)
其中补全倍率对于 GPT3.5 固定为 1.33,GPT4 为 2,与官方保持一致。
如果是非流模式,官方接口会返回消耗的总 token,但是你要注意提示和补全的消耗倍率不一样。
注意,One API 的默认倍率就是官方倍率,是已经调整过的。
请检查你的令牌额度是否足够,这个和账户额度是分开的。
令牌额度仅供用户设置最大使用量,用户可自由设置。
请检查的用户分组和渠道分组设置。
以及渠道的模型设置。
这是因为返回值不是合法的 JSON,而是一个 HTML 页面。
大概率是你的部署站的 IP 或代理的节点被 CloudFlare 封禁了。
部署的时候不要设置 BASE_URL。
检查你的接口地址和 API Key 有没有填对。
检查是否启用了 HTTPS,浏览器会拦截 HTTPS 域名下的 HTTP 请求。
上游渠道 429 了。
如果使用 MySQL,不会。
如果使用 SQLite,需要按照我所给的部署命令挂载 volume 持久化 one-api.db 数据库文件,否则容器重启后数据会丢失。
一般情况下不需要,系统将在初始化的时候自动调整。
如果需要的话,我会在更新日志中说明,并给出脚本。
这是检测到 ability 表里有些记录的渠道 id 是不存在的,这大概率是因为你删了 channel 表里的记录但是没有同步在 ability 表里清理无效的渠道。
对于每一个渠道,其所支持的模型都需要有一个专门的 ability 表的记录,表示该渠道支持该模型。