Skip to content

YingLuoNou/WebAItoAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WebAItoAPI

Read this in English

⚠️ 重要提示:在使用本项目之前,请务必仔细阅读并理解以下免责声明和许可条款。

⚠️ 展开查看免责声明 (Disclaimer) - 严禁商用, 使用本项目默认同意本协议

⚖️ 免责声明 (Disclaimer)

  1. 仅供学术研究:本项目仅供个人学习、学术研究和技术交流使用。
  2. 严禁商业用途:任何个人或组织不得将本项目用于任何商业目的。
  3. 后果自负
    • 本项目涉及到模拟浏览器操作,可能会触发目标平台的反爬虫机制。
    • 因使用本项目导致的任何后果(包括账号被封禁),由使用者自行承担。
  4. 无担保:本项目按“原样”提供,不提供任何形式的担保。

📄 许可协议 (License)

本项目采用 CC BY-NC-SA 4.0 许可协议。

简而言之,您可以:

  • 共享 — 在任何媒介以任何形式复制、发行本作品。
  • 演绎 — 修改、转换或以本作品为基础进行创作。

只要你遵守以下条款:

  • 🛑 非商业性使用 — 您不得将本作品用于商业目的。
  • 🗣️ 署名 — 您必须给出适当的署名,提供指向本许可协议的链接,同时标明是否(对原始作品)作了修改。
  • 🔄 相同方式共享 — 如果您再混合、转换或者基于本作品进行创作,您必须基于与原先许可协议相同的许可协议分发您贡献的作品。

中文版 (Chinese)

项目简介

WebAItoAPI 是一个基于 Python 的轻量级中间件,利用 DrissionPage 自动化技术将网页版 AI(目前仅支持 Google Gemini)封装为标准的 API 接口,并通过 FastAPI 对外提供服务。

本项目专为个人用户学术研究设计,旨在解决官方 API 价格昂贵或免费版速率限制(Rate Limit)过严的问题,极大降低了个人搭建 AI Agent 的门槛。

核心亮点:

  • 降低成本:直接利用网页版对话能力,无需购买昂贵的 API 额度。
  • Browser-Use 优化:项目最初为配合 browser-use 库搭建,内置针对性的 JSON 清洗与修复功能,显著提升 Agent 执行稳定性。
  • 灵活轻量:适合无需高并发的个人实验场景。
  • API 标准化:提供类 OpenAI 的接口格式,易于集成到现有工作流中。

🛠️ 安装环境

本项目推荐使用 uv 进行极速环境管理,同时也支持标准的 pip 安装。

前置要求

  • Python 3.12+
  • Google Chrome 浏览器 (DrissionPage 需要)

克隆项目并安装环境

git clone https://github.com/YangLuoNou/WebAItoAPI.git
cd WebAItoAPI

# uv 会自动创建虚拟环境并安装所有依赖
uv sync

进入虚拟环境并启动脚本

.venv/Scripts/activate
python main.py

⚙️ 配置说明

本项目采用 config.json 进行配置管理。首次运行程序时,系统会自动在根目录下生成默认的 config.json 文件。您可以根据需求修改以下字段:

{
    "user_data_path": "C:\\path\\to\\ChromeBotData",  // 浏览器用户数据存储路径 (Cookies, 登录状态等)
    "target_url": "https://gemini.google.com/app",    // 目标 AI 服务地址
    "port": 9333,                                     // 浏览器调试端口
    "api_port": 8000,                                 // api端口
    "use_temporary_chat": true                        // 聊天模式开关
}

字段详解:

  • user_data_path: 存放 Chrome 用户数据的文件夹路径。保留此文件夹可以保持您的登录状态,避免每次重启都需要重新扫码登录。
  • port: DrissionPage 控制浏览器使用的本地端口号,默认 9333。
  • use_temporary_chat:
    • true (默认): 临时对话模式。每次请求都会刷新页面并开启新对话,不保留历史记录,适合 API 调用。
    • false: 标准对话模式。保留网页侧的历史记录,仅在页面出错时刷新。

Browser-Use配置说明:

  • 示例:
    llm = ChatOpenAI(
      model="gemini-3.0-pro",
      base_url="http://localhost:8000/v1/",
      api_key="",
      timeout=200
    )
    
    agent = Agent(
      task='帮我找一下百度热搜第一是什么', #描述尽量详细,详见Browser-Use文档
      browser=browser,
      llm=llm,
      tools=tools,
      step_timeout=250,
      llm_timeout=200 #该配置项一定要配置,否则极易超时
    )

请求示例:

payload = {
    "messages": [
        {"role": "user", "content": "请输出一个包含 'status' 和 'code' 的 JSON 格式数据"}
    ],
    "stream": False,      # 是否开启流式模式输出
    "clean_json": True    # 是否开启清洗功能(默认开启)
}

response = requests.post(url, json=payload, headers=headers)
print(response.json()["choices"][0]["message"]["content"])

About

Web AI to API基于 DrissionPage 的 Gemini 网页转 API 接口工具。支持 OpenAI 格式、流式输出、图片上传及 JSON 自动修复。仅供学术研究,严禁商用。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages