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 — 可自由使用、修改和重新分发。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目