【开源】lens | 目标是打造最强的个人LLM聚合网关系统

2026-04-29 08:131阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

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

  • 我的帖子已经打上 开源推广 标签:
  • 我的开源项目完整开源,无未开源部分:
  • 我的开源项目已链接认可 LINUX DO 社区:
  • 我帖子内的项目介绍,AI生成、润色内容部分已截图发出:
  • 以上选择我承诺是永久有效的,接受社区和佬友监督:

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


引言

事实上,为个人打造的LLM聚合网关系统已经有很多,例如octopus,metapi等,究竟要不要重复造一个轮子让我思考了很久。

最终,如你所见,lens还是诞生了。

所以,当前的开源系统肯定没有lens想要做的样子,总结一下,我有以下鄙见:

lens没有多个协议互转功能

因为都26年了,能调用llm api的软件理应都具有每个广商的协议调用。

但是lens却保留了两条我认为真正有价值的单向转换

  • chat->response

  • chat->anthropic

首先我们都知道,response是Agent时代更推荐的协议,而很多newapi站点的模型仅提供了chat,我很喜欢response的多步输出,能够让我知道它是否活着,要是网不好,chat很容易造成什么都没有,现在我在codex/cherry studio总是使用着response。其次需要chat->anthropic功能,那就是为了能够在cc使用了,这个道理就不用多说了。

lens 更轻,因为它只想做网关

构造lens的理念就是觉得现有的系统过于冗余,lens只是想成为API 网关或者说得更大的范围就是ai infra路由中的一层,因此未来的更新都将围绕这方面进行更新,而站点,账号导入等功能不是lens想要包含的内容。

我觉得通过各种工具的组合会胜过统一集合体,毕竟也有人不需要这样的功能。

谁说python就不能在光里做英雄!

看到太多的go,ts,rust项目了。呜呜,python也想说自己可以,大部分推理框架例如vLLM、SGLang都是python写的,写的聚合项目速度再怎么快,上游也不给力啊,何况项目定位的是个人使用,简简单单的高并发python也是可以的,所以你可以把lens看成python版的个人api聚合网关~

如果你也希望有一个轻量化工具,那就快来https://github.com/dyedd/lens看看吧。

功能

现在来总结一下lens的功能:

  • 上游渠道管理,只要上游支持OpenAI ChatOpenAI ResponsesAnthropicGemini那就可以聚合。还可以在这里对请求内容进行参数覆盖和请求头增加,可以强制在cc启动某些参数,方便国产模型和国外模型的迁移。

  • 模型组管理,在这个组合,你需要规范化模型名称,应该通过这个对外保留名称和生成模型价格。当然,我还实现了模型路由功能,例如把opus的请求全路由到kimi去。

  • 路由策略,目前仅做了轮询和故障转移的功能。

  • 协议入口,我觉得模型用什么协议是需要人为固定的, 因为还存在2个协议转换功能,所以例如anthropic协议的模型也是可以把chat加入。

  • 网关 API Key

  • 请求日志

  • Token 和成本统计

  • 一些定时任务,例如更新价格,清空日志等等

  • 配置备份迁移

界面如下所示,总体设计看起来简约清爽。

多图预览警告

image1910×873 81.7 KB
image1910×873 53.7 KB
image1910×873 73 KB
image1910×873 93.1 KB
image1910×873 152 KB
image1910×873 94.2 KB
image1910×873 54.6 KB
image1910×873 38.4 KB
image1910×873 49.9 KB
image1910×873 57.2 KB

部署

在目录放置 docker-compose.yml.env两个文件即可:

mkdir lens cd lens curl -fsSLO https://raw.githubusercontent.com/dyedd/lens/main/docker-compose.yml curl -fsSLO https://raw.githubusercontent.com/dyedd/lens/main/.env.example cp .env.example .env

启动前请编辑 .env,至少修改 LENS_AUTH_SECRET_KEY

如果需要修改数据目录,那就改 volumes 左侧的宿主机路径,右侧 /app/data 保持不变:

volumes: - ./data:/app/data

最后,拉取并启动线上镜像:

docker compose pull docker compose up -d

更多的部署方案可以看项目的README。

更多的使用方法也可以看项目的README,就不再多余阐述了。

厚言

为什么要把这个项目成为lens呢,lens的翻译是透镜/镜片,我们可以拿着镜片将各种光给聚合在一起~这和项目的含义不谋而合。

感谢你读到了这里,欢迎使用我的项目!

地址:GitHub - dyedd/lens: 为个人打造的最强大模型(LLM)API聚合系统 · GitHub

网友解答:
--【壹】--:

cpa里也可以配置claude api和openai api,功能也非常完善


--【贰】--:

是的,我就是觉得好多功能用不上,所以又造了下项目


--【叁】--:

是的,现在有很多功能丰富又强大的系统,但是这些系统说实话很多功能用不上,这个项目打不过,但是如果有人需要一个轻量的系统,比如不需要Axonhub的用户系统,那就有使用的需求啦。


--【肆】--:

挺好的,插眼支持一下,说不定哪天来用一用


--【伍】--:

cpa 主要是用于自己有多个账号反代出来用的,这个项目主要是管理渠道用的


--【陆】--: dyedd:

response是Agent时代更推荐的协议,

response确实是需要的,chat也需要。


--【柒】--:

请问这种和cli proxy api有什么区别?cpa也可以聚合多个供应商的API


--【捌】--:

我就是看上了Axonhub的多格式互转的功能,才基于这个项目做了HUB站


--【玖】--:

颜值党没有图片。犹犹豫豫啊。等待大家分享


--【拾】--:

第一点是有的,我没有截图,点击日志详情就能看到。
image1232×686 73.8 KB
第二点的话,不敢做,很多站点是禁止测活的,把号封了就得不尝失了,所以我替代成可以在渠道组页面,看到健康状态,这个健康状态的可视化能看到过去1小时的请求有没有问题,然后如果模型组的策略选择故障转移,会把健康度这些指标都考虑进去的。
image681×458 27.2 KB


--【拾壹】--:

啊?newapi不支持response转其他吗?我还没地方看文档不知道支不支持


--【拾贰】--:

我现在在用的是ccload,但是作者更新后,直接没有了实时请求的展示。
可能我说明的不太清楚,就是想要有一个能够在后台直接看到当下各个key的实时请求记录,而不是请求完的记录,比如正在连接的请求也能显示出来。
第二点其实ccload也能实现,可以选择一个问题,不是普通的测活,而是相当于直接用问题发送测试请求。


--【拾叁】--:

我是用这俩协议都访问过同一模型都是能用的,不知道互转不互转的情况,没管过


--【拾肆】--:

部署了metapi和sub2api了,基本上功能溢出了都,看看佬的项目咋样


--【拾伍】--:

看文档应该是支持的,我也没用过newapi,只是存在很多newapi站点只提供了chat协议。如果都提供了,我觉得都可以把协议互转功能删了,再代理一层没有必要


--【拾陆】--:

佬友,站内大佬开源的 Axonhub,可以看看哈,感觉你需要的都有了


--【拾柒】--:

可以本地直接安装依赖,然后一键启动,都在README中


--【拾捌】--:

佬,我只希望有两个功能

  1. 实时请求展示
  2. provide 及模型测试

--【拾玖】--:

只有docker吗?不准备打包本地程序吗?感觉docker麻烦了点

问题描述:

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

  • 我的帖子已经打上 开源推广 标签:
  • 我的开源项目完整开源,无未开源部分:
  • 我的开源项目已链接认可 LINUX DO 社区:
  • 我帖子内的项目介绍,AI生成、润色内容部分已截图发出:
  • 以上选择我承诺是永久有效的,接受社区和佬友监督:

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


引言

事实上,为个人打造的LLM聚合网关系统已经有很多,例如octopus,metapi等,究竟要不要重复造一个轮子让我思考了很久。

最终,如你所见,lens还是诞生了。

所以,当前的开源系统肯定没有lens想要做的样子,总结一下,我有以下鄙见:

lens没有多个协议互转功能

因为都26年了,能调用llm api的软件理应都具有每个广商的协议调用。

但是lens却保留了两条我认为真正有价值的单向转换

  • chat->response

  • chat->anthropic

首先我们都知道,response是Agent时代更推荐的协议,而很多newapi站点的模型仅提供了chat,我很喜欢response的多步输出,能够让我知道它是否活着,要是网不好,chat很容易造成什么都没有,现在我在codex/cherry studio总是使用着response。其次需要chat->anthropic功能,那就是为了能够在cc使用了,这个道理就不用多说了。

lens 更轻,因为它只想做网关

构造lens的理念就是觉得现有的系统过于冗余,lens只是想成为API 网关或者说得更大的范围就是ai infra路由中的一层,因此未来的更新都将围绕这方面进行更新,而站点,账号导入等功能不是lens想要包含的内容。

我觉得通过各种工具的组合会胜过统一集合体,毕竟也有人不需要这样的功能。

谁说python就不能在光里做英雄!

看到太多的go,ts,rust项目了。呜呜,python也想说自己可以,大部分推理框架例如vLLM、SGLang都是python写的,写的聚合项目速度再怎么快,上游也不给力啊,何况项目定位的是个人使用,简简单单的高并发python也是可以的,所以你可以把lens看成python版的个人api聚合网关~

如果你也希望有一个轻量化工具,那就快来https://github.com/dyedd/lens看看吧。

功能

现在来总结一下lens的功能:

  • 上游渠道管理,只要上游支持OpenAI ChatOpenAI ResponsesAnthropicGemini那就可以聚合。还可以在这里对请求内容进行参数覆盖和请求头增加,可以强制在cc启动某些参数,方便国产模型和国外模型的迁移。

  • 模型组管理,在这个组合,你需要规范化模型名称,应该通过这个对外保留名称和生成模型价格。当然,我还实现了模型路由功能,例如把opus的请求全路由到kimi去。

  • 路由策略,目前仅做了轮询和故障转移的功能。

  • 协议入口,我觉得模型用什么协议是需要人为固定的, 因为还存在2个协议转换功能,所以例如anthropic协议的模型也是可以把chat加入。

  • 网关 API Key

  • 请求日志

  • Token 和成本统计

  • 一些定时任务,例如更新价格,清空日志等等

  • 配置备份迁移

界面如下所示,总体设计看起来简约清爽。

多图预览警告

image1910×873 81.7 KB
image1910×873 53.7 KB
image1910×873 73 KB
image1910×873 93.1 KB
image1910×873 152 KB
image1910×873 94.2 KB
image1910×873 54.6 KB
image1910×873 38.4 KB
image1910×873 49.9 KB
image1910×873 57.2 KB

部署

在目录放置 docker-compose.yml.env两个文件即可:

mkdir lens cd lens curl -fsSLO https://raw.githubusercontent.com/dyedd/lens/main/docker-compose.yml curl -fsSLO https://raw.githubusercontent.com/dyedd/lens/main/.env.example cp .env.example .env

启动前请编辑 .env,至少修改 LENS_AUTH_SECRET_KEY

如果需要修改数据目录,那就改 volumes 左侧的宿主机路径,右侧 /app/data 保持不变:

volumes: - ./data:/app/data

最后,拉取并启动线上镜像:

docker compose pull docker compose up -d

更多的部署方案可以看项目的README。

更多的使用方法也可以看项目的README,就不再多余阐述了。

厚言

为什么要把这个项目成为lens呢,lens的翻译是透镜/镜片,我们可以拿着镜片将各种光给聚合在一起~这和项目的含义不谋而合。

感谢你读到了这里,欢迎使用我的项目!

地址:GitHub - dyedd/lens: 为个人打造的最强大模型(LLM)API聚合系统 · GitHub

网友解答:
--【壹】--:

cpa里也可以配置claude api和openai api,功能也非常完善


--【贰】--:

是的,我就是觉得好多功能用不上,所以又造了下项目


--【叁】--:

是的,现在有很多功能丰富又强大的系统,但是这些系统说实话很多功能用不上,这个项目打不过,但是如果有人需要一个轻量的系统,比如不需要Axonhub的用户系统,那就有使用的需求啦。


--【肆】--:

挺好的,插眼支持一下,说不定哪天来用一用


--【伍】--:

cpa 主要是用于自己有多个账号反代出来用的,这个项目主要是管理渠道用的


--【陆】--: dyedd:

response是Agent时代更推荐的协议,

response确实是需要的,chat也需要。


--【柒】--:

请问这种和cli proxy api有什么区别?cpa也可以聚合多个供应商的API


--【捌】--:

我就是看上了Axonhub的多格式互转的功能,才基于这个项目做了HUB站


--【玖】--:

颜值党没有图片。犹犹豫豫啊。等待大家分享


--【拾】--:

第一点是有的,我没有截图,点击日志详情就能看到。
image1232×686 73.8 KB
第二点的话,不敢做,很多站点是禁止测活的,把号封了就得不尝失了,所以我替代成可以在渠道组页面,看到健康状态,这个健康状态的可视化能看到过去1小时的请求有没有问题,然后如果模型组的策略选择故障转移,会把健康度这些指标都考虑进去的。
image681×458 27.2 KB


--【拾壹】--:

啊?newapi不支持response转其他吗?我还没地方看文档不知道支不支持


--【拾贰】--:

我现在在用的是ccload,但是作者更新后,直接没有了实时请求的展示。
可能我说明的不太清楚,就是想要有一个能够在后台直接看到当下各个key的实时请求记录,而不是请求完的记录,比如正在连接的请求也能显示出来。
第二点其实ccload也能实现,可以选择一个问题,不是普通的测活,而是相当于直接用问题发送测试请求。


--【拾叁】--:

我是用这俩协议都访问过同一模型都是能用的,不知道互转不互转的情况,没管过


--【拾肆】--:

部署了metapi和sub2api了,基本上功能溢出了都,看看佬的项目咋样


--【拾伍】--:

看文档应该是支持的,我也没用过newapi,只是存在很多newapi站点只提供了chat协议。如果都提供了,我觉得都可以把协议互转功能删了,再代理一层没有必要


--【拾陆】--:

佬友,站内大佬开源的 Axonhub,可以看看哈,感觉你需要的都有了


--【拾柒】--:

可以本地直接安装依赖,然后一键启动,都在README中


--【拾捌】--:

佬,我只希望有两个功能

  1. 实时请求展示
  2. provide 及模型测试

--【拾玖】--:

只有docker吗?不准备打包本地程序吗?感觉docker麻烦了点