new-api

2个月前发布 40 0 0

About AI模型接口管理与分发系统,支持将多种大模型转为OpenAI格式调用、支持Midjourney Proxy、Suno、Rerank,兼容易支付协议,可供个人或者企业内部管理与分发渠道使用,本项目基于One API二次开发。

收录时间:
2025-02-22

主要特性

  1. 🎨 全新的UI界面(部分界面还待更新)
  2. 🌍 多语言支持(待完善)
  3. 🎨 添加Midjourney-Proxy(Plus)接口支持,对接文档
  4. 💰 支持在线充值功能,可在系统设置中设置:
    •  易支付
  5. 🔍 支持用key查询使用额度:
  6. 📑 分页支持选择每页显示数量
  7. 🔄 兼容原版One API的数据库,可直接使用原版数据库(one-api.db)
  8. 💵 支持模型按次数收费,可在 系统设置-运营设置 中设置
  9. ⚖️ 支持渠道加权随机
  10. 📈 数据看板(控制台)
  11. 🔒 可设置令牌能调用的模型
  12. 🤖 支持Telegram授权登录:
    1. 系统设置-配置登录注册-允许通过Telegram登录
    2. @Botfather输入指令/setdomain
    3. 选择你的bot,然后输入http(s)://你的网站地址/login
    4. Telegram Bot 名称是bot username 去掉@后的字符串
  13. 🎵 添加 Suno API接口支持,对接文档
  14. 🔄 支持Rerank模型,目前兼容Cohere和Jina,可接入Dify,对接文档
  15. ⚡ OpenAI Realtime API – 支持OpenAI的Realtime API,支持Azure渠道
  16. 支持使用路由/chat2link 进入聊天界面
  17. 🧠 支持通过模型名称后缀设置 reasoning effort:
    • 添加后缀 -high 设置为 high reasoning effort (例如: o3-mini-high)
    • 添加后缀 -medium 设置为 medium reasoning effort (例如: o3-mini-medium)
    • 添加后缀 -low 设置为 low reasoning effort (例如: o3-mini-low)

模型支持

此版本额外支持以下模型:

  1. 第三方模型 gps (gpt-4-gizmo-*)
  2. Midjourney-Proxy(Plus)接口,对接文档
  3. 自定义渠道,支持填入完整调用地址
  4. Suno API 接口,对接文档
  5. Rerank模型,目前支持CohereJina对接文档
  6. Dify

您可以在渠道中添加自定义模型gpt-4-gizmo-*,此模型并非OpenAI官方模型,而是第三方模型,使用官方key无法调用。

比原版One API多出的配置

  • GENERATE_DEFAULT_TOKEN:是否为新注册用户生成初始令牌,默认为 false
  • STREAMING_TIMEOUT:设置流式一次回复的超时时间,默认为 60 秒。
  • DIFY_DEBUG:设置 Dify 渠道是否输出工作流和节点信息到客户端,默认为 true
  • FORCE_STREAM_OPTION:是否覆盖客户端stream_options参数,请求上游返回流模式usage,默认为 true,建议开启,不影响客户端传入stream_options参数返回结果。
  • GET_MEDIA_TOKEN:是否统计图片token,默认为 true,关闭后将不再在本地计算图片token,可能会导致和上游计费不同,此项覆盖 GET_MEDIA_TOKEN_NOT_STREAM 选项作用。
  • GET_MEDIA_TOKEN_NOT_STREAM:是否在非流(stream=false)情况下统计图片token,默认为 true
  • UPDATE_TASK:是否更新异步任务(Midjourney、Suno),默认为 true,关闭后将不会更新任务进度。
  • GEMINI_MODEL_MAP:Gemini模型指定版本(v1/v1beta),使用”模型:版本”指定,”,”分隔,例如:-e GEMINI_MODEL_MAP=”gemini-1.5-pro-latest:v1beta,gemini-1.5-pro-001:v1beta”,为空则使用默认配置(v1beta)
  • COHERE_SAFETY_SETTING:Cohere模型安全设置,可选值为 NONECONTEXTUALSTRICT,默认为 NONE
  • GEMINI_VISION_MAX_IMAGE_NUM:Gemini模型最大图片数量,默认为 16,设置为 -1 则不限制。
  • MAX_FILE_DOWNLOAD_MB: 最大文件下载大小,单位 MB,默认为 20
  • CRYPTO_SECRET:加密密钥,用于加密数据库内容。
  • AZURE_DEFAULT_API_VERSION:Azure渠道默认API版本,如果渠道设置中未指定API版本,则使用此版本,默认为 2024-12-01-preview
  • NOTIFICATION_LIMIT_DURATION_MINUTE:通知限制的持续时间(分钟),默认为 10
  • NOTIFY_LIMIT_COUNT:用户通知在指定持续时间内的最大数量,默认为 2

基于 Docker 进行部署

Tip

默认管理员账号root 密码123456

使用 Docker Compose 部署(推荐)

# 下载项目
git clone https://github.com/Calcium-Ion/new-api.git
cd new-api
# 按需编辑 docker-compose.yml
# nano docker-compose.yml
# vim docker-compose.yml
# 启动
docker-compose up -d

更新版本

docker-compose pull
docker-compose up -d

直接使用 Docker 镜像

# 使用 SQLite 的部署命令:
docker run --name new-api -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /home/ubuntu/data/new-api:/data calciumion/new-api:latest

# 使用 MySQL 的部署命令,在上面的基础上添加 `-e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi"`,请自行修改数据库连接参数。
# 例如:
docker run --name new-api -d --restart always -p 3000:3000 -e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi" -e TZ=Asia/Shanghai -v /home/ubuntu/data/new-api:/data calciumion/new-api:latest

更新版本

# 拉取最新镜像
docker pull calciumion/new-api:latest
# 停止并删除旧容器
docker stop new-api
docker rm new-api
# 使用相同参数运行新容器
docker run --name new-api -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /home/ubuntu/data/new-api:/data calciumion/new-api:latest

或者使用 Watchtower 自动更新(不推荐,可能会导致数据库不兼容):

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -cR

渠道重试

渠道重试功能已经实现,可以在设置->运营设置->通用设置设置重试次数,建议开启缓存功能。
如果开启了重试功能,第一次重试使用同优先级,第二次重试使用下一个优先级,以此类推。

缓存设置方法

  1. REDIS_CONN_STRING:设置之后将使用 Redis 作为缓存使用。
    • 例子:REDIS_CONN_STRING=redis://default:redispw@localhost:49153
  2. MEMORY_CACHE_ENABLED:启用内存缓存(如果设置了REDIS_CONN_STRING,则无需手动设置),会导致用户额度的更新存在一定的延迟,可选值为 true 和 false,未设置则默认为 false
    • 例子:MEMORY_CACHE_ENABLED=true

为什么有的时候没有重试

这些错误码不会重试:400,504,524

我想让400也重试

渠道->编辑中,将状态码复写改为

{
  "400": "500"
}

可以实现400错误转为500错误,从而重试

数据统计

相关导航