fastapi-proxy / memory-bank /techContext.md
airsltd's picture
update
0f7bf78

技术背景

使用的技术

  • 编程语言:Python 3.12
  • Web框架:FastAPI
  • ASGI服务器:Uvicorn (用于运行FastAPI应用)
  • HTTP客户端:httpx (用于异步请求转发)
  • 环境管理:Conda

开发设置

  • Conda环境any-api。如果不存在,需要通过conda create -n any-api python=3.12创建。
  • 环境激活conda activate any-api
  • 依赖安装:通过pip install -r requirements.txt安装所有项目依赖。

技术约束

  • URL解析规则:代理URL必须遵循/v1/{protocol}/{domain}/{path:path}的格式,以便正确解析目标API的URL。
  • 并发模型:虽然FastAPI本身是异步的,但为了处理高并发请求,需要确保请求转发逻辑是非阻塞的,并充分利用asyncio的协程能力。
  • 错误处理:需要考虑代理过程中可能出现的网络错误、超时、目标API响应错误等情况,并进行适当的错误处理和响应。

依赖项

根据requirements.txt文件:

  • flask (虽然项目使用FastAPI,但requirements.txt中包含Flask,可能用于其他部分或历史遗留,在FastAPI代理中不直接使用)
  • httpx
  • fastapi
  • uvicorn
  • requests (可能用于同步请求,但推荐在FastAPI中使用httpx进行异步请求)
  • python-dotenv (用于加载环境变量)