# 安装指南 本文档提供基于 Poetry 的详细安装步骤和环境配置说明。 ## 🔧 系统要求 ### 基础要求 - **Python**: 3.9+ (推荐 3.10+ 或 3.11+) - **推荐版本**: Python 3.11+ 以获得最佳性能和兼容性 - **最低要求**: Python 3.9 (支持所有当前依赖版本) - **完全支持**: Python 3.9, 3.10, 3.11, 3.12, 3.13 - **Poetry**: 1.4+ (现代化 Python 依赖管理工具) - **Git**: 用于克隆仓库 (推荐) - **Google AI Studio 账号**: 并能正常访问和使用 - **Node.js**: 16+ (可选,用于 Pyright 类型检查) ### 系统依赖 - **Linux**: `xvfb` (虚拟显示,可选) - Debian/Ubuntu: `sudo apt-get update && sudo apt-get install -y xvfb` - Fedora: `sudo dnf install -y xorg-x11-server-Xvfb` - **macOS**: 通常无需额外依赖 - **Windows**: 通常无需额外依赖 ## 🚀 快速安装 (推荐) ### 一键安装脚本 ```bash # macOS/Linux 用户 curl -sSL https://raw.githubusercontent.com/CJackHwang/AIstudioProxyAPI/main/scripts/install.sh | bash # Windows 用户 (PowerShell) iwr -useb https://raw.githubusercontent.com/CJackHwang/AIstudioProxyAPI/main/scripts/install.ps1 | iex ``` ## 📋 手动安装步骤 ### 1. 安装 Poetry 如果您尚未安装 Poetry,请先安装: ```bash # macOS/Linux curl -sSL https://install.python-poetry.org | python3 - # Windows (PowerShell) (Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py - # 或使用包管理器 # macOS: brew install poetry # Ubuntu/Debian: apt install python3-poetry # Windows: winget install Python.Poetry ``` ### 2. 克隆仓库 ```bash git clone https://github.com/CJackHwang/AIstudioProxyAPI.git cd AIstudioProxyAPI ``` ### 3. 安装依赖 Poetry 会自动创建虚拟环境并安装所有依赖: ```bash # 安装生产依赖 poetry install # 安装包括开发依赖 (推荐开发者) poetry install --with dev ``` **Poetry 优势**: - ✅ 自动创建和管理虚拟环境 - ✅ 依赖解析和版本锁定 (`poetry.lock`) - ✅ 区分生产依赖和开发依赖 - ✅ 语义化版本控制 ### 4. 激活虚拟环境 ```bash # 激活 Poetry 创建的虚拟环境 poetry env activate # 或者在每个命令前加上 poetry run poetry run python --version ``` ### 5. 下载 Camoufox 浏览器 ```bash # 在 Poetry 环境中下载 Camoufox 浏览器 poetry run camoufox fetch # 或在激活的环境中 camoufox fetch ``` **依赖版本说明** (由 Poetry 管理): - **FastAPI 0.115.12**: 最新稳定版本,包含性能优化和新功能 - 新增 Query/Header/Cookie 参数模型支持 - 改进的类型提示和验证机制 - 更好的 OpenAPI 文档生成和异步性能 - **Pydantic >=2.7.1,<3.0.0**: 现代数据验证库,版本范围确保兼容性 - **Uvicorn 0.29.0**: 高性能 ASGI 服务器,支持异步处理和 HTTP/2 - **Playwright**: 最新版本,用于浏览器自动化、页面交互和网络拦截 - **Camoufox 0.4.11**: 反指纹检测浏览器,包含 geoip 数据和增强隐蔽性 - **WebSockets 12.0**: 用于实时日志传输、状态监控和 Web UI 通信 - **aiohttp ~3.9.5**: 异步 HTTP 客户端,支持代理和流式处理 - **python-dotenv 1.0.1**: 环境变量管理,支持 .env 文件配置 ### 6. 安装 Playwright 浏览器依赖(可选) 虽然 Camoufox 使用自己的 Firefox,但首次运行可能需要安装一些基础依赖: ```bash # 在 Poetry 环境中安装 Playwright 依赖 poetry run playwright install-deps firefox # 或在激活的环境中 playwright install-deps firefox ``` 如果 `camoufox fetch` 因网络问题失败,可以尝试运行项目中的 [`fetch_camoufox_data.py`](../fetch_camoufox_data.py) 脚本 (详见[故障排除指南](troubleshooting.md))。 ## 🔍 验证安装 ### 检查 Poetry 环境 ```bash # 查看 Poetry 环境信息 poetry env info # 查看已安装的依赖 poetry show # 查看依赖树 poetry show --tree # 检查 Python 版本 poetry run python --version ``` ### 检查关键组件 ```bash # 检查 Camoufox poetry run camoufox --version # 检查 FastAPI poetry run python -c "import fastapi; print(f'FastAPI: {fastapi.__version__}')" # 检查 Playwright poetry run python -c "import playwright; print('Playwright: OK')" ``` ## 🚀 如何启动服务 在您完成安装和环境配置后,强烈建议您先将 `.env.example` 文件复制为 `.env` 并根据您的需求进行修改。这会极大地简化后续的启动命令。 ```bash # 复制配置模板 cp .env.example .env # 编辑配置文件 nano .env # 或使用其他编辑器 ``` 完成配置后,您可以选择以下几种方式启动服务: ### 1. GUI 启动 (最推荐) 对于大多数用户,尤其是新手,我们强烈推荐使用图形化界面 (GUI) 启动器。这是最简单、最直观的方式。 ```bash # 在 Poetry 环境中运行 poetry run python gui_launcher.py # 或者,如果您已经激活了虚拟环境 python gui_launcher.py ``` GUI 启动器会自动处理后台进程,并提供一个简单的界面来控制服务的启动和停止,以及查看日志。 ### 2. 命令行启动 (进阶) 对于熟悉命令行的用户,可以直接使用 `launch_camoufox.py` 脚本启动服务。 ```bash # 启动无头 (headless) 模式,这是服务器部署的常用方式 poetry run python launch_camoufox.py --headless # 启动调试 (debug) 模式,会显示浏览器界面 poetry run python launch_camoufox.py --debug ``` 您可以通过添加不同的参数来控制启动行为,例如: - `--headless`: 在后台运行浏览器,不显示界面。 - `--debug`: 启动时显示浏览器界面,方便调试。 - 更多参数请参阅[高级配置指南](advanced-configuration.md)。 ### 3. Docker 启动 如果您熟悉 Docker,也可以使用容器化方式部署服务。这种方式可以提供更好的环境隔离。 详细的 Docker 启动指南,请参阅: - **[Docker 部署指南](../docker/README-Docker.md)** ## 多平台指南 ### macOS / Linux - 通常安装过程比较顺利。确保 Python 和 pip 已正确安装并配置在系统 PATH 中。 - 使用 `source venv/bin/activate` 激活虚拟环境。 - `playwright install-deps firefox` 可能需要系统包管理器(如 `apt` for Debian/Ubuntu, `yum`/`dnf` for Fedora/CentOS, `brew` for macOS)安装一些依赖库。如果命令失败,请仔细阅读错误输出,根据提示安装缺失的系统包。有时可能需要 `sudo` 权限执行 `playwright install-deps`。 - 防火墙通常不会阻止本地访问,但如果从其他机器访问,需要确保端口(默认 2048)是开放的。 - 对于 Linux 用户,可以考虑使用 `--virtual-display` 标志启动 (需要预先安装 `xvfb`),它会利用 Xvfb 创建一个虚拟显示环境来运行浏览器,这可能有助于进一步降低被检测的风险和保证网页正常对话。 ### Windows #### 原生 Windows - 确保在安装 Python 时勾选了 "Add Python to PATH" 选项。 - 使用 `venv\\Scripts\\activate` 激活虚拟环境。 - Windows 防火墙可能会阻止 Uvicorn/FastAPI 监听端口。如果遇到连接问题(特别是从其他设备访问时),请检查 Windows 防火墙设置,允许 Python 或特定端口的入站连接。 - `playwright install-deps` 命令在原生 Windows 上作用有限(主要用于 Linux),但运行 `camoufox fetch` (内部会调用 Playwright) 会确保下载正确的浏览器。 - **推荐使用 [`gui_launcher.py`](../gui_launcher.py) 启动**,它们会自动处理后台进程和用户交互。如果直接运行 [`launch_camoufox.py`](../launch_camoufox.py),终端窗口需要保持打开。 #### WSL (Windows Subsystem for Linux) - **推荐**: 对于习惯 Linux 环境的用户,WSL (特别是 WSL2) 提供了更好的体验。 - 在 WSL 环境内,按照 **macOS / Linux** 的步骤进行安装和依赖处理 (通常使用 `apt` 命令)。 - 需要注意的是网络访问: - 从 Windows 访问 WSL 中运行的服务:通常可以通过 `localhost` 或 WSL 分配的 IP 地址访问。 - 从局域网其他设备访问 WSL 中运行的服务:可能需要配置 Windows 防火墙以及 WSL 的网络设置(WSL2 的网络通常更容易从外部访问)。 - 所有命令(`git clone`, `pip install`, `camoufox fetch`, `python launch_camoufox.py` 等)都应在 WSL 终端内执行。 - 在 WSL 中运行 `--debug` 模式:[`launch_camoufox.py --debug`](../launch_camoufox.py) 会尝试启动 Camoufox。如果你的 WSL 配置了 GUI 应用支持(如 WSLg 或第三方 X Server),可以看到浏览器界面。否则,它可能无法显示界面,但服务本身仍会尝试启动。无头模式 (通过 [`gui_launcher.py`](../gui_launcher.py) 启动) 不受影响。 ## 配置环境变量(推荐) 安装完成后,强烈建议配置 `.env` 文件来简化后续使用: ### 创建配置文件 ```bash # 复制配置模板 cp .env.example .env # 编辑配置文件 nano .env # 或使用其他编辑器 ``` ### 基本配置示例 ```env # 服务端口配置 DEFAULT_FASTAPI_PORT=2048 STREAM_PORT=3120 # 代理配置(如需要) # HTTP_PROXY=http://127.0.0.1:7890 # 日志配置 SERVER_LOG_LEVEL=INFO DEBUG_LOGS_ENABLED=false ``` 配置完成后,启动命令将变得非常简单: ```bash # 简单启动,无需复杂参数 python launch_camoufox.py --headless ``` 详细配置说明请参见 [环境变量配置指南](environment-configuration.md)。 ## 可选:配置 API 密钥 您也可以选择配置 API 密钥来保护您的服务: ### 创建密钥文件 在 `auth_profiles` 目录中创建 `key.txt` 文件(如果它不存在): ```bash # 创建目录和密钥文件 mkdir -p auth_profiles && touch auth_profiles/key.txt # 添加密钥(每行一个) echo "your-first-api-key" >> key.txt echo "your-second-api-key" >> key.txt ``` ### 密钥格式要求 - 每行一个密钥 - 至少 8 个字符 - 支持空行和注释行(以 `#` 开头) - 使用 UTF-8 编码 ### 示例密钥文件 ``` # API密钥配置文件 # 每行一个密钥 sk-1234567890abcdef my-secure-api-key-2024 admin-key-for-testing # 这是注释行,会被忽略 ``` ### 安全说明 - **无密钥文件**: 服务不需要认证,任何人都可以访问 API - **有密钥文件**: 所有 API 请求都需要提供有效的密钥 - **密钥保护**: 请妥善保管密钥文件,不要提交到版本控制系统 ## 下一步 安装完成后,请参考: - **[环境变量配置指南](environment-configuration.md)** - ⭐ 推荐先配置,简化后续使用 - [首次运行与认证指南](authentication-setup.md) - [日常运行指南](daily-usage.md) - [API 使用指南](api-usage.md) - 包含详细的密钥管理说明 - [故障排除指南](troubleshooting.md)