Spaces:
Sleeping
Sleeping
活跃背景 (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 的地域限制是部署代理时需要考虑的重要因素。