# 技术背景 ## 使用的技术 - **编程语言**: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` (用于加载环境变量)