
中文 | English | 日本語
https://github.com/songquanpeng/one-api
✨ 通过标准的 OpenAI API 格式访问所有的大模型,开箱即用 ✨
https://raw.githubusercontent.com/songquanpeng/one-api/main/LICENSE https://github.com/songquanpeng/one-api/releases/latest https://hub.docker.com/repository/docker/justsong/one-api https://github.com/songquanpeng/one-api/releases/latest https://goreportcard.com/report/github.com/songquanpeng/one-api
https://github.com/songquanpeng/one-api#部署 · https://github.com/songquanpeng/one-api#使用方法 · https://github.com/songquanpeng/one-api/issues · https://github.com/songquanpeng/one-api#截图展示 · 在线演示 · https://github.com/songquanpeng/one-api#常见问题 · https://github.com/songquanpeng/one-api#相关项目 · 赞赏支持
[!NOTE] 本项目为开源项目,使用者必须在遵循 OpenAI 的使用条款以及**********的情况下使用,不得用于非法用途。
根据《生成式人工智能服务管理暂行办法》的要求,请勿对中国地区公众提供一切未经备案的生成式人工智能服务。
[!WARNING] 使用 Docker 拉取的最新镜像可能是
alpha版本,如果追求稳定性请手动指定版本。
[!WARNING] 使用 root 用户初次登录系统后,务必修改默认密码
123456!
https://gateway.ai.cloudflare.com/v1/ACCOUNT_TAG/GATEWAY/openai 即可。THEME 即可,默认为 default,欢迎 PR 更多主题,具体参考此处。shell# 使用 SQLite 的部署命令: 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 # 使用 MySQL 的部署命令,在上面的基础上添加 `-e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi"`,请自行修改数据库连接参数,不清楚如何修改请参见下面环境变量一节。 # 例如: docker run --name one-api -d --restart always -p 3000:3000 -e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi" -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,具体参考 https://github.com/songquanpeng/one-api/issues/482 。
如果上面的镜像无法拉取,可以尝试使用 GitHub 的 Docker 镜像,将上面的 justsong/one-api 替换为 ghcr.io/songquanpeng/one-api 即可。
如果你的并发量较大,务必设置 SQL_DSN,详见下面环境变量一节。
更新命令:docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -cR
Nginx 的参考配置:
server{ server_name openai.justsong.cn; # 请根据实际情况修改你的域名 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 需要较长的超时时间,请自行调整 } }
之后使用 Let's Encrypt 的 certbot 配置 HTTPS:
bash# Ubuntu 安装 certbot: sudo snap install --classic certbot sudo ln -s /snap/bin/certbot /usr/bin/certbot # 生成证书 & 修改 Nginx 配置 sudo certbot --nginx # 根据指示进行操作 # 重启 Nginx sudo service nginx restart
初始账号用户名为 root,密码为 123456。
仅启动方式不同,参数设置不变,请参考基于 Docker 部署部分
shell# 目前支持 MySQL 启动,数据存储在 ./data/mysql 文件夹内 docker-compose up -d # 查看部署状态 docker-compose ps
shellgit 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
root,密码为 ***。更加详细的部署教程参见此处。
SESSION_SECRET 设置一样的值。SQL_DSN,使用 MySQL 数据库而非 SQLite,所有服务器连接同一个数据库。NODE_TYPE 为 slave,不设置则默认为主服务器。SYNC_FREQUENCY 后服务器将定期从数据库同步配置,在使用远程数据库的情况下,推荐设置该项并启用 Redis,无论主从。FRONTEND_BASE_URL,以重定向页面请求到主服务器。REDIS_CONN_STRING,这样可以做到在缓存未过期的情况下数据库零访问,可以减少延迟。SYNC_FREQUENCY,以定期从数据库同步配置。环境变量的具体使用方法详见此处。
详见 https://github.com/songquanpeng/one-api/issues/175。
如果部署后访问出现空白页面,详见 https://github.com/songquanpeng/one-api/issues/97。
欢迎 PR 添加更多示例。
ChatGPT Next Web
项目主页:https://github.com/Yidadaa/ChatGPT-Next-Web
CODE_TOKEN_6
注意修改端口号,之后在页面上设置接口地址(例如:https://openai.justsong.cn/ )和 API Key 即可。
ChatGPT Web
项目主页:https://github.com/Chanzhaoyu/chatgpt-web
CODE_TOKEN_7
注意修改端口号、OPENAI_API_BASE_URL 和 OPENAI_API_KEY。
QChatGPT - QQ机器人
项目主页:https://github.com/RockChinQ/QChatGPT
根据文档完成部署后,在config.py设置配置项openai_config的reverse_proxy为 One API 后端地址,设置api_key为 One API 生成的key,并在配置项completion_api_params的model参数设置为 One API 支持的模型名称。
可安装 https://github.com/RockChinQ/Switcher在运行时切换所使用的模型。
Zeabur 的服务器在国外,自动解决了网络的问题,同时免费的额度也足够个人使用
PORT,值为 3000,再添加一个 SQL_DSN,值为 <username>:<password>@tcp(<addr>:<port>)/one-api ,然后保存。 注意如果不填写 SQL_DSN,数据将无法持久化,重新部署后数据会丢失。Render 提供免费额度,绑卡后可以进一步提升额度
Render 可以直接部署 docker 镜像,不需要 fork 仓库:https://dashboard.render.com
系统本身开箱即用。
你可以通过设置环境变量或者命令行参数进行配置。
等到系统启动后,使用 root 用户登录系统并做进一步的配置。
Note:如果你不知道某个配置项的含义,可以临时删掉值以看到进一步的提示文字。
在渠道页面中添加你的 API Key,之后在令牌页面中新增访问令牌。
之后就可以使用你的令牌访问 One API 了,使用方式与 OpenAI API 一致。
你需要在各种用到 OpenAI API 的地方设置 API Base 为你的 One API 的部署地址,例如:[***] Bearer ONE_API_KEY-CHANNEL_ID。
注意,需要是管理员用户创建的令牌才能指定渠道 ID。
不加的话将会使用负载均衡的方式使用多个渠道。
REDIS_CONN_STRING:设置之后将使用 Redis 作为缓存使用。
REDIS_CONN_STRING=redis://default:redispw@localhost:49153SESSION_SECRET:设置之后将使用固定的会话密钥,这样系统重新启动后已登录用户的 cookie 将依旧有效。
SESSION_SECRET=random_stringSQL_DSN:设置之后将使用指定数据库而非 SQLite,请使用 MySQL 或 PostgreSQL。
SQL_DSN=root:***@tcp(localhost:3306)/oneapiSQL_DSN=postgres://postgres:***@localhost:5432/oneapi(适配中,欢迎反馈)oneapi,无需手动建表,程序将自动建表。--network="host" 以使得容器内的程序可以访问到宿主机上的 MySQL。?tls=skip-verify。SQL_MAX_IDLE_CONNS:最大空闲连接数,默认为 100。SQL_MAX_OPEN_CONNS:最大打开连接数,默认为 1000。
Error 1040: Too many connections,请适当减小该值。SQL_CONN_MAX_LIFETIME:连接的最大生命周期,默认为 60,单位分钟。LOG_SQL_DSN:设置之后将为 logs 表使用独立的数据库,请使用 MySQL 或 PostgreSQL。FRONTEND_BASE_URL:设置之后将重定向页面请求到指定的地址,仅限从服务器设置。
FRONTEND_BASE_URL=[***] <port_number>: 指定服务器监听的端口号,默认为 3000。--port 3000--log-dir <log_dir>: 指定日志文件夹,如果没有设置,默认保存至工作目录的 logs 文件夹下。
--log-dir ./logs--version: 打印系统版本号并退出。--help: 查看命令的使用帮助和参数说明。注意,该演示站不提供对外服务: https://openai.justsong.cn
invalid character '<' looking for beginning of value
Failed to fetch
BASE_URL。当前分组负载已饱和,请稍后再试
数据库一致性已被破坏,请联系管理员?
本项目使用 MIT 协议进行开源,在此基础上,必须在页面底部保留署名以及指向本项目的链接。如果不想保留署名,必须首先获得授权。
同样适用于基于本项目的二开项目。
依据 MIT 协议,使用者需自行承担使用本项目的风险与责任,本开源项目开发者与此无关。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务