devme commited on
Commit
af63f17
·
verified ·
1 Parent(s): 36b7c16

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +11 -273
README.md CHANGED
@@ -1,273 +1,11 @@
1
- # OnDemand-API-Proxy 代理服务
2
-
3
- ## 本项目仅供学习交流使用,请勿用于其他用途
4
-
5
- 一款基于 Flask 的 API 代理服务,提供兼容 OpenAI API 的接口,支持多种大型语言模型,实现多账户轮询和会话管理。
6
-
7
- ## 功能特点
8
-
9
- - **兼容 OpenAI API**:提供标准的 `/v1/models` 和 `/v1/chat/completions` 接口
10
- - **多模型支持**:支持 GPT-4o、Claude 3.7 Sonnet、Gemini 2.0 Flash 等多种模型
11
- - **多轮对话**:通过会话管理保持对话上下文
12
- - **账户轮换**:自动轮询使用多个 on-demand.io 账户,平衡负载
13
- - **会话管理**:自动处理会话超时和重新连接
14
- - **统计面板**:提供实时使用统计和图表展示
15
- - **可配置的认证**:支持通过环境变量或配置文件设置 API 访问令牌
16
- - **Docker 支持**:易于部署到 Hugging Face Spaces 或其他容器环境
17
-
18
- ## 支持的模型
19
-
20
- 服务支持以下模型(部分列表):
21
-
22
- | API 模型名称 | 实际使用模型 |
23
- |------------|------------|
24
- | `gpt-4o` | predefined-openai-gpt4o |
25
- | `gpt-4o-mini` | predefined-openai-gpt4o-mini |
26
- | `gpt-3.5-turbo` / `gpto3-mini` | predefined-openai-gpto3-mini |
27
- | `gpt-4-turbo` / `gpt-4.1` | predefined-openai-gpt4.1 |
28
- | `gpt-4.1-mini` | predefined-openai-gpt4.1-mini |
29
- | `gpt-4.1-nano` | predefined-openai-gpt4.1-nano |
30
- | `claude-3.5-sonnet` / `claude-3.7-sonnet` | predefined-claude-3.7-sonnet |
31
- | `claude-3-opus` | predefined-claude-3-opus |
32
- | `claude-3-haiku` | predefined-claude-3-haiku |
33
- | `gemini-1.5-pro` / `gemini-2.0-flash` | predefined-gemini-2.0-flash |
34
- | `deepseek-v3` | predefined-deepseek-v3 |
35
- | `deepseek-r1` | predefined-deepseek-r1 |
36
-
37
- ## 配置说明
38
-
39
- ### 配置文件 (config.json)
40
-
41
- 配置文件支持以下参数:
42
-
43
- ```json
44
- {
45
- "api_access_token": "你的自定义访问令牌",
46
- "accounts": [
47
- {"email": "账户[email protected]", "password": "密码1"},
48
- {"email": "账户[email protected]", "password": "密码2"}
49
- ],
50
- "session_timeout_minutes": 30,
51
- "max_retries": 3,
52
- "retry_delay": 1,
53
- "request_timeout": 30,
54
- "stream_timeout": 120,
55
- "rate_limit": 60,
56
- "debug_mode": false
57
- }
58
- ```
59
-
60
- ### 环境变量
61
-
62
- 所有配置也可以通过环境变量设置:
63
-
64
- - `API_ACCESS_TOKEN`: API 访问令牌
65
- - `ONDEMAND_ACCOUNTS`: JSON 格式的账户信息
66
- - `SESSION_TIMEOUT_MINUTES`: 会话超时时间(分钟)
67
- - `MAX_RETRIES`: 最大重试次数
68
- - `RETRY_DELAY`: 重试延迟(秒)
69
- - `REQUEST_TIMEOUT`: 请求超时(秒)
70
- - `STREAM_TIMEOUT`: 流式请求超时(秒)
71
- - `RATE_LIMIT`: 速率限制(每分钟请求数)
72
- - `DEBUG_MODE`: 调试模式(true/false)
73
-
74
- ## API 接口说明
75
-
76
- ### 获取模型列表
77
-
78
- ```
79
- GET /v1/models
80
- ```
81
-
82
- 返回支持的模型列表,格式与 OpenAI API 兼容。
83
-
84
- ### 聊天补全
85
-
86
- ```
87
- POST /v1/chat/completions
88
- ```
89
-
90
- **请求头:**
91
- ```
92
- Authorization: Bearer 你的API访问令牌
93
- Content-Type: application/json
94
- ```
95
-
96
- **请求体:**
97
- ```json
98
- {
99
- "model": "gpt-4o",
100
- "messages": [
101
- {"role": "system", "content": "你是一个有用的助手。"},
102
- {"role": "user", "content": "你好,请介绍一下自己。"}
103
- ],
104
- "temperature": 0.7,
105
- "max_tokens": 2000,
106
- "stream": false
107
- }
108
- ```
109
-
110
- **参数说明:**
111
- - `model`: 使用的模型名称
112
- - `messages`: 对话消息数组
113
- - `temperature`: 温度参数(0-1)
114
- - `max_tokens`: 最大生成令牌数
115
- - `stream`: 是否使用流式响应
116
- - `top_p`: 核采样参数(0-1)
117
- - `frequency_penalty`: 频率惩罚(0-2)
118
- - `presence_penalty`: 存在惩罚(0-2)
119
-
120
- ## 统计面板
121
-
122
- 访问根路径 `/` 可以查看使用统计面板,包括:
123
-
124
- - 总请求数和成功率
125
- - Token 使用统计
126
- - 每日和每小时使用量图表
127
- - 模型使用情况
128
- - 最近请求历史
129
-
130
- ## 部署指南
131
-
132
- ### Hugging Face Spaces 部署(推荐)
133
-
134
- 1. **创建 Hugging Face 账户**:
135
- - 访问 [https://huggingface.co/](https://huggingface.co/) 注册账户
136
-
137
- 2. **创建 Space**:
138
- - 点击 [创建新的 Space](https://huggingface.co/new-space)
139
- - 填写 Space 名称
140
- - **重要**:选择 `Docker` 作为 Space 类型
141
- - 设置权限(公开或私有)
142
-
143
- 3. **上传代码**:
144
- - 将以下文件上传到你的 Space 代码仓库:
145
- - `app.py`(主程序)
146
- - `routes.py`(路由定义)
147
- - `config.py`(配置管理)
148
- - `auth.py`(认证模块)
149
- - `client.py`(客户端实现)
150
- - `utils.py`(工具函数)
151
- - `requirements.txt`(依赖列表)
152
- - `Dockerfile`(Docker 配置)
153
- - `templates/`(模板目录)
154
- - `static/`(静态资源目录)
155
-
156
- 4. **配置账户信息和 API 访问令牌**:
157
- - 进入 Space 的 "Settings" → "Repository secrets"
158
- - 添加 `ONDEMAND_ACCOUNTS` Secret:
159
- ```json
160
- {
161
- "accounts": [
162
- {"email": "你的邮箱[email protected]", "password": "你的密码1"},
163
- {"email": "你的邮箱[email protected]", "password": "你的密码2"}
164
- ]
165
- }
166
- ```
167
- - 添加 `API_ACCESS_TOKEN` Secret 设置自定义访问令牌
168
- - 如果不设置,将使用默认值 "sk-2api-ondemand-access-token-2025"
169
-
170
- 5. **可选配置**:
171
- - 添加其他环境变量如 `SESSION_TIMEOUT_MINUTES`、`RATE_LIMIT` 等
172
-
173
- 6. **完成部署**:
174
- - Hugging Face 会自动构建 Docker 镜像并部署你的 API
175
- - 访问你的 Space URL(如 `https://你的用户名-你的space名称.hf.space`)
176
-
177
- ### 本地部署
178
-
179
- 1. **克隆代码**:
180
- ```bash
181
- git clone https://github.com/你的用户名/ondemand-api-proxy.git
182
- cd ondemand-api-proxy
183
- ```
184
-
185
- 2. **安装依赖**:
186
- ```bash
187
- pip install -r requirements.txt
188
- ```
189
-
190
- 3. **配置**:
191
- - 创建 `config.json` 文件:
192
- ```json
193
- {
194
- "api_access_token": "你的自定义访问令牌",
195
- "accounts": [
196
- {"email": "账户[email protected]", "password": "密码1"},
197
- {"email": "账户[email protected]", "password": "密码2"}
198
- ]
199
- }
200
- ```
201
- - 或设置环境变量
202
-
203
- 4. **启动服务**:
204
- ```bash
205
- python app.py
206
- ```
207
-
208
- 5. **访问服务**:
209
- - API 接口:`http://localhost:5000/v1/chat/completions`
210
- - 统计面板:`http://localhost:5000/`
211
-
212
- ### Docker 部署
213
-
214
- ```bash
215
- # 构建镜像
216
- docker build -t ondemand-api-proxy .
217
-
218
- # 运行容器
219
- docker run -p 7860:7860 \
220
- -e API_ACCESS_TOKEN="你的访问令牌" \
221
- -e ONDEMAND_ACCOUNTS='{"accounts":[{"email":"账户[email protected]","password":"密码1"}]}' \
222
- ondemand-api-proxy
223
- ```
224
-
225
- ## 客户端连接
226
-
227
- ### Cherry Studio 连接
228
-
229
- 1. 打开 Cherry Studio
230
- 2. 进入设置 → API 设置
231
- 3. 选择 "OpenAI API"
232
- 4. API 密钥填入你配置的 API 访问令牌
233
- 5. API 地址填入你的服务地址(如 `https://你的用户名-你的space名称.hf.space/v1`)
234
-
235
- ### 其他 OpenAI 兼容客户端
236
-
237
- 任何支持 OpenAI API 的客户端都可以连接到此服务,只需将 API 地址修改为你的服务地址即可。
238
-
239
- ## 故障排除
240
-
241
- ### 常见问题
242
-
243
- 1. **认证失败**:
244
- - 检查 API 访问令牌是否正确配置
245
- - 确认请求头中包含 `Authorization: Bearer 你的令牌`
246
-
247
- 2. **账户连接问题**:
248
- - 确认 on-demand.io 账户信息正确
249
- - 检查账户是否被限制或封禁
250
-
251
- 3. **模型不可用**:
252
- - 确认请求的模型名称在支持列表中
253
- - 检查 on-demand.io 是否支持该模型
254
-
255
- 4. **统计图表显示错误**:
256
- - 清除浏览器缓存后重试
257
- - 检查浏览器控制台是否有错误信息
258
-
259
- ## 安全建议
260
-
261
- 1. **永远不要**在代码中硬编码账户信息和访问令牌
262
- 2. 使用环境变量或安全的配置管理系统存储敏感信息
263
- 3. 定期更换 API 访问令牌
264
- 4. 限制 API 的访问范围,只允许受信任的客户端连接
265
- 5. 启用速率限制防止滥用
266
-
267
- ## 贡献与反馈
268
-
269
- 欢迎提交 Issue 和 Pull Request 来改进此项目。如有任何问题或建议,请随时联系。
270
-
271
- ## 许可证
272
-
273
- 本项目采用 MIT 许可证。
 
1
+ ---
2
+ title: Mamm
3
+ emoji: 💻
4
+ colorFrom: blue
5
+ colorTo: gray
6
+ sdk: docker
7
+ pinned: false
8
+ app_port: 3000
9
+ ---
10
+
11
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference