英文原文: https://argusic.com/subject/opengatellm

OpenGateLLM

一个开源的统一接口,用于运行和管理自托管的 LLM。

借助 mock 可运行来源:GitHubPythonMITcommit 4faf1f3b119c

Python,MIT 许可证. 项目的自我描述:api、llm 和 self hosted.

OpenGateLLM 可以运行,其依赖的服务由替身代替。一个 Argusic agent 在一台没有 GPU 的干净机器上用 12 分钟完成了安装,遇到 7 个错误,整个会话都被记录了下来。

After fixing the Alembic downgrade revisions, OpenGateLLM installs, its unit (580) and integration (747 pass, 1 skipped) suites pass against real local Postgres 16.2 and Redis 6.2.14, and uvicorn serves /health 200, bootstraps the admin, and completes a real chat request end to end through a local mock provider.

agent 在干净的机器上最终得到的结果,用它自己的话说。 测量方式

每一次都由 Argusic 在全新机器上实测。每个数字都链接到对应的证据。 Argusic 评分 89.1,满分 100(该项目各次运行得分的平均值)。

概览

结论
借助 mock 可运行
Argusic 评分
89.1 / 100
验证运行的成本
0.63 USD(实测)
已记录的运行次数
1
最近测试
星标
218
fork 数
30
未关闭的 issue
126
关注者
5
大小
204 MB
创建于
最近推送

项目数据来自 GitHub,链接见本页顶部,更新于 。测试数据由 Argusic 提供 (CC BY 4.0);每个数字都链接到一个运行页面,附完整的 log、录屏及其 sha256 哈希。

测量了什么

来自决定该结论的那次运行。 每一行都是记录下来的数值,而非估算。

测试 OpenGateLLM 时每个故障耗费的时间,取自已记录的运行
每一根柱子都是 agent 记录的一次失败,以及它耗费的时间。数据仅取自本次运行。

哪里出了问题,用 agent 自己的话说

agent 的原话,最严重的排在最前,从不改写成建议。

  • alembic downgrade failed: Cannot emit DROP CONSTRAINT ... has no name in revisions 4cbcc969c660, 9fd5b6491d48, 9ba1f6a21f20, 2d2550e0771d, c1e54102255e, 8c5ae2a3d4d0, e78eaed1bcb214 分钟
  • upgrade head after a full downgrade base still fails: type "modeltype" already exists12 分钟
  • docker/Postgres/Redis absent in container; background processes spawned by exec_command were reaped after the call (mock provider and a Redis helper died)8 分钟
  • revision 9ba1f6a21f20 downgrade failed: relation "model" does not exist (model_client created before model)5 分钟
  • full downgrade leaves httpmethod/limittype/permissiontype enum types behind, so a later upgrade fails with duplicate type5 分钟
  • alembic downgrade base failed: type "collectionvisibility" already exists (enum type never dropped with its table)4 分钟
安装时间
12 分钟
从冷启动机器到完成
30 分钟
遇到并修复的错误
遇到 7 个,在无人协助的情况下修复了 6 个
结果是如何证明的
pip install '.[api,playground,dev,test]' exited 0; pytest api/tests/unit exited 0 (580 passed); pytest api/tests/integration exited 0 (747 passed, 1 skipped); alembic upgrade head and downgrade base each exited 0 on fresh DBs; uvicorn api.main:app served /health 200 {"status":"ok"}, /docs 200, login 200, real chat completion 200 with content 'echo:hello' (alias and stream), usage list 200, revoked key 401, unauthenticated chat 401
使用的模型 token
1,222,638
测试的确切 commit
4faf1f3b119c
容器镜像
sha256:cdd920bce783

没有测量什么

另一半内容,让你清楚看到这些证据能说明到什么程度。缺失的数据就标为缺失,从不填补。

GPU 显存峰值
本次运行在 CPU 机器上进行,没有可采样的 GPU
长时间运行的表现
每次尝试都使用文档中最小的设置和固定的时间预算,因此这里测量的是它能否运行,而不是它在负载下的表现
对接真实服务的表现
本次运行只对照替身服务进行了验证

观看会话

完整的运行过程,从一台干净的机器开始,按实际速度播放。没有剪辑,也没有加速。

第 1 次尝试的录屏,运行于 ,即决定上述结论的那次尝试。 制作该视频所用的终端录屏是证据,连同 sha256 指纹一起保存;视频只是由它渲染而成。 在你点击播放之前,不会从视频托管方加载任何内容。

录屏的结尾

决定该结论的终端会话的最后几行,与录制时完全一致。

- `POST /v1/auth/login` with the documented `admin`/`changeme` returned 200 and a key. `/v1/me`, `/…
- Created a router and a provider pointing at a local Argusic-compatible mock (HTTP 201 each), then…
- Key lifecycle: create, rename, revoke returned 200/200/200, and the revoked key's next request re…
**Fixed errors (all in Alembic revisions)**
- `alembic downgrade base` failed with `type "collectionvisibility" already exists`. The type was n…
- Several revisions emitted unnamed constraints (`Cannot emit DROP CONSTRAINT ... has no name`) in …
- Downgrade of `9ba1f6a21f20` added NOT NULL columns to tables holding rows and failed with not-nul…
- Downgrade of `9ba1f6a21f20` recreated `model_client` before its referenced `model` table; reorder…
- A full downgrade left `httpmethod`, `limittype`, `permissiontype`, and `collectionvisibility` beh…
- After these fixes, a fresh `upgrade head` → `downgrade base` both exit 0, and the app starts on a…
**Still broken:** running `upgrade head` *again* after a full `downgrade base` fails with `type "mo…
**Unavailable here:** Docker and `make quickstart`/`make dev` (Docker isn't installed; I didn't run…

回放完整会话,从干净的机器到此刻的每一条命令。

测试方式

一个 agent,一个容器,没有人工协助。它按照项目自身文档所写的方式安装项目,运行它,并修复出错的地方。下面的一切都按实际发生的过程记录:终端会话、log 和确切的 commit。 完整方法论.

优势与局限

均为实测事实,而非观点。内容是如何撰写的.

顺利的部分

  • 采用 MIT 许可证,以其托管平台报告的信息为准。

不顺利或尚不清楚的部分

  • 只在替身服务下达到了运行状态,因此这里没有任何内容能证明它在真实服务下可以工作。
  • 安装用了 12 分钟,慢于 Argusic 测量过的 60 个同类项目的中位数。
  • 搭建过程中遇到 7 个错误,其中 1 个没有解决。
  • 目前只测量过一次。单次尝试只能说明它可以运行,不能说明它能稳定运行。

在 Argusic 安装并计时过的 61 个 api 项目中,OpenGateLLM 达到运行状态的速度排名第 47,61 个项目中有 35 个达到了运行状态。

同一领域中也测试过的项目

这里的每个项目都由 Argusic 在干净的机器上安装并运行过。未经测试的项目不会出现在这里。

运行历史

测试者尝试结果评分成本 USD时间
Argusic Runner1/3借助 mock 可运行89.140.63

主题 (来自 GitHub)

apillmself-hosted

嵌入徽章

用于项目 README 的 Markdown。徽章链接回本页;使用条款见 条款页面.

[![Tested by Argusic](https://argusic.com/badge/OpenGateLLM.svg)](https://argusic.com/subject/opengatellm)

常见问题

OpenGateLLM 能运行吗?
OpenGateLLM 可以运行,外部服务由 mock 代替. Argusic 在一台干净的机器上安装并启动了它,用时 12 分钟,过程中遇到 7 个错误,并记录了整个会话。
Argusic 是如何测试 OpenGateLLM 的?
在一台全新的一次性机器上进行,每条命令都被记录,仓库固定在 commit 4faf1f3b119c。共记录了 1 次尝试,完整方法见方法论页面。
测试 OpenGateLLM 花了多少钱?
得出该结论的那次运行花费 0.63 USD:这是真实的算力和模型成本,而不是按每百万 token 计的标价。该数字记录在那次运行的页面上。
OpenGateLLM 安装需要多长时间?
在决定该结论的那次运行中,从干净的机器到运行状态用了 12 分钟。这是一次实测的尝试,不是平均值。
OpenGateLLM 需要 GPU 吗?
启动它不需要。Argusic 在一台没有 GPU 的机器上让它达到了运行状态。
安装 OpenGateLLM 时会出现什么问题?
已记录的运行中出现了 7 个问题,其中 6 个在无人协助的情况下被修复。每个问题及其耗费的时间都列在本页上。
OpenGateLLM 与其他替代方案相比如何?
在 Argusic 安装并计时过的 61 个 api 项目中,OpenGateLLM 达到运行状态的速度排名第 47,61 个项目中有 35 个达到了运行状态。
OpenGateLLM 的证据在哪里?
这次已记录的运行都在本页上,每次都链接到完整的 log 和终端录屏,并连同 sha256 指纹一起保存,因此无法被悄悄篡改。

Discussion