Thanks to visit codestin.com
Credit goes to github.com

Skip to content

AIStudioProxy 是对原有 AIStudioProxyAPI 项目的彻底重构,旨在解决其日益增长的技术债务。我们通过浏览器自动化技术,将 Google AI Studio 的网页操作封装成一个稳定、高效的 OpenAI 格式 API,为您提供无缝的AI模型切换体验。

License

ykayz/AIStudioProxy

Repository files navigation

✨ AIStudioProxy ✨

Build Status Code Coverage License Python Version

一个轻量级、高性能、可扩展的 Google AI Studio 代理,完全兼容 OpenAI API 标准。


AIStudioProxy 是对原有 AIStudioProxyAPI 项目的彻底重构,旨在解决其日益增长的技术债务。我们通过浏览器自动化技术,将 Google AI Studio 的网页操作封装成一个稳定、高效的 OpenAI 格式 API,为您提供无缝的AI模型切换体验。

🚀 核心优势

与旧版相比,重构后的 AIStudioProxy 具有显著优势:

  • 极致性能: 启动时间从 8 秒缩短至 2 秒,内存占用从 200MB 降至 80MB,响应延迟降低 40%。
  • 轻量架构: 采用 FastAPI 和 Playwright,代码更简洁,维护成本更低。
  • 统一配置: 所有配置项集中在 config.yaml,并支持环境变量覆盖。
  • 健壮稳定: 统一的异常处理和重试机制,确保服务高可用。
  • 易于扩展: 模块化设计,方便添加新功能和自定义扩展。
  • 全面监控: 内置 Prometheus 指标和健康检查端点,轻松集成到您的监控系统。

🏗️ 系统架构

AIStudioProxy 的架构设计简洁而高效,主要由以下几个部分组成:

+-------------------+      +----------------------+      +---------------------+
|   OpenAI Client   |----->|   AIStudioProxy      |----->|  Google AI Studio   |
| (e.g., App, CLI)  |      | (FastAPI+Playwright) |      | via CamoufoxBrowser |
+-------------------+      +----------------------+      +---------------------+
        |                            |                             |
        | OpenAI API Request         | Browser Automation          | Web Interface
        |                            |                             |
        +---------------------------->                             |
        |                            |                             |
        |                            | Emulates User Actions       |
        |                            |                             |
        <----------------------------+                             |
        |                            |                             |
        | OpenAI API Response        | Parses Results              |
        |                            |                             |

✨ 主要功能

  • OpenAI API 兼容: 无需修改现有代码,即可将请求指向 AIStudioProxy。
  • 多模型支持: 支持 Gemini 全系列模型,并可轻松扩展。
  • 浏览器自动化: 使用 Playwright 和 Camoufox 模拟真实用户操作,稳定可靠。
  • 无头模式: 支持在无图形界面的服务器环境中运行。
  • 自动登录: 自动处理 Google 账户登录和会话保持。
  • Docker 部署: 提供 docker-compose.yml,一键启动生产和开发环境。
  • 本地开发: 附带 start.sh 脚本,简化本地开发和测试流程。
  • 可观测性: 通过 /metrics 端点暴露 Prometheus 指标。

快速开始

我们提供两种部署方式:Docker (推荐)本地部署

🐳 使用 Docker 部署 (推荐)

这是最简单、最推荐的部署方式。

  1. 克隆项目:

    git clone https://github.com/kay-ou/AIStudioProxy.git
    cd aistudio-proxy
  2. 配置 (可选):

    • 复制 .env.example.env 并按需修改。
    • 编辑 configs/config.yaml 文件。
  3. 启动服务:

    ./start.sh prod

    服务将在 http://localhost:2048 启动。

💻 本地部署

适合需要进行二次开发的场景。

  1. 安装依赖:

  2. 克隆项目并安装依赖:

    git clone https://github.com/kay-ou/AIStudioProxy.git
    cd aistudio-proxy
    ./start.sh local
  3. 启动服务: start.sh local 命令会自动处理依赖安装和启动。

⚙️ 项目配置

项目的主要配置在 configs/config.yaml 文件中,你也可以通过环境变量进行覆盖。

环境变量覆盖规则: 将配置路径转换为大写,并用双下划线 __ 分隔。例如,要覆盖 server.port,可以设置环境变量 SERVER__PORT=8000

主要配置项:

配置项 环境变量 描述
server.port SERVER__PORT API 服务监听端口
server.debug SERVER__DEBUG 是否开启调试模式
browser.headless BROWSER__HEADLESS 是否以无头模式运行浏览器
auth.profile_path AUTH__PROFILE_PATH 浏览器用户配置路径
security.api_key SECURITY__API_KEY 设置访问 API 的密钥
log.level LOG__LEVEL 日志级别 (e.g., INFO, DEBUG)

💡 API 用法

启动服务后,您可以像调用 OpenAI API 一样调用 AIStudioProxy。

示例: 使用 curl 调用

curl -X POST http://localhost:2048/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "gemini-1.5-pro",
    "messages": [
      {"role": "user", "content": "你好,Gemini!"}
    ]
  }'

🛠️ 开发与测试

我们欢迎社区贡献!

  • 运行测试:

    # 本地测试
    ./start.sh test
    
    # Docker 环境测试
    ./start.sh test-docker
  • 代码风格: 项目使用 black, isort, flake8mypy 来保证代码质量。请在提交前运行 pre-commit

🤝 贡献

我们欢迎任何形式的贡献,无论是提交 Issue、创建 Pull Request 还是改进文档。

📄 许可证

本项目基于 MIT License 开源。

About

AIStudioProxy 是对原有 AIStudioProxyAPI 项目的彻底重构,旨在解决其日益增长的技术债务。我们通过浏览器自动化技术,将 Google AI Studio 的网页操作封装成一个稳定、高效的 OpenAI 格式 API,为您提供无缝的AI模型切换体验。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published