| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>API 接口说明</title> |
| <link rel="icon" type="image/png" href="/static/favicon.png"> |
| <style> |
| body { font-family: Arial, sans-serif; margin: 20px; } |
| h1 { color: #333; } |
| .endpoint { margin: 20px 0; padding: 15px; background: #f5f5f5; border-radius: 5px; } |
| .method { font-weight: bold; color: #007bff; } |
| .url { color: #28a745; } |
| .description { margin-top: 10px; } |
| </style> |
| </head> |
| <body> |
| <h1>API 接口说明</h1> |
| |
| <h2>项目概述</h2> |
| <p>这是一个基于 FastAPI 实现的通义千问 API 代理服务器,用于转发和处理与通义千问 API 的通信。</p> |
|
|
| <h2>主要功能</h2> |
| <ul> |
| <li>模型列表获取 API</li> |
| <li>聊天完成 API</li> |
| <li>支持流式响应</li> |
| <li>内置模型列表缓存机制</li> |
| <li>自动重试机制</li> |
| </ul> |
|
|
| <h2>环境要求</h2> |
| <ul> |
| <li>Python 3.7+</li> |
| <li>FastAPI 0.104.1+</li> |
| <li>Uvicorn 0.24.0+</li> |
| <li>HTTPX 0.25.1+</li> |
| </ul> |
|
|
| <h2>安装步骤</h2> |
| <ol> |
| <li>克隆项目到本地</li> |
| <li>安装依赖: |
| <pre><code>pip install -r requirements.txt</code></pre> |
| </li> |
| <li>使用 Docker(可选): |
| <pre><code>docker build -t qwen-api-proxy . |
| docker run -p 8000:8000 qwen-api-proxy</code></pre> |
| </li> |
| </ol> |
|
|
| <h2>运行服务</h2> |
| <pre><code>python qwen.py</code></pre> |
| <p>或使用 uvicorn:</p> |
| <pre><code>uvicorn qwen:app --host 0.0.0.0 --port 8000</code></pre> |
| <p>服务将在 <a href="http://localhost:8000">http://localhost:8000</a> 上运行。</p> |
|
|
| <h2>错误处理</h2> |
| <ul> |
| <li>服务内置了自动重试机制,最多重试3次</li> |
| <li>500错误或HTML响应会触发重试</li> |
| <li>401错误表示未授权,需要检查token</li> |
| <li>400错误表示请求参数有误</li> |
| </ul> |
|
|
| <h2>获取 API Key</h2> |
| <ol> |
| <li>访问 <a href="https://chat.qwenlm.ai/">https://chat.qwenlm.ai/</a> 并登录</li> |
| <li>打开浏览器开发者工具(通常按 F12)</li> |
| <li>切换到"应用程序"选项卡</li> |
| <li>在左侧菜单中选择"Cookies" -> "https://chat.qwenlm.ai"</li> |
| <li>找到名称为"token"的cookie</li> |
| <li>复制其值,这就是你的API Key</li> |
| </ol> |
|
|
| <h2>许可证</h2> |
| <p>本项目采用 MIT License 开源许可证。</p> |
| |
| <div class="endpoint"> |
| <div class="method">GET</div> |
| <div class="url">/api/models</div> |
| <div class="description"> |
| 获取可用模型列表<br> |
| 请求头需要包含 Authorization: Bearer {api_key} |
| </div> |
| </div> |
|
|
| <div class="endpoint"> |
| <div class="method">POST</div> |
| <div class="url">/api/chat/completions</div> |
| <div class="description"> |
| 与模型进行对话<br> |
| 请求头需要包含 Authorization: Bearer {api_key}<br> |
| 支持流式响应(stream: true) |
| </div> |
| </div> |
| </body> |
| </html> |