【开源推广】GateAPI——聚合中转站接口+检测模型连通性和质量

READ Books 2026-05-18 14:18 1

本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:



  • 我的帖子已经打上 开源推广 标签:

  • 我的开源项目完整开源,无未开源部分:

  • 我的开源项目已链接认可 LINUX DO 社区:

  • 我帖子内的项目介绍,AI生成、润色内容部分已截图发出:

  • 以上选择我承诺是永久有效的,接受社区和佬友监督:


以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出




仓库地址




介绍一下这个项目


之所以做这个项目是因为最近手里面攒了一堆公益站然后以及一些之前手里的中转站,然后一大堆钥匙,每次都要换来换去,虽然之前也用sub2api以及newapi来进行相关的聚合中转,但是感觉有点太重了,然后这个项目的功能大概就是,聚合所有中转站的API以及检测这些中转站的连通性和模型的质量。把各个中转站不同的接口转化成一个统一的接口,然后进行相关的数据传输。


简单讲就是把你所有中转站的API接口key填进去,它会读取你中转站key上面的所有模型,然后以及连通性,顺便还可以测试一下模型的质量。然后合成一个统一的接口,如果有相同模型的中转站可以设置权重然后轮询+粘性的使用,你也自定义权重。


也就是相当于中转A 中转B 中转C 包括你自己的渠道keys OPENAI CLAUDE 这些接口的keys 聚合在一起,做成一个排序似的轮询接口(根据自定义权重调用)


整体原理:


flowchart TB
subgraph 上游["🔑 你手里的中转站 Keys"]
A["中转站A<br/>OpenAI 协议<br/>GPT-4o / Claude Opus"]
B["中转站B<br/>Anthropic 协议<br/>Claude Opus / Sonnet"]
C["中转站C<br/>OpenAI 协议<br/>DeepSeek / GPT-4o"]
end

subgraph GateAPI["⬡ GateAPI 聚合网关"]
R["🔀 智能路由<br/>优先级 + 权重 + 自动切换"]
P["🔄 协议转换<br/>Anthropic ↔ OpenAI 自动互转"]
D["🔍 检测引擎<br/>13项探针 · 功能性检测 · 自动打分"]
K["🔐 密钥管理<br/>生成 Key · 限速 · 限额"]
end

subgraph 下游["📱 你的应用"]
APP["统一调用<br/>/v1/chat/completions<br/>一个地址搞定"]
end

A --> R
B --> R
C --> R
R --> P
P --> APP
D -.->|检测上游质量| R
K -.->|鉴权| APP

请求处理流程:


flowchart LR
用户请求 --> 认证["① 认证<br/>验证 API Key"]
认证 --> 路由["② 路由<br/>按优先级+权重<br/>选最优渠道"]
路由 --> 转发["③ 转发<br/>协议转换<br/>HTTP/SSE"]
转发 --> 判断{成功?}
判断 -->|✅| 返回响应
判断 -->|❌ 429/500| 重试["重试<br/>换下一个渠道"]
重试 --> 转发

检测引擎原理:


flowchart TB
触发["触发检测"] --> B1

subgraph B1["第1轮:基础探针"]
数学 & 逻辑 & 代码 & 知识 & 身份识别 & Token用量 & TTFT
end

subgraph B2["第2轮:一致性"]
温度一致性 & 长上下文记忆
end

subgraph B3["第3轮:指纹"]
Logprobs熵分析 & Tokenizer指纹["Tokenizer 指纹<br/>52模型实测数据库"]
end

B1 --> B2 --> B3 --> 评分["加权评分 0-100<br/>S/A/B/C 等级"]

上面大概就是运行原理,很多细节就不补充了,可以看一下仓库的README。

第一次发开源项目,肯定还有不少粗糙的地方。大家随便提意见,Issue 和 PR 都欢迎。


部署





技术栈很轻量:Node.js 18+,三个依赖(Express + better-sqlite3 + cors),SQLite 存储,不需要装 MySQL。

附带几个项目截图,项目比较小,运行内存30M左右







最新回复 (19)
  • Joel Stodolski 05-18 14:28
    1

    之前写过类似的,但个人感觉 nodejs 不适合做这个,资源占用太高了!在部署的时候打满的话,小鸡顶不住。。

  • READ Books 楼主 05-18 14:30
    2

    我这边跑的占用没有那么高,自己用的话也就几十MB,我跑Hermes用的4bot协同,如果是大型中转那种emmm确实扛不住

  • Joel Stodolski 05-18 14:33
    3

    个人后续评估的话,我个人认为设计一个类似 sub2api、newapi 这种站的 前置/后置的智能评估/调控更好(sub2api 那些原本的策略是真的不好用)

  • READ Books 楼主 05-18 14:36
    4

    一开始也是这样计划的,但是感觉太重了,所以想做个轻量的 ^-^

  • Joel Stodolski 05-18 14:37
    5

    大概的思路是,不主动做中转。只监控每次请求的耗时、连通性、质量等等。通过这些数据来根据已有的策略智能的去调控现有的 newapi、sub2api某个渠道的优先级、启用/禁用等等

  • Joel Stodolski 05-18 14:39
    6

    反而我觉得主动去做中转才是太重了!毕竟要做的东西太多了!例如:优化缓存、支持远程压缩上下文、反代等等!如果只是监控并控制这些已有项目的话,这样更像是增强/辅助。并不会说重复造轮子

  • READ Books 楼主 05-18 14:40
    7

    佬友的这个思路确实很好,而且也很轻量,其实现在内置也加了一些策略在里面根据响应以及连通质量做相关的权重排序然后来调用。

  • Joel Stodolski 05-18 14:42
    8

    其实现在内置也加了一些策略在里面根据响应以及连通质量做相关的权重排序然后来调用。



    主要是我认为任何的内置策略都无法满足所有的情况和需求,在现有的 newapi、sub2api 这种站内要做自定义策略/编排的话,那个工作量又太大很容易陷入维护地狱,那只能是分离/外挂了。

  • READ Books 楼主 05-18 14:44
    9

    是这样,策略是死的,根据实际情况波动不能准确分析,更不能说再去加一个AI让它自己判定这种东西,哈哈,佬友提到的建议以及思路,我再研究一下,细致打磨打磨 ^-^

  • 喵帕丝 05-19 10:04
    10

    对于公益站可能不太合适,因为很多佬都对于批量测活是禁止的,先支持一下吧,确实能解决很多痛点需求,只可惜公益站不太适合。

  • Lucifer Morningstar 05-19 23:10
    11

    佬友有了解过metapi吗?这个项目也包含了你的这些功能,获取可以去借鉴一下

  • huangsheng 05-19 23:15
    12

    这样下来,模型响应时间会不会太久呢

  • denvey 05-19 23:22
    13

    这个好呀,之前还想自己做个的呢,先试试佬的 ^-^

  • denvey 05-19 23:23
    14

    metapi用过,但是我没用明白 ^-^

  • zhouzhou2 05-20 00:08
    15

    佬,现在有开源的项目做这个吗?自动调整某个渠道的优先级,这个真是完全的戳中了我的需求(不过sub2api的优先级设置了以后貌似不太灵)

  • Lucifer Morningstar 05-20 11:12
    16

    然后可以考虑用go语言重构下(丢给ai),发布release版本,这样就能够实现最大化的实用

  • nucleus 05-20 11:13
    17

    不错啊,虽然没有这种需求,但是感觉理念挺好

  • Brisbane 05-24 00:49
    18

    我感觉大佬的项目和 cch 和 ccg gateway 这两个项目很像

  • Vahiru 05-26 22:07
    19

    感谢佬友最近正巧有对应的需求,帮大忙了

* 帖子来源Linux.do
返回