simple-one-api

simple-one-api

多模型统一接口的国产大语言模型适配工具

simple-one-api是一个开源项目,通过标准OpenAI API格式统一访问多种国产大语言模型。支持讯飞星火、百度千帆、腾讯混元等多个免费模型,解决了不同平台接口差异问题。项目特点包括多模型配置、API密钥负载均衡和模型名称重定向,为开发者提供统一便捷的大模型调用方式。

国产大模型OpenAI APIsimple-one-api多模型集成免费模型Github开源项目
<p align="right"> <strong>中文</strong> | <a href="./README.EN.md">English</a> </p>

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

简介

目前市面上免费可用的国产大模型越来越多,对于个人用户来说,one-api的使用还是有些麻烦。我们只需要一个不涉及统计、流量和计费等功能的简单适配程序即可。

另一个问题是:即使有些厂商声称兼容OpenAI的接口,实际上还是存在一些差异!

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

免费大模型列表

大模型免费版本免费限制控制台(api_key等)文档地址
讯飞星火大模型spark-litetokens:总量无限<br/>QPS:2<br/>有效期:不限访问链接文档查看
百度千帆大模型平台yi_34b_chat, ERNIE-Speed-8K, ERNIE-Speed-128K, ERNIE-Lite-8K, ERNIE-Lite-8K-0922, ERNIE-Tiny-8KLite、Speed-8K:RPM = 300,TPM = 300000<br/>Speed-128K:RPM = 60,TPM = 300000访问链接文档查看
腾讯混元大模型hunyuan-lite限制并发数为5路访问链接链接
Cloudflare Workers AI所有模型免费每天可使用1万次,每月30万次;测试版模型无限制访问链接文档查看
字节扣子(coze.cn)豆包·Function call模型(32K)、通义千问-Max(8K)、MiniMax 6.5s(245K)、Moonshot(8K)、Moonshot(32K)、Moonshot(128K)当前扣子API免费供开发者使用,每个空间的API请求限额如下:QPS (每秒请求数):2<br/>QPM (每分钟请求数):60<br/>QPD (每天请求数):3000访问链接文档查看
字节火山方舟doubao系列、Moonshot系列等2024年5月15日至8月30日期间,提供高达5亿tokens的免费权益访问链接文档查看
Llama Family"Atom-13B-Chat","Atom-7B-Chat","Atom-1B-Chat","Llama3-Chinese-8B-Instruct"1.每天8-22点:接口限速每分钟20次并发<br/>2.每天22-次日8点:接口限速每分钟50次并发访问链接文档查看
groqgemma-7b-it、mixtral-8x7b-32768、llama3-70b-8192、llama3-8b-8192rpm为30,rpd为14400,TOKENS PER MINUTE也有限制访问链接文档查看
Google Geminigemini-1.5-pro、gemini-1.5-flash、gemini-1.0-pro、gemini-pro-vision15RPM(每分钟请求数);100万TPM(每分钟令牌);1500RPD(每天请求数)访问链接文档查看
硅基流动Qwen2-7B-Instruct,Qwen2-1.5B-Instruct,Qwen1.5-7B-Chat,glm-4-9b-chat,chatglm3-6b,Yi-1.5-9B-Chat-16K,Yi-1.5-6B-ChatRPM限制为100,QPS限制为3,更多可申请访问链接文档查看

各个模型详细的申请和接入流程

为了更加方便申请和接入,我们也整理了各个模型的接入指南,可以查阅:

接入使用

社群小伙伴反馈验证可用的客户端

功能

文本生成

支持多种大模型:

如果兼容某个已经支持OpenAI的接口,那么可以在simple-one-api中直接使用。参考文档docs/兼容OpenAI模型协议接入指南.md

支持的功能

  • 支持配置多个模型,可以随机负载均衡
  • 支持一个模型可配置多个api_key,并且可以随机负载均衡
  • 支持设置一个对外总api_key
  • 支持random模型,后台自动寻找配置的可用的模型
  • 支持模型名称重定向设置模型别名
  • 支持全局设置模型名称重定向,并且支持all模式全部重定向
  • 支持每一种模型服务设置服务的地址
  • 兼容支持OpenAI的接口,同时支持/v1和/v1/chat/completions两种路径
  • 对于不支持system的模型,simple-one-api会将其放到第一个prompt中直接兼容(更加统一,例如沉浸式翻译中如果使用system,不支持system的模型也能正常调用)
  • 支持全局代理模式
  • 支持每个service设置qps或qpm或者concurrency
  • 支持/v1/models/v1/models/:model接口

更新日志

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

交流群

<img src="https://yellow-cdn.veclightyear.com/835a84d5/20aa8ef7-65c6-451f-ba59-a68f7d29ef95.jpg" alt="交流群" style="zoom: 50%;" />

安装

源码安装

  1. 克隆本仓库:
git clone https://github.com/fruitbars/simple-one-api.git

快速编译使用

首先确保你已经安装了go,版本需要是1.21以上,具体安装教程参考官网地址:https://go.dev/doc/install 可以通过go version查看go的版本。

linux/macOS

chmod +x quick_build.sh ./quick_build.sh

将会在当前目录生成simple-one-api

Windows 双击quick_build.bat执行

quick_build.bat

将会在当前目录生成simple-one-api.exe

交叉编译不同平台版本

有时需要编译不同平台的版本,比如windows、linux、macOS; 确保安装好go之后,执行build.sh

chmod +x build.sh ./build.sh

会自动编译出对于以上3种平台不同架构的可执行文件,生成在build目录中。

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

直接下载

前往Releases页面

使用方法

直接启动

默认读取和simple-one-api相同目录下的config.json启动

./simple-one-api

如果想指定config.json的路径,可以这样启动

./simple-one-api /path/to/config.json

Docker 启动

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

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

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

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

docker logs -f simple-one-api

docker logs -f <container_id>

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

Docker Compose 启动步骤

  1. 配置文件:在docker-compose.yml中首先确保你已经将你的 config.json 文件的路径替换成了正确的绝对路径。
  2. 启动容器: 使用 Docker Compose 启动服务,你可以在包含 docker-compose.yml 文件的目录下运行以下命令:
    docker-compose up -d
    这个命令会在后台启动 simple-one-api 服务。

其他查看命令参考docker-compose的文档。

其他启动方式

其他启动方式:

调用 API

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

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

配置文件示例(以讯飞星火spark-lite为例)

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

其他模型的配置文件示例可以参考:https://github.com/fruitbars/simple-one-api/tree/main/samples

配置文件在线生成

感谢来自社群小伙伴提供在线生成配置

https://simple-one-api-ui.vercel.app/

配置文件说明

参考文档:config.json详细说明

各个厂商详细的配置说明:https://github.com/fruitbars/simple-one-api/tree/main/docs

各个厂商详细的示例config:https://github.com/fruitbars/simple-one-api/tree/main/samples

比较完整的配置文件示例

具体文档查看config.json详细说明.md,以下是一个完整的配置示例,涵盖了多个大模型平台和不同模型:

{ "server_port":":9090", "load_balancing": "random", "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" } ] } }

常见问题

如何在沉浸式翻译中使用?

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

是否支持并发限制?

详细文档请查看config.json详细说明.md

以下是一个配置示例,针对免费的讯飞星火spark-lite模型,由于其有2qps限制,可以这样设置:

{ "server_port": ":9090", "debug": false, "load_balancing": "random", "services": { "xinghuo": [ { "models": ["spark-lite"], "enabled": true, "credentials": { "appid": "xxx", "api_key": "xxx", "api_secret": "xxx" }, "limit": { "qps":2, "timeout": 10 } } ] } }

如何设置代理

从v0.9.1版本开始,更新了代理设置方式,现在每个服务都支持独立代理设置。 请参考文档《simple‐one‐api代理配置说明

如何设置对外的apikey?

可以通过api_key字段来设置,如下所示:

{ "api_key":"123456", "load_balancing": "random", "services": { "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", "services": { "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" } } ] } }

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

load_balancing字段就是为自动选择模型而设置的,支持random选项,会自动随机选择一个enabledtrue的模型:

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

Star历史

Star历史图表

贡献

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

编辑推荐精选

问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

下拉加载更多