Skip to content

OpenAI 接口接入适配,支持千帆大模型平台、讯飞星火大模型、腾讯混元以及MiniMax、Deep-Seek,等兼容OpenAI接口,仅单可执行文件,配置超级简单,一键部署,开箱即用.

Notifications You must be signed in to change notification settings

WenTao-Love/simple-one-api

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

simple-one-api:通过标准的 OpenAI API 格式访问的各种国产大模型,开箱即用

简介

目前市面上免费的使用国产的免费大模型越来越多,one-api对于个人用起来还是有点麻烦,就想要一个不要统计、流量、计费等等的适配程序即可。

还有一点是:即使有些厂商说兼容openai的接口,但是实际上还是存在些许差异的!!!

simple-one-api主要是解决以上2点,旨在兼容多种大模型接口,并统一对外提供 OpenAI 接口。通过该项目,用户可以方便地集成和调用多种大模型,简化了不同平台接口差异带来的复杂性。

免费大模型列表

大模型 免费版本 控制台(api_key等) 文档地址 备注
讯飞星火大模型 spark-lite 链接 链接 tokens:总量无限
QPS:2
有效期:不限
百度千帆大模型平台 yi_34b_chat, ERNIE-Speed-8K, ERNIE-Speed-128K, ERNIE-Lite-8K, ERNIE-Lite-8K-0922, ERNIE-Tiny-8K 链接 链接 Lite、Speed-8K:RPM = 300,TPM = 300000
Speed-128K:RPM = 60,TPM = 300000
腾讯混元大模型 hunyuan-lite 链接 链接 限制并发数为 5 路
Cloudflare Workers AI 所有模型 链接 链接 免费可以每天使用1万次,一个月可以30万次;测试版本本的模型无限制

备注信息

功能

更新日志

查看 CHANGELOG.md 获取本项目的详细更新历史。

文本生成

支持多种大模型:

如果兼容OpenAI的接口,那么直接就可以使用了。

安装

源码安装

  1. 克隆本仓库:

    git clone https://github.com/fruitbars/simple-one-api.git
  2. 编译程序:

    chmod +x build_windows.sh
    chmod +x build_linux.sh
    chmod +x build_macos.sh

    对于不同的平台可以执行不同的脚本

    ./build_windows.sh           # 普通编译
    ./build_windows.sh --rebuild # 全量重新编译
    
    ./build_linux.sh           # 普通编译
    ./build_linux.sh --rebuild # 全量重新编译
    
    ./build_macos.sh           # 普通编译
    ./build_macos.sh --rebuild # 全量重新编译
  3. 配置你的模型服务和凭证:

    config.json 文件中添加你的模型服务和凭证信息,参考下文的配置文件说明。

直接下载

前往Releases页面

使用方法

直接启动

./simple-one-api [config](可选项,默认为config.json)

Docker 启动

以下是如何使用 Docker 部署 simple-one-api 的步骤: 运行 使用以下命令运行 Docker 容器,同时挂载你的配置文件 config.json

docker run -d -p 9090:9090 -v /path/to/config.json:/app/config.json fruitbars/simple-one-api

请确保将 /path/to/config.json 替换为 config.json 文件在你主机上的绝对路径。

查看容器日志 你可以使用以下命令查看容器的日志输出:

docker logs -f <container_id>

其中,<container_id> 是容器的 ID,可以通过 docker ps 命令查看。

nohup启动

使用提供的nohup_manage_simple_one_api.sh脚本

  • 启动:
./nohup_manage_simple_one_api.sh start
  • 停止:
./nohup_manage_simple_one_api.sh stop
  • 重启:
./nohup_manage_simple_one_api.sh restart

使用 systemd 服务

您也可以使用我们提供的脚本 install_simple_one_api_service.sh 来设置服务。首先,您需要在脚本中指定应用的工作目录:

WORKING_DIRECTORY="/path/to/your/application"

接着,为脚本文件设置执行权限,并执行安装:

chmod +x install_simple_one_api_service.sh
./install_simple_one_api_service.sh

安装完成后,您可以通过以下 systemd 命令来管理服务:

  • 启动服务:
sudo systemctl start simple-one-api
  • 停止服务:
sudo systemctl stop simple-one-api
  • 重启服务:
sudo systemctl restart simple-one-api

调用 API

现在,你可以通过 OpenAI 兼容的接口调用你配置的各大模型服务。服务地址: http://host:port/v1,api-key可以任意设置

支持模型名称设置为random,后台会自动找一个"enabled": true的模型来使用。

配置文件示例

{
    "load_balancing": "first",
    "xinghuo": [
      {
        "models": ["spark-lite"],
        "enabled": true,
        "credentials": {
          "appid": "xxx",
          "api_key": "xxx",
          "api_secret": "xxx"
        }
      }
    ]
}

配置文件说明

配置文件采用 JSON 格式,以下是各字段的详细说明。

顶层字段说明

字段名 类型 说明
debug 布尔值 是否开启debug模式(gin的debug模式),默认为false
server_port 字符串 服务地址,例如:":9090"
api_key 字符串 客户端需要传入的api_key,例如:"sk-123456"
load_balancing 字符串 负载均衡策略,示例值:"first"和"random"。first是取一个enabled,random是随机取一个enabled
services 对象 包含多个服务配置,每个服务对应一个大模型平台。

services.<service> 对象数组字段说明

每个服务包含一个或多个配置项。

字段名 类型 说明
models 字符串数组 支持的模型列表。
enabled 布尔值 是否启用该配置。
credentials 对象 凭证信息,根据不同服务可能包含不同字段。
server_url 字符串 服务器 URL,有些服务需要此字段。

credentials 对象字段说明

根据不同服务,凭证信息包含不同的字段。

服务 字段名 类型 说明
讯飞星火 appid 字符串 应用 ID。
api_key 字符串 API 密钥。
api_secret 字符串 API 秘密。
百度千帆 api_key 字符串 API 密钥。
secret_key 字符串 秘密密钥。
腾讯混元 secret_id 字符串 秘密 ID。
secret_key 字符串 秘密密钥。
OpenAI api_key 字符串 API 密钥。
MiniMax group_id 字符串 组 ID。
api_key 字符串 API 密钥。

示例配置文件

以下是一个完整的配置示例,涵盖了多个大模型平台和不同模型:

{
  "server_port":":9090",
  "load_balancing": "first",
  "services": {
    "qianfan": [
      {
        "models": ["yi_34b_chat", "ERNIE-Speed-8K", "ERNIE-Speed-128K", "ERNIE-Lite-8K", "ERNIE-Lite-8K-0922", "ERNIE-Tiny-8K"],
        "enabled": true,
        "credentials": {
          "api_key": "xxx",
          "secret_key": "xxx"
        }
      }
    ],
    "xinghuo": [
      {
        "models": ["spark-lite"],
        "enabled": true,
        "credentials": {
          "appid": "xxx",
          "api_key": "xxx",
          "api_secret": "xxx"
        },
        "server_url": "ws://spark-api.xf-yun.com/v1.1/chat"
      }
    ],
    "hunyuan": [
      {
        "models": ["hunyuan-lite"],
        "enabled": true,
        "credentials": {
          "secret_id": "xxx",
          "secret_key": "xxx"
        }
      }
    ],
    "openai": [
      {
        "models": ["deepseek-chat"],
        "enabled": true,
        "credentials": {
          "api_key": "xxx"
        },
        "server_url": "https://api.deepseek.com/v1"
      }
    ],
    "minimax": [
      {
        "models": ["abab6-chat"],
        "enabled": true,
        "credentials": {
          "group_id": "xxx",
          "api_key": "xxx"
        },
        "server_url": "https://api.minimax.chat/v1/text/chatcompletion_pro"
      }
    ]
  }
}

FAQ

如何设置一个对外的apikey?

可以通过api_key字段来设置

{
    "api_key":"123456",
    "load_balancing": "random",
    "xinghuo": [
      {
        "models": ["spark-lite"],
        "enabled": true,
        "credentials": {
          "appid": "xxx",
          "api_key": "xxx",
          "api_secret": "xxx"
        }
      }
    ]
}

单个模型如何配置多个credentials自动负载?

以客户端选择spark-lite为例,可以按照下面这样配置,会随机credentials

{
    "api_key":"123456",
    "load_balancing": "random",
    "xinghuo": [
      {
        "models": ["spark-lite"],
        "enabled": true,
        "credentials": {
          "appid": "xxx",
          "api_key": "xxx",
          "api_secret": "xxx"
        }
      },
      {
        "models": ["spark-lite"],
        "enabled": true,
        "credentials": {
          "appid": "xxx",
          "api_key": "xxx",
          "api_secret": "xxx"
        }
      }
    ]
}

在沉浸式翻译当中怎么使用?

参考docs/在沉浸式翻译中使用simple-one-api

如何让后台模型随机使用?

load_balancing就是为自动选择模型来配置的,支持random,自动随机选一个enabledtrue的模型

{
    "api_key":"123456",
    "load_balancing": "random",
    "xinghuo": [
      {
        "models": ["spark-lite"],
        "enabled": true,
        "credentials": {
          "appid": "xxx",
          "api_key": "xxx",
          "api_secret": "xxx"
        }
      }
    ]
}

贡献

我们欢迎任何形式的贡献。如果你有任何建议或发现了问题,请通过提交 issue 或 pull request 的方式与我们联系。

About

OpenAI 接口接入适配,支持千帆大模型平台、讯飞星火大模型、腾讯混元以及MiniMax、Deep-Seek,等兼容OpenAI接口,仅单可执行文件,配置超级简单,一键部署,开箱即用.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 90.6%
  • Shell 8.9%
  • Dockerfile 0.5%