基于One API的二次开发版本,仅供个人管理渠道使用,请勿用于商业API分发!
Go to file
2024-08-13 10:29:55 +08:00
.github ci: update ci 2024-07-08 19:48:03 +08:00
bin chore: add model parameter to the time_test script (#245) 2023-07-04 18:13:59 +08:00
common feat: support gpt-4o-2024-08-06 2024-08-07 02:49:02 +08:00
constant feat: 优化Gemini模型版本获取逻辑 2024-08-02 17:23:59 +08:00
controller chore: epay 2024-08-04 03:12:24 +08:00
dto fix: response format 2024-08-07 15:43:01 +08:00
i18n chore: add error prompt for Azure 2023-09-03 21:46:07 +08:00
middleware fix bug 2024-08-07 02:50:22 +08:00
model support log db 2024-08-13 10:29:55 +08:00
relay feat: 区分额度不足和预扣费失败提示 2024-08-09 18:48:13 +08:00
router addupload 2024-07-31 15:48:51 +08:00
service addupload 2024-07-31 15:48:51 +08:00
web fix: optionList bug 2024-08-06 21:30:20 +08:00
.gitignore feat: ignore npm build dir 2024-07-31 16:50:19 +08:00
docker-compose.yml revert compose 2024-03-02 19:58:36 +08:00
Dockerfile fix: ci 2024-03-23 21:47:51 +08:00
go.mod chore: gopool 2024-07-19 01:07:37 +08:00
go.sum chore: gopool 2024-07-19 01:07:37 +08:00
LICENSE Update LICENSE 2024-05-24 21:12:31 +08:00
main.go add log db 2024-08-13 10:28:35 +08:00
makefile update makefile 2024-04-17 20:47:35 +08:00
Midjourney.md Update README.md 2024-07-06 17:46:47 +08:00
one-api.service chore: update one-api.service 2023-06-22 11:37:44 +08:00
README.md 修改readme错误 2024-08-03 17:19:44 +08:00
Rerank.md Update README.md 2024-07-06 17:46:47 +08:00
Suno.md Update README.md 2024-07-06 17:46:47 +08:00
VERSION fix: add a blank VERSION file (#135) 2023-06-02 14:20:40 +08:00

New API

Note

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

Important

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

Tip

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

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

主要变更

此分叉版本的主要变更如下:

  1. 全新的UI界面部分界面还待更新
  2. 添加Midjourney-Proxy(Plus)接口的支持,对接文档
  3. 支持在线充值功能,可在系统设置中设置,当前支持的支付接口:
    • 易支付
  4. 支持用key查询使用额度:
  5. 渠道显示已使用额度,支持指定组织访问
  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对接文档

模型支持

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

  1. 第三方模型 gps gpt-4-gizmo-*
  2. 智谱glm-4vglm-4v识图
  3. Anthropic Claude 3
  4. Ollama,添加渠道时,密钥可以随便填写,默认的请求地址是http://localhost:11434,如果需要修改请在渠道中修改
  5. Midjourney-Proxy(Plus)接口,对接文档
  6. 零一万物
  7. 自定义渠道,支持填入完整调用地址
  8. Suno API 接口,对接文档
  9. Rerank模型目前支持CohereJina对接文档
  10. Dify

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

比原版One API多出的配置

  • STREAMING_TIMEOUT:设置流式一次回复的超时时间,默认为 30 秒。
  • 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_MAPGemini模型指定版本(v1/v1beta),使用“模型:版本”指定,","分隔,例如:-e GEMINI_MODEL_MAP="gemini-1.5-pro-latest:v1beta,gemini-1.5-pro-001:v1beta",为空则使用默认配置

部署

部署要求

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

基于 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功能部署

# 使用 SQLite 的部署命令:
docker run --name new-api -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /www/wwwroot/new-api:/data calciumion/new-api:latest
# 使用 MySQL 的部署命令,在上面的基础上添加 `-e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi"`,请自行修改数据库连接参数。
# 例如:
# 注意数据库要开启远程访问并且只允许服务器IP访问
docker run --name new-api -d --restart always -p 3000:3000 -e SQL_DSN="root:123456@tcp(宝塔的服务器地址:宝塔数据库端口)/宝塔数据库名称" -e TZ=Asia/Shanghai -v /www/wwwroot/new-api:/data calciumion/new-api:latest
# 注意数据库要开启远程访问并且只允许服务器IP访问

渠道重试

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

缓存设置方法

  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

为什么有的时候没有重试

这些错误码不会重试400504524

我想让400也重试

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

{
  "400": "500"
}

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

Midjourney接口设置文档

对接文档

Suno接口设置文档

对接文档

交流群

界面截图

image

image

image
image
image image 夜间模式
image

image
image

相关项目

Star History

Star History Chart