webllm-gateway
Health Uyari
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 6 GitHub stars
Code Gecti
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
WebLLM Gateway:让 Qwen/DeepSeek 网页模型接入 OpenAI/Anthropic 兼容 Agent 工具链,支持 OpenClaw、Hermes、Claude Code、Codex 工具调用
WebLLM Gateway
给小龙虾(OpenClaw)、Hermes 等兼容客户端使用的网页登录模型 API 网关。
WebLLM Gateway 把 Qwen Web、DeepSeek Web 和已验证的网页登录模型包装成 OpenAI / Anthropic 兼容、可工具调用的标准 API,让小龙虾、Hermes 等客户端像调用原生模型 API 一样使用网页账号。Qwen 3.7 系列已经调通,Qwen 3.7 Max / Plus Preview 可通过 qwen-web 直连链路接入,适合养虾养马、资料整理、简单工具调用和低成本试错。
Turn web AI accounts into OpenAI/Anthropic-compatible, tool-callable APIs.
项目地址:github.com/Kriswd/webllm-gateway
一句话:登录网页登录模型账号,自动检测可用模型,把地址、Key 和模型 ID 填到小龙虾(OpenClaw)、Hermes 等兼容 OpenAI / Anthropic API 的客户端里,就能把网页模型接入轻中度工具调用工作流。
它的核心价值不是简单转发,而是把“不稳定的网页对话”整理成“可验证、可接入、可工具调用”的标准 API:
- 一键网页登录授权,自动检测真实登录态和可用模型,不要求用户手动找 cookie、bearer 或 session。
- 同时提供 OpenAI
/v1/chat/completions和 Anthropic/v1/messages,覆盖常见兼容客户端。 ToolBridgeV2将 OpenAItools/tool_calls与 Anthropictool_use/tool_result统一桥接到网页登录模型,返回标准工具调用结构。- Gateway 只做协议适配、错误修复、模型目录和登录管理,不执行本地文件、终端、浏览器或 MCP 工具;权限和副作用仍由下游客户端控制。
- Qwen direct、DeepSeek via ds2api、WebAI2API sidecar 都被抽象为 provider/runtime 能力,避免为单一客户端写临时特判。
项目本体是 Gateway:API、ToolBridge、网页登录授权、模型目录、Qwen direct 和客户端接入配置。WebAI2API 与 ds2api 不作为源码混入本仓库,只作为按需启用的外部 adapter runtime;未安装它们时,Gateway 核心服务仍可启动。
适合谁
- 正在折腾小龙虾(OpenClaw)、Hermes 或其它兼容客户端,希望把 Qwen / DeepSeek 网页模型接进标准工具调用链路。
- 已有网页登录模型账号,但不想手动抠 cookie、bearer、session token,只想打开浏览器登录后复制 API 地址和模型 ID。
- 需要 OpenAI
tools/tool_calls或 Anthropictool_use/tool_result结构,而不是只拿到网页登录模型的一段自然语言回复。 - 想用网页账号处理资料整理、信息查询、简单自动化、养虾养马这类轻中度任务,减少部分 API Token 消耗。
- 想把 ds2api / WebAI2API 这类网页登录能力整理成更清晰的 Gateway 项目,保持源码边界、许可证边界和用户数据边界。
界面预览

轻量工具调用 Demo
项目优势
- 协议稳定:优先保持 OpenAI / Anthropic 兼容响应结构,工具调用返回标准
tool_calls或tool_use,不把网页模型的自然语言幻想当成真实工具结果。 - Qwen 3.7 已就绪:Qwen 3.7 Max、Qwen 3.7 Max Preview、Qwen 3.7 Plus Preview 已纳入直连模型目录和回归验证,适合在小龙虾、Hermes 等兼容客户端里做轻中度工具调用和低成本试错。
- 边界清楚:Gateway 不接管 agent loop、不执行本地工具、不绕过客户端权限系统;复杂工程、长时间多轮编程和强可靠交付不作为当前主卖点。
- 可对标验证:DeepSeek 链路以 ds2api 作为外部 oracle 对照;Qwen 链路持续用真实请求和 parity/oracle 测试回归。
- 面向小白:前端优先展示授权、模型检测、接入地址、API Key 和模型 ID;高级 adapter runtime 页面只作为诊断入口。
- 可开源维护:第三方 runtime 不混入源码树,许可证边界、敏感数据边界和发布检查写在文档里。
支持作者
如果 WebAI Gateway 帮你少踩坑,可以通过作者的小店支持,有稳定可靠有质保的plus成品账号、Claude代充等,欢迎选购。
支持作者 / 服务咨询。交流群:1105908706。
免责声明
本项目仅供学习、研究和本地技术验证使用,不提供任何官方模型服务、账号服务或规避平台限制的保证。
WebLLM Gateway 不是 OpenAI、Anthropic、Qwen、DeepSeek、ChatGPT、WebAI2API 或 ds2api 的官方项目,也不代表这些平台或项目的立场。使用者应自行确认并遵守所接入网站、模型服务和第三方 runtime 的服务条款、账号规则、访问限制以及所在地法律法规。
请勿将本项目用于绕过付费限制、规避风控、批量注册或滥用账号、未经授权的数据采集、攻击测试,或任何违法违规场景。因使用、部署、分发或二次开发本项目产生的账号风险、服务限制、数据合规风险或法律责任,由使用者自行承担。
启动
双击启动:
start_webai_gateway.bat
打开统一控制台:
http://127.0.0.1:8610/
停止服务:
stop_webai_gateway.bat
Docker 部署
如果希望跨 Windows / macOS / Linux 使用同一套运行方式,可以直接用 Docker Compose 启动 Gateway:
docker compose up -d --build
启动后打开:
http://127.0.0.1:8610/
Docker 版本会把 config.json、授权凭据、账号检测缓存和运行日志保存在 webai-gateway-data volume 里,不会写进镜像。首次启动会自动生成容器内配置,并把 Gateway 监听地址设为 0.0.0.0:8610,对外仍通过 http://127.0.0.1:8610/ 访问。
WebAI2API / ds2api 仍然是可选第三方 adapter runtime,不会被混入本项目镜像。docker-compose.yml 默认通过 host.docker.internal 访问宿主机上的:
http://host.docker.internal:8500/v1
http://host.docker.internal:9331/v1
如果这两个 runtime 跑在别的机器或别的容器里,请修改 WEBAI_UPSTREAM_BASE_URL 和 WEBAI_DEEPSEEK_DS2API_BASE_URL。网页登录授权推荐在宿主机启动带 CDP 的 Chrome / Edge,再让容器访问 http://host.docker.internal:9222;WEBAI_DEFAULT_CDP_URL 已在 compose 中给出默认值。
Windows 宿主机可参考:
& "C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-address=0.0.0.0 --remote-debugging-port=9222 --user-data-dir="$env:TEMP\webai-gateway-cdp"
更多安装、依赖和启动排障见 docs/installation.md。
登录授权
打开统一控制台后,先进入“网页登录向导”:
- 首页默认只展示当前已经实际验证可用的网页登录通路,避免把未验证站点当成可用产品能力。
- DeepSeek Web、Qwen / 通义千问国际版、Qwen Coder:点击“打开授权浏览器”,在弹出的浏览器里登录。网关检测到真实登录态后才会显示已授权。
- NAS、Docker 或远程机器部署时,推荐在你正在使用的电脑上启动带 CDP 的 Chrome / Edge,把控制台里的 CDP 地址改成
http://电脑IP:9222后再检测登录态;如果你拿到的是包含cookie、bearer、session_token等凭据的授权回调 URL,也可以点“远程/NAS 授权”粘贴导入。普通登录页 URL 不包含登录态,Gateway 会明确拒绝并提示改用远程 CDP。 - ChatGPT:通过可选 WebAI2API adapter runtime 接入图片生成;点击“登录或修复账号”后 Gateway 会自动准备隔离 worker,完成网页登录授权并恢复 API 后即可检测和调用已验证模型,不需要手动进入外部后台配置工作池。
- 授权完成后,在“可用模型”里复制模型 ID,填到小龙虾(OpenClaw)、Hermes 或其它兼容客户端。
- “接入客户端”区域可以复制 OpenAI / Anthropic 兼容地址和 API Key,也可以重新生成本地网关令牌。
Gateway 首页优先展示统一接入、状态、授权和复制配置。外部 adapter runtime 的状态概览、工作池、浏览器、缓存、日志、请求历史和接口测试页面只保留为高级诊断入口,不作为主产品界面。
文档索引
- 安装和单入口启动:docs/installation.md
- 图片生成:docs/media-generation.md
- 可选 adapter runtime 说明:docs/third-party-runtime.md
- 架构和边界:docs/architecture.md
- 贡献规范:CONTRIBUTING.md
- 安全策略:SECURITY.md
- 第三方声明:NOTICE.md
- 第三方许可证清单:THIRD_PARTY_NOTICES.md
工具调用适配层
默认启用 ToolBridgeV2 严格模式:
- 下游客户端可以按原生 OpenAI
tools/tool_choice/tool_calls调用。 - 网关不会把原生
tools发送给网页登录模型,而是注入严格的tool_json协议提示。 - 模型需要工具时只能输出一个 fenced
tool_json块,结构为{ "calls": [{ "id", "name", "input" }] }。 - 网关校验工具名、参数对象、重复 ID、调用数量,并把合法输出转换成标准
tool_calls。 - JSON 损坏时会自动发起一次 repair;仍失败时返回诊断头
x-webai-tool-bridge-error。 - OpenAI
role=tool或 Anthropictool_result会转换成网页登录模型可读的 observation 文本,过长结果会自动压缩。
网关还提供最小 Anthropic 兼容接口:
POST /v1/messages
POST /v1/messages/count_tokens
Anthropic 兼容接口支持文本、流式事件、tool_use / tool_result、x-api-key 或 Authorization: Bearer 鉴权、近似 token 计数,以及图片/文档块的标准化转换。Qwen Web 直连目前只声明文本能力;收到多模态附件时会明确拒绝,避免伪装成已经完成真实上传。
客户端配置
OpenAI 兼容客户端:
base_url = http://127.0.0.1:8610/v1
api_key = local-dev-key
model = qwen-web/qwen3.7-max-preview
Anthropic 兼容客户端可使用:
base_url = http://127.0.0.1:8610/v1
api_key = local-dev-key
model = qwen-web/qwen3.7-max-preview
endpoint = /v1/messages
默认 tool_bridge.activationPolicy=auto 会把普通问答和联网问答直接交给网页登录 provider,自带联网能力的 provider 可通过 providerRuntime.nativeWebSearchPolicy=auto 在“联网、最新、官网、网址”等问题里启用原生搜索;需要工具时再走 ToolBridgeV2。这个策略是按任务意图和 provider capability 分流,不针对某个客户端或某个模型写特判。
网关仍不会执行任何本地工具。所有 Skill 展开、MCP 调用、文件编辑、终端命令和权限确认都由下游客户端自己完成;网关只负责把网页模型输出转换成标准 tool_use / tool_calls,再把 tool_result 转回网页登录模型可理解的 observation。
推荐让客户端继续负责 agent loop、工具执行、权限确认和本地副作用;网关只负责“网页登录模型文本 ↔ 标准工具协议”的转换。
如果某类工具结果会把上下文撑爆,例如 Glob("*.md") 返回大量 node_modules、.pnpm、dist、build 路径,应优先调整通用的 tool_bridge.observationPolicy,不要为某个模型或客户端写专用分支。
网页登录模型的单次请求超时由通用 providerRuntime.requestTimeoutSeconds 控制,默认 300 秒。工具调用 JSON 一旦完整返回仍会提前结束请求,因此提高该值主要保护 /init、项目总结、长文档归纳等慢任务,不会刻意拖慢快速工具选择。
网页登录模型的输入预算由 providerRuntime.promptMaxChars 控制,默认 32000 字符。超过预算时会保留开头、WebLLM Gateway 工具协议和最后的用户任务,压缩中间的大段技能列表、规则列表或历史上下文,避免网页模型在第一轮请求里长时间无输出。
图片生成
Gateway 暴露 OpenAI-compatible 媒体接口:
POST /v1/images/generations
图片生成建议优先使用 gpt-image-2,兼容已验证的 gpt-image-1.5。Gateway 会把参考图参数转成 WebAI2API 多模态消息;首页“图片生成测试”可以直接执行一次 smoke test,并预览返回图片。
未通过真实链路验证的媒体模型当前先从用户入口和模型目录关闭,不作为开源首发能力宣传。
模型目录
Qwen / 通义千问国际版本地直连模型,首推已经调通的 Qwen 3.7 系列:
qwen-web/qwen3.7-max-preview
qwen-web/qwen3.7-max
qwen-web/qwen3.7-plus-preview
qwen-web/qwen3.6-max-preview
qwen-web/qwen3.6-plus
qwen-web/qwen3.5-plus
qwen-web/qwen3-max
DeepSeek Web 已改为通过本地 ds2api sidecar 接入。完成浏览器网页登录授权后,需要点击“检测模型”做一次真实请求验证;检测通过后,前端和 /v1/models 才应作为可用模型使用:
deepseek-v4-pro
默认 sidecar 地址是 http://127.0.0.1:9331/v1,可在控制台设置页通过 providerRuntime.deepseekDs2apiBaseUrl 调整。
WebAI2API 支持且已验证开放的站点和模型会继续透传并合并到 /v1/models。未验证的媒体/视频模型会被过滤,避免用户误用。模型元数据里会包含非标准字段:
{
"capabilities": {
"tool_bridge": true,
"supports_native_tools": false,
"preferred_protocol": "openai"
}
}
配置示例
{
"server": {
"host": "127.0.0.1",
"port": 8610,
"apiKey": "local-dev-key"
},
"upstream": {
"baseUrl": "http://127.0.0.1:8500/v1",
"apiKey": "",
"model": "webai2api-model",
"toolMode": "prompt"
},
"providerRuntime": {
"requestTimeoutSeconds": 300,
"promptMaxChars": 32000,
"nativeWebSearchPolicy": "auto",
"responseLanguage": "zh-CN",
"deepseekDs2apiBaseUrl": "http://127.0.0.1:9331/v1"
},
"tool_bridge": {
"mode": "strict",
"maxToolsInPrompt": 32,
"maxCallsPerTurn": 1,
"maxReadonlyCallsPerTurn": 4,
"toolPromptMaxChars": 8000,
"observationMaxChars": 4000,
"exposurePolicy": "safe",
"allowedToolNames": [],
"observationPolicy": {
"summarizePathLists": true,
"excludedPathParts": [
".cache",
".git",
".pnpm",
"build",
"dist",
"node_modules",
"site-packages",
"vendor"
],
"excludedPathGlobs": [],
"pathListMaxItems": 80
}
}
}
API
GET /GET /healthGET /admin/*GET /api/admin/configPUT /api/admin/configPOST /api/admin/token/rotateGET /api/admin/web-auth/providersPOST /api/admin/web-auth/browser/startPOST /api/admin/web-auth/callback-urlPOST /api/admin/web-auth/jobsGET /api/admin/web-auth/jobs/{job_id}GET /api/admin/web-auth/credentialsDELETE /api/admin/web-auth/credentials/{provider_id}GET /v1/modelsPOST /v1/images/generationsPOST /v1/chat/completionsPOST /v1/messagesPOST /v1/messages/count_tokens
开发验证
python -m pytest -q
cd webui
corepack pnpm build
python -m webai_gateway
修改 provider、工具桥、模型目录、授权流程或 ds2api 相关链路前,请先阅读 CONTRIBUTING.md,并检查当前锁定的 ds2api oracle 是否仍是最新上游源码。
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi