superproxy-all / memory-bank /activeContext.md
tanbushi's picture
update
559f768
# 活跃背景 (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 的地域限制是部署代理时需要考虑的重要因素。