Skip to content

xinghanxu666/tx-api

 
 

Repository files navigation

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-4v,glm-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,关闭后将不会更新任务进度。

部署

部署要求

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

为什么有的时候没有重试

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

我想让400也重试

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

{
  "400": "500"
}

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

Midjourney接口设置文档

对接文档

Suno接口设置文档

对接文档

交流群

界面截图

image

image

image
image
image image 夜间模式
image

image
image

相关项目

Star History

Star History Chart

About

基于One API的三次开发版本

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 60.7%
  • JavaScript 38.6%
  • Python 0.2%
  • CSS 0.2%
  • Shell 0.1%
  • Dockerfile 0.1%
  • Other 0.1%