侧边栏壁纸
  • 累计撰写 55 篇文章
  • 累计创建 7 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

New API:一个高效的后端API框架

米粒儿
2025-03-08 / 0 评论 / 0 点赞 / 17 阅读 / 3356 字
温馨提示:
本文最后更新于2025-03-08,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

New API:基于One API的开源后端框架

项目说明

New API 是一个在 One API 基础上进行二次开发的开源项目,旨在为开发者提供一个功能丰富、灵活高效的后端API框架。该项目由 Calcium-Ion 维护,代码托管于 GitHub(https://github.com/Calcium-Ion/new-api)。

注意事项

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

✨ 主要特性

New API 在继承 One API 功能的基础上,新增了多项实用特性,以下是其亮点:

  1. 🎨 全新的UI界面

    • 提供焕然一新的用户界面(部分界面仍在更新中)。
  2. 🌍 多语言支持

    • 支持多种语言(功能待完善)。
  3. 🎨 Midjourney-Proxy(Plus) 接口支持

    • 新增对接 Midjourney 服务,具体参考 对接文档
  4. 💰 在线充值功能

    • 支持通过 易支付 进行在线充值,可在 系统设置 中配置。
  5. 🔍 Key查询使用额度

  6. 📑 分页支持

    • 可自定义每页显示数量。
  7. 🔄 兼容原版数据库

    • 可直接使用原版 One API 的数据库(one-api.db)。
  8. 💵 模型按次数收费

    • 系统设置 > 运营设置 中支持按次数计费。
  9. ⚖️ 渠道加权随机

    • 支持根据权重随机选择渠道。
  10. 📈 数据看板

    • 提供控制台数据可视化功能。
  11. 🔒 令牌模型限制

    • 可设置令牌能调用的模型范围。
  12. 🤖 Telegram授权登录

    • 系统设置 > 配置登录注册 中启用 Telegram 登录:
      • @Botfather 输入 /setdomain,选择 Bot 并输入 http(s)://你的网站地址/login
      • Telegram Bot 名称为 Bot Username 去掉 @ 后的字符串。
  13. 🎵 Suno API 接口支持

  14. 🔄 Rerank模型支持

    • 支持 Cohere 和 Jina 的 Rerank 模型,可接入 Dify,参考 对接文档
  15. ⚡ OpenAI Realtime API

    • 支持 OpenAI Realtime API 及 Azure 渠道,使用路由 /chat2link 进入聊天界面。
  16. 🧠 Reasoning Effort 设置

    • 通过模型名称后缀调整推理力度:
      • OpenAI o系列模型
        • -high:高推理力度(如 o3-mini-high
        • -medium:中等推理力度(如 o3-mini-medium
        • -low:低推理力度(如 o3-mini-low
      • Claude 思考模型
        • -thinking:启用思考模式(如 claude-3-7-sonnet-20250219-thinking
  17. 🔄 思考转内容

    • 渠道 > 编辑 > 渠道额外设置 中设置 thinking_to_content(默认 false),开启后将推理内容转换为 <think> 标签返回。
  18. 🔄 模型限流

    • 系统设置 > 速率限制设置 中支持设置总请求数和成功请求数限制。
  19. 💰 缓存计费支持

    • 缓存命中时可按比例计费:
      • 系统设置 > 运营设置 中设置 提示缓存倍率
      • 在渠道中设置倍率(0-1,如 0.5 表示 50% 计费)。
    • 支持的渠道:OpenAI、Azure、DeepSeek、Claude。

模型支持

New API 扩展了模型支持范围,新增以下模型:

  • 第三方模型gpt-4-gizmo-*(非 OpenAI 官方模型,使用官方 Key 无法调用)
  • Midjourney-Proxy(Plus):参考 对接文档
  • 自定义渠道:支持填入完整调用地址
  • Suno API:参考 对接文档
  • Rerank模型:支持 Cohere 和 Jina,参考 对接文档
  • Dify

比原版One API多出的配置

New API 增加了多项环境变量配置,以下是新增选项及其说明:

配置项 说明 默认值
GENERATE_DEFAULT_TOKEN 是否为新用户生成初始令牌 false
STREAMING_TIMEOUT 流式回复超时时间(秒) 60
DIFY_DEBUG Dify 渠道是否输出工作流和节点信息到客户端 true
FORCE_STREAM_OPTION 是否强制上游返回流模式 usage true(建议开启)
GET_MEDIA_TOKEN 是否统计图片 Token(关闭可能导致与上游计费不一致) true
GET_MEDIA_TOKEN_NOT_STREAM 非流模式下是否统计图片 Token true
UPDATE_TASK 是否更新异步任务(Midjourney、Suno) true
COHERE_SAFETY_SETTING Cohere 模型安全设置(NONE, CONTEXTUAL, STRICT NONE
GEMINI_VISION_MAX_IMAGE_NUM Gemini 模型最大图片数量(-1 为无限制) 16
MAX_FILE_DOWNLOAD_MB 最大文件下载大小(MB) 20
CRYPTO_SECRET 数据库内容加密密钥
AZURE_DEFAULT_API_VERSION Azure 渠道默认 API 版本 2024-12-01-preview
NOTIFICATION_LIMIT_DURATION_MINUTE 通知限制持续时间(分钟) 10
NOTIFY_LIMIT_COUNT 指定时间内用户通知最大数量 2

已废弃的环境变量

  • GEMINI_MODEL_MAP:改为在 设置 > 模型相关设置 中配置。
  • GEMINI_SAFETY_SETTING:改为在 设置 > 模型相关设置 中配置。

部署

部署要求

  • 本地数据库:默认使用 SQLite(Docker 部署需挂载 /data 目录)
  • 远程数据库
    • MySQL ≥ 5.7.8
    • PostgreSQL ≥ 9.6
  • 默认账号root,密码 123456

多机部署注意事项

  • 必须设置 SESSION_SECRET,否则登录状态不一致。
  • 若共用 Redis,需设置 CRYPTO_SECRET,否则无法获取 Redis 内容。

使用宝塔面板部署

  1. 安装宝塔面板(≥ 9.2.0,官网下载正式版脚本)。
  2. 登录面板,进入 Docker 模块,安装 Docker 服务。
  3. 在应用商店搜索 New-API,配置基本选项后安装。
  4. 参考 图文教程

基于 Docker 部署

使用 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(修改数据库连接参数)
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

注意:可能导致数据库不兼容。


渠道重试与缓存设置

渠道重试

  • 设置 > 运营设置 > 通用设置 中设置重试次数,建议开启缓存。
  • 重试按渠道优先级顺序进行。

特定错误码重试

  • 默认不重试错误码:400504524
  • 若需重试 400,在 渠道 > 编辑 中设置状态码复写:
    {
      "400": "500"
    }
    

缓存设置

  • REDIS_CONN_STRING:配置 Redis 缓存,例如:
    REDIS_CONN_STRING=redis://default:redispw@localhost:49153
    
  • MEMORY_CACHE_ENABLED:启用内存缓存(默认 false,若配置 Redis 则无需设置),可能导致额度更新延迟。

接口设置文档


界面截图

enter image description here

总结

New API 在 One API 的基础上进行了大幅优化与功能扩展,新增了多语言支持、Midjourney 和 Suno API 集成、Telegram 登录等特性,同时提升了部署灵活性和用户体验。无论是个人学习还是小型项目开发,New API 都是一个值得尝试的开源工具。欢迎访问 GitHub 仓库参与贡献!


0

评论区