superproxy-all / memory-bank /activeContext.md
tanbushi's picture
update
559f768

活跃背景 (activeContext.md)

当前工作焦点

  • API 转发代理的实现和调试:主要工作是构建一个 FastAPI 应用程序,用于转发对 Google Gemini API(OpenAI 兼容接口)的请求。
  • 解决客户端兼容性问题:处理 Postman 等客户端在与代理交互时可能遇到的头部相关问题。

最近的更改

  • app.py 修改
    • 引入 httpxResponse
    • GEMINI_BASE_URL 从硬编码改为从环境变量加载。
    • /health 端点移到通用代理路由之前,以确保其正确匹配。
    • 修改了 API 密钥的传递方式,从 URL 查询参数改为 Authorization: Bearer 头。
    • 强制将转发请求的 User-Agent 头设置为 curl/8.7.1
  • requirements.txt 更新:添加了 httpxpython-dotenv 依赖。
  • .clinerules 更新:添加了自动激活 conda 环境 airs 的自定义指令。

下一步

  • 验证 Postman 兼容性:用户已指示暂时搁置此问题。
  • 本地测试环境问题:已向用户明确告知这是 Gemini API 的地域限制,而非代理代码问题。

活跃决策和考虑

  • API 密钥传递方式:从 URL 查询参数改为 Authorization 头是符合 OpenAI 兼容 API 规范的正确做法。
  • User-Agent 强制修改:这是一个临时的解决方案,用于解决特定客户端(Postman)与部署环境之间的兼容性问题。如果未来出现其他客户端问题,可能需要更灵活的头部处理策略。
  • 路由顺序:确保特定路由在通用路由之前定义是 FastAPI 应用中的重要考虑因素。

学习和项目洞察

  • FastAPI 路由匹配机制:理解路由定义顺序对匹配行为的影响至关重要。
  • HTTP 头部的重要性:客户端和服务器之间的 HTTP 头部兼容性可能导致意想不到的问题,尤其是在代理场景中。
  • API 地域限制:外部 API 的地域限制是部署代理时需要考虑的重要因素。