new-api

new-api

AI模型接口管理与分发系统,支持将多种大模型转为OpenAI格式调用、支持Midjourney Proxy、Suno、Rerank,兼容易支付协议,可供个人或者企业内部管理与分发渠道使用,本项目基于One API二次开发。🍥 The next-generation LLM gateway and AI asset management system supports multiple languages.

Stars: 4434

Visit
 screenshot

New API is an open-source project based on One API with additional features and improvements. It offers a new UI interface, supports Midjourney-Proxy(Plus) interface, online recharge functionality, model-based charging, channel weight randomization, data dashboard, token-controlled models, Telegram authorization login, Suno API support, Rerank model integration, and various third-party models. Users can customize models, retry channels, and configure caching settings. The deployment can be done using Docker with SQLite or MySQL databases. The project provides documentation for Midjourney and Suno interfaces, and it is suitable for AI enthusiasts and developers looking to enhance AI capabilities.

README:

中文 | English

new-api

New API

🍥新一代大模型网关与AI资产管理系统

Calcium-Ion%2Fnew-api | Trendshift

license release docker docker GoReportCard

📝 项目说明

[!NOTE]
本项目为开源项目,在One API的基础上进行二次开发

[!IMPORTANT]

  • 使用者必须在遵循 OpenAI 的使用条款以及法律法规的情况下使用,不得用于非法用途。
  • 本项目仅供个人学习使用,不保证稳定性,且不提供任何技术支持。
  • 根据《生成式人工智能服务管理暂行办法》的要求,请勿对中国地区公众提供一切未经备案的生成式人工智能服务。

✨ 主要特性

  1. 🎨 全新的UI界面(部分界面还待更新)
  2. 🌍 多语言支持(待完善)
  3. 🎨 添加Midjourney-Proxy(Plus)接口支持,对接文档
  4. 💰 支持在线充值功能,可在系统设置中设置:
    • [x] 易支付
  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 进入聊天界面

模型支持

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

  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模型安全设置,可选值为 NONE, CONTEXTUALSTRICT,默认为 NONE
  • GEMINI_VISION_MAX_IMAGE_NUM:Gemini模型最大图片数量,默认为 16,设置为 -1 则不限制。
  • MAX_FILE_DOWNLOAD_MB: 最大文件下载大小,单位 MB,默认为 20
  • CRYPTO_SECRET:加密密钥,用于加密数据库内容。

部署

[!TIP] 最新版Docker镜像:calciumion/new-api:latest
默认账号root 密码123456
更新指令:

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

多机部署

  • 必须设置环境变量 SESSION_SECRET,否则会导致多机部署时登录状态不一致。
  • 如果公用Redis,必须设置 CRYPTO_SECRET,否则会导致多机部署时Redis内容无法获取。

部署要求

  • 本地数据库(默认):SQLite(Docker 部署默认使用 SQLite,必须挂载 /data 目录到宿主机)
  • 远程数据库:MySQL 版本 >= 5.7.8,PgSQL 版本 >= 9.6

使用宝塔面板Docker功能部署

安装宝塔面板 (9.2.0版本及以上),前往 宝塔面板 官网,选择正式版的脚本下载安装
安装后登录宝塔面板,在菜单栏中点击 Docker ,首次进入会提示安装 Docker 服务,点击立即安装,按提示完成安装
安装完成后在应用商店中找到 New-API ,点击安装,配置基本选项 即可完成安装
图文教程

基于 Docker 进行部署

使用 Docker Compose 部署(推荐)

# 下载项目
git clone https://github.com/Calcium-Ion/new-api.git
cd new-api
# 按需编辑 docker-compose.yml
# 启动
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

渠道重试

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

缓存设置方法

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

为什么有的时候没有重试

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

我想让400也重试

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

{
  "400": "500"
}

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

Midjourney接口设置文档

对接文档

Suno接口设置文档

对接文档

界面截图

image

image

image

image

交流群

相关项目

其他基于New API的项目:

  • new-api-horizon:New API高性能优化版,并支持Claude格式
  • VoAPI:基于New API的闭源项目

🌟 Star History

Star History Chart

For Tasks:

Click tags to check more tools for each tasks

For Jobs:

Alternative AI tools for new-api

Similar Open Source Tools

For similar tasks

For similar jobs