# 活跃背景 (activeContext.md) ## 当前工作焦点 * **API 转发代理的实现和调试**:主要工作是构建一个 FastAPI 应用程序,用于转发对 Google Gemini API(OpenAI 兼容接口)的请求。 * **解决客户端兼容性问题**:处理 Postman 等客户端在与代理交互时可能遇到的头部相关问题。 ## 最近的更改 * **`app.py` 修改**: * 引入 `httpx` 和 `Response`。 * 将 `GEMINI_BASE_URL` 从硬编码改为从环境变量加载。 * 将 `/health` 端点移到通用代理路由之前,以确保其正确匹配。 * 修改了 API 密钥的传递方式,从 URL 查询参数改为 `Authorization: Bearer` 头。 * 强制将转发请求的 `User-Agent` 头设置为 `curl/8.7.1`。 * **`requirements.txt` 更新**:添加了 `httpx` 和 `python-dotenv` 依赖。 * **`.clinerules` 更新**:添加了自动激活 `conda` 环境 `airs` 的自定义指令。 ## 下一步 * **验证 Postman 兼容性**:用户已指示暂时搁置此问题。 * **本地测试环境问题**:已向用户明确告知这是 Gemini API 的地域限制,而非代理代码问题。 ## 活跃决策和考虑 * **API 密钥传递方式**:从 URL 查询参数改为 `Authorization` 头是符合 OpenAI 兼容 API 规范的正确做法。 * **`User-Agent` 强制修改**:这是一个临时的解决方案,用于解决特定客户端(Postman)与部署环境之间的兼容性问题。如果未来出现其他客户端问题,可能需要更灵活的头部处理策略。 * **路由顺序**:确保特定路由在通用路由之前定义是 FastAPI 应用中的重要考虑因素。 ## 学习和项目洞察 * **FastAPI 路由匹配机制**:理解路由定义顺序对匹配行为的影响至关重要。 * **HTTP 头部的重要性**:客户端和服务器之间的 HTTP 头部兼容性可能导致意想不到的问题,尤其是在代理场景中。 * **API 地域限制**:外部 API 的地域限制是部署代理时需要考虑的重要因素。