Amm1rr/WebAI-to-API
Webchat to API
是什么
WebAI‑to‑API 是一个运行在您自己的机器(或 Docker 容器)内的小型自托管服务,用于转发对 Google Gemini 模型的请求。它提供熟悉的 /v1/chat/completions OpenAI 风格端点,因此任何与 OpenAI 通信的客户端都可以指向它。
核心功能
- 支持流式传输(SSE)的 OpenAI 兼容聊天端点(
/v1/chat/completions) - 基于提供者的架构 — 目前包含一个 Gemini 提供者,可通过官方 WebAPI 或 Playwright 驱动的浏览器运行时 与 Gemini 通信
- 无状态的“Hermes”模式,客户端负责完整的对话历史(无服务器端 SQLite 快照)
- 健康检查(
/health)和就绪探针(/ready),以及运行时诊断(/v1/runtime/status) - 简单的 Web 仪表板(
/ui),用于查看状态、认证、模型发现和沙盒测试 - 以 Docker 为优先的部署方式;也支持直接通过 Poetry 运行
- 无内置调用者认证 — 专为本地或自建防火墙后使用设计
快速开始(Linux/macOS)
# 1. 克隆并安装
git clone https://github.com/Amm1rr/WebAI-to-API.git
cd WebAI-to-API
./install.sh # 安装依赖、Poetry、Playwright Chromium,并创建配置文件
# 2. 认证 Gemini(浏览器登录或 Cookie 缓存)
poetry run python verify_login.py
# 3. 启动服务器
poetry run python src/run.py
API 可通过 http://localhost:6969 访问,仪表板位于 http://localhost:6969/ui。
Docker 部署
git pull
APP_UID=$(id -u) APP_GID=$(id -g) docker compose up -d --build
Docker 镜像暴露相同的端点,并包含相同的认证辅助工具。
发送请求
curl -X POST http://localhost:6969/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3-flash",
"messages": [{"role": "user", "content": "Hello!"}]
}'
响应遵循 OpenAI 聊天模式;通过 Server-Sent Events 实现流式传输。
提供者与模型路由
gemini-3-flash— 使用配置的 Gemini 后端(webapi或playwright)。playwright/gemini-3-flash— 强制使用 Playwright 驱动的浏览器运行时。- 端点
/v1/models返回实时模型目录,例如gemini-3-flash和playwright/gemini-3-flash。
配置基础
设置位于 config.conf(INI 格式)中。关键部分:
[Gemini]
backend = webapi # 或 "playwright"
default_model = gemini-3-flash
extended_thinking = false
代理、日志记录和额外提供者选项也可配置;环境变量从 .env 读取。
安全提示
该服务不强制 API 密钥。若需对外暴露,请将其绑定到 localhost 或置于支持认证的反向代理之后。
文档与帮助
- 安装、配置和更新指南位于
docs/目录下 - 服务器运行后,Swagger UI(
/docs)提供交互式 API 文档 - 仪表板(
/ui)显示运行时健康状态、认证状态,并支持测试调用
许可证
MIT — 可自由使用、修改和重新分发。
相关
- 项目
- 项目
- 项目
- 项目
- 项目