[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-11624":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":15,"starSnapshotCount":15,"syncStatus":28,"lastSyncTime":29,"discoverSource":30},11624,"aistudio-api","chrysoljq\u002Faistudio-api","chrysoljq","Google AIStudio Playgroud 反代，支持 Google 会员（Pro\u002FUltra），支持 Gemini 原生协议格式，包含生图、工具调用、Google搜索。","https:\u002F\u002Flinux.do",null,"Python",145,34,1,0,5,7,54,15,4.63,false,"master",true,[],"2026-06-12 02:02:32","# AI Studio API\n\nGoogle AIStudio Playgroud 反代，支持 Google 会员（Pro\u002FUltra），支持 Gemini 原生协议格式，包含生图、工具调用、Google搜索。\n\n[English](.\u002FREADME_EN.md)\n\n## 功能\n\n- **OpenAI 兼容** — 支持 `\u002Fv1\u002Fchat\u002Fcompletions`、`\u002Fv1\u002Fmodels`、`\u002Fv1\u002Fimages\u002Fgenerations`\n- **Gemini 原生 API** — 同时支持 `\u002Fv1beta\u002Fmodels\u002F{model}:generateContent`\n- **流式输出** — SSE 流式返回\n- **多轮对话** — 正确的 user\u002Fmodel 交替结构\n- **图片输入** — 支持 base64 内联和 HTTP URL，单图\u002F多图\n- **Google 搜索** — 通过 `googleSearchRetrieval` 实时联网搜索\n- **Thinking** — 返回模型思考过程（`thinking` 字段）\n- **图片生成** — 通过 Gemini 图片模型生成图片\n- **反检测** — 支持 Camoufox\u002FCloakBrowser(默认)\n- **BotGuard** — 自动特征匹配定位 snapshot 函数\n- **多账号轮询** — round-robin \u002F LRU \u002F 最少限流\n![alt text](image\u002Fchat.png)\n## 快速开始\n### 直接启动\n```bash\n# 克隆项目\ngit clone https:\u002F\u002Fgithub.com\u002Fchrysoljq\u002Faistudio-api.git\ncd aistudio-api\n\n# 安装依赖\npip install -r requirements.txt\n\n# 启动服务\npython3 main.py server --port 8080\n```\n\n### Docker 部署\n\n\n```bash\ndocker run -d \\\n  --name aistudio-api \\\n  --restart unless-stopped \\\n  -p 8080:8080 \\\n  -v aistudio-api-data:\u002Fapp\u002Fdata \\\n  ghcr.io\u002Fchrysoljq\u002Faistudio-api:latest\n```\n#### 有头模式，适合本地\n首次启动后，访问 http:\u002F\u002Flocalhost:8080 进行 Google 账号登录，支持浏览器登录和手动导入cookies（访问）。\n![alt text](image\u002Flogin.png)\n#### 使用 cookies 登录\n访问 https:\u002F\u002Fmyaccount.google.com\u002F ，复制 cookies 导入。仅测试过 chrome->cloakbrowser，跨内核可能不支持。重启生效。\n![alt text](image\u002Fcookie.png)\n## 使用示例\n\n### OpenAI 兼容接口\n\n```bash\n# 对话（流式）\ncurl http:\u002F\u002Flocalhost:8080\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"gemma-4-31b-it\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"你好！\"}],\n    \"stream\": true\n  }'\n\n# 图片理解\ncurl http:\u002F\u002Flocalhost:8080\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"gemini-3-flash-preview\",\n    \"messages\": [{\n      \"role\": \"user\",\n      \"content\": [\n        {\"type\": \"image_url\", \"image_url\": {\"url\": \"data:image\u002Fpng;base64,iVBOR...\"}},\n        {\"type\": \"text\", \"text\": \"这是什么？\"}\n      ]\n    }]\n  }'\n\n# 查看模型列表\ncurl http:\u002F\u002Flocalhost:8080\u002Fv1\u002Fmodels\n```\n\n### Gemini 原生接口\n\n```bash\n# 联网搜索\ncurl http:\u002F\u002Flocalhost:8080\u002Fv1beta\u002Fmodels\u002Fgemini-3-flash-preview:generateContent \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"contents\": [{\"role\": \"user\", \"parts\": [{\"text\": \"今天上海天气怎么样？\"}]}],\n    \"tools\": [{\"googleSearchRetrieval\": {}}]\n  }'\n```\n### Python（OpenAI SDK）\n\n```python\nfrom openai import OpenAI\n\nclient = OpenAI(base_url=\"http:\u002F\u002Flocalhost:8080\u002Fv1\", api_key=\"unused\")\n\n# 流式对话\nresponse = client.chat.completions.create(\n    model=\"gemini-3-flash-preview\",\n    messages=[{\"role\": \"user\", \"content\": \"你好！\"}],\n    stream=True,\n)\nfor chunk in response:\n    print(chunk.choices[0].delta.content or \"\", end=\"\")\n```\n\n### 命令行客户端\n\n```bash\n# 快速对话\npython3 main.py client \"今天天气怎么样？\" --search\n\n# 附带图片\npython3 main.py client \"这张图是什么？\" -a photo.jpg\n\n# 生图\npython3 main.py client \"画一只猫\" --image --save cat.png\n```\n\n## 支持的模型\n\n| 模型 | ID | 默认 Google Search | 说明 |\n|------|-----|-------------------|------|\n| Gemma 4 31B | `gemma-4-31b-it` | ✅ | 默认文本模型 |\n| Gemma 4 26B A4B | `gemma-4-26b-a4b-it` | ✅ | MoE，4B 激活 |\n| Gemini 3 Flash | `gemini-3-flash-preview` | ❌ | 快速 |\n| Gemini 3.1 Pro | `gemini-3.1-pro-preview` | ❌ | |\n| Gemini 3.1 Flash Lite | `gemini-3.1-flash-lite` | ❌ | |\n| Gemini 3.1 Flash Image | `gemini-3.1-flash-image-preview` | ❌ | 默认图片模型，仅限 Pro\u002FUltra |\n| Gemini 3 Pro Image | `gemini-3-pro-image-preview` | ❌ | |\n\n\n## 配置\n\n通过环境变量或 `.env` 文件配置：\n\n| 变量 | 默认值 | 说明 |\n|------|--------|------|\n| `AISTUDIO_PORT` | `8080` | API 服务端口 |\n| `AISTUDIO_CAMOUFOX_PORT` | `9222` | Camoufox 调试端口 |\n| `AISTUDIO_PROXY` | 空 | 浏览器代理地址 |\n| `AISTUDIO_DEFAULT_TEXT_MODEL` | `gemma-4-31b-it` | 默认对话模型 |\n| `AISTUDIO_DEFAULT_IMAGE_MODEL` | `gemini-3.1-flash-image-preview` | 默认图片模型 |\n| `AISTUDIO_CAMOUFOX_HEADLESS` | `1` | 无头模式运行浏览器 |\n| `AISTUDIO_TIMEOUT_REPLAY` | `120` | 请求超时（秒） |\n| `AISTUDIO_TIMEOUT_STREAM` | `120` | 流式超时（秒） |\n| `AISTUDIO_SNAPSHOT_CACHE_TTL` | `3600` | BotGuard snapshot 缓存时间 |\n| `AISTUDIO_ACCOUNT_ROTATION_MODE` | `round_robin` | 轮询模式：`round_robin`、`lru`、`least_rl` |\n| `AISTUDIO_ACCOUNT_COOLDOWN_SECONDS` | `60` | 限流后冷却时间 |\n| `AISTUDIO_DUMP_RAW_RESPONSE` | `0` | 保存原始响应到磁盘（调试） |\n\n## 架构\n\n```\n客户端（OpenAI SDK \u002F curl）\n    │\n    ▼\n┌─────────────────────┐\n│   FastAPI 服务器      │  ← OpenAI + Gemini API 路由\n│   \u002Fv1\u002Fchat\u002F...       │\n│   \u002Fv1beta\u002F...        │\n└─────────┬───────────┘\n          │\n          ▼\n┌─────────────────────┐\n│   Wire Codec         │  ← API 格式 → AI Studio gRPC body\n│   + BotGuard         │     自动特征匹配 snapshot 函数\n└─────────┬───────────┘\n          │\n          ▼\n┌─────────────────────┐\n│   Camoufox 浏览器    │  ← 反指纹 Firefox，注入 cookies\n│   （无头模式）        │     通过 XHR hook 发送请求\n└─────────┬───────────┘\n          │\n          ▼\n    Google AI Studio\n```\n\n**工作原理：**\n1. API 请求进入，转换为 AI Studio 的 wire 格式\n2. 生成 BotGuard snapshot（自动检测函数，带缓存）\n3. 构造完整的 gRPC body，通过 XHR hook 注入浏览器\n4. 浏览器带 cookies + BotGuard 发送请求到 Google\n5. 解析响应，按请求的 API 格式返回\n\n轮询模式：\n- `round_robin` — 轮流使用\n- `lru` — 最久未使用\n- `least_rl` — 最少被限流\n\n## BotGuard 原理\n\nGoogle 每次请求都要求一个 BotGuard \"snapshot\" —— 证明请求来自真实浏览器的加密凭证。本项目：\n\n1. 在运行时 hook 前端的 snapshot 生成函数\n2. 通过特征匹配自动定位（`.snapshot({` + `content` + `yield`），无惧 Google 更新\n3. 为每个请求生成合法的 snapshot\n\nsnapshot 函数名随 Google bundle 更新持续变化（Mv → Ov → Sv → ...），但特征模式保持不变。\n\n## TODO\n- [ ] 完整 webui 支持\n- [ ] 完整真流式支持\n- [ ] 兼容 \u002Fv1\u002Fmessages\n\n## 致谢\n- https:\u002F\u002Fgithub.com\u002FLuanRT\u002FBgUtils\n- https:\u002F\u002Fgithub.com\u002FiBUHub\u002FAIStudioToAPI\n- https:\u002F\u002Flinux.do\n\n## License\n\nMIT\n","AI Studio API 是一个反向代理项目，旨在提供对 Google AIStudio Playground 的访问支持，并兼容 OpenAI 和 Gemini 原生协议。其核心功能包括支持流式输出、多轮对话、图片输入（支持 base64 内联和 HTTP URL）、实时 Google 搜索、模型思考过程返回以及图片生成等。此外，该项目还具备反检测机制和多账号轮询策略，增强了使用的灵活性与安全性。适合需要利用 Google 会员权益进行 AI 开发或研究的场景，如开发聊天机器人、图像识别应用及基于搜索的数据分析工具。",2,"2026-06-11 03:32:10","CREATED_QUERY"]