q
File size: 1,922 Bytes
96601d6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
---
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