|
--- |
|
title: Q |
|
emoji: 🏢 |
|
colorFrom: indigo |
|
colorTo: purple |
|
sdk: docker |
|
pinned: false |
|
license: mit |
|
app_port: 8000 |
|
--- |
|
|
|
# 通义千问 API 代理服务器 |
|
|
|
这是一个基于 FastAPI 实现的通义千问 API 代理服务器,用于转发和处理与通义千问 API 的通信。 |
|
|
|
## 主要功能 |
|
|
|
- 模型列表获取 API |
|
- 聊天完成 API |
|
- 支持流式响应 |
|
- 内置模型列表缓存机制 |
|
- 自动重试机制 |
|
|
|
## 环境要求 |
|
|
|
- Python 3.7+ |
|
- FastAPI 0.104.1+ |
|
- Uvicorn 0.24.0+ |
|
- HTTPX 0.25.1+ |
|
|
|
## 安装步骤 |
|
|
|
1. 克隆项目到本地 |
|
|
|
2. 安装依赖: |
|
```bash |
|
pip install -r requirements.txt |
|
``` |
|
|
|
3. 使用 Docker(可选): |
|
```bash |
|
docker build -t qwen-api-proxy . |
|
docker run -p 8000:8000 qwen-api-proxy |
|
``` |
|
|
|
## 运行服务 |
|
|
|
```bash |
|
python qwen.py |
|
``` |
|
或使用 uvicorn: |
|
```bash |
|
uvicorn qwen:app --host 0.0.0.0 --port 8000 |
|
``` |
|
|
|
服务将在 http://localhost:8000 上运行。 |
|
|
|
## API 接口说明 |
|
|
|
### 1. 获取模型列表 |
|
|
|
``` |
|
GET /api/models |
|
Header: Authorization: Bearer <your-token> |
|
``` |
|
|
|
返回可用的模型列表,结果会被缓存1小时。 |
|
|
|
### 2. 聊天完成 |
|
|
|
``` |
|
POST /api/chat/completions |
|
Header: Authorization: Bearer <your-token> |
|
|
|
{ |
|
"model": "string", |
|
"messages": [ |
|
{ |
|
"role": "user", |
|
"content": "string" |
|
} |
|
], |
|
"stream": boolean, |
|
"max_tokens": number (可选) |
|
} |
|
``` |
|
|
|
支持流式和非流式响应,可以通过 stream 参数控制。 |
|
|
|
## 错误处理 |
|
|
|
- 服务内置了自动重试机制,最多重试3次 |
|
- 500错误或HTML响应会触发重试 |
|
- 401错误表示未授权,需要检查token |
|
- 400错误表示请求参数有误 |
|
|
|
## 获取 API Key |
|
|
|
1. 访问 https://chat.qwenlm.ai/ 并登录 |
|
2. 打开浏览器开发者工具(通常按 F12) |
|
3. 切换到"应用程序"选项卡 |
|
4. 在左侧菜单中选择"Cookies" -> "https://chat.qwenlm.ai" |
|
5. 找到名称为"token"的cookie |
|
6. 复制其值,这就是你的API Key |
|
|