alcex commited on
Commit
76b42d7
·
verified ·
1 Parent(s): d535265

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +2 -536
README.md CHANGED
@@ -1,534 +1,3 @@
1
- <<<<<<< HEAD
2
- # GLM AI Free 服务
3
-
4
- [![](https://img.shields.io/github/license/llm-red-team/glm-free-api.svg)](LICENSE)
5
- ![](https://img.shields.io/github/stars/llm-red-team/glm-free-api.svg)
6
- ![](https://img.shields.io/github/forks/llm-red-team/glm-free-api.svg)
7
- ![](https://img.shields.io/docker/pulls/vinlic/glm-free-api.svg)
8
-
9
- 支持高速流式输出、支持多轮对话、支持智能体对话、支持AI绘图、支持联网搜索、支持长文档解读、支持图像解析,零配置部署,多路token支持,自动清理会话痕迹。
10
-
11
- 与ChatGPT接口完全兼容。
12
-
13
- 还有以下七个free-api欢迎关注:
14
-
15
- Moonshot AI(Kimi.ai)接口转API [kimi-free-api](https://github.com/LLM-Red-Team/kimi-free-api)
16
-
17
- 阶跃星辰 (跃问StepChat) 接口转API [step-free-api](https://github.com/LLM-Red-Team/step-free-api)
18
-
19
- 阿里通义 (Qwen) 接口转API [qwen-free-api](https://github.com/LLM-Red-Team/qwen-free-api)
20
-
21
- 秘塔AI (Metaso) 接口转API [metaso-free-api](https://github.com/LLM-Red-Team/metaso-free-api)
22
-
23
- 讯飞星火(Spark)接口转API [spark-free-api](https://github.com/LLM-Red-Team/spark-free-api)
24
-
25
- MiniMax(海螺AI)接口转API [hailuo-free-api](https://github.com/LLM-Red-Team/hailuo-free-api)
26
-
27
- 聆心智能 (Emohaa) 接口转API [emohaa-free-api](https://github.com/LLM-Red-Team/emohaa-free-api)
28
-
29
- ## 目录
30
-
31
- * [免责声明](#免责声明)
32
- * [在线体验](#在线体验)
33
- * [效果示例](#效果示例)
34
- * [接入准备](#接入准备)
35
- * [智能体接入](#智能体接入)
36
- * [多账号接入](#多账号接入)
37
- * [Docker部署](#Docker部署)
38
- * [Docker-compose部署](#Docker-compose部署)
39
- * [Render部署](#Render部署)
40
- * [Vercel部署](#Vercel部署)
41
- * [原生部署](#原生部署)
42
- * [推荐使用客户端](#推荐使用客户端)
43
- * [接口列表](#接口列表)
44
- * [对话补全](#对话补全)
45
- * [AI绘图](#AI绘图)
46
- * [文档解读](#文档解读)
47
- * [图像解析](#图像解析)
48
- * [refresh_token存活检测](#refresh_token存活检测)
49
- * [注意事项](#注意事项)
50
- * [Nginx反代优化](#Nginx反代优化)
51
- * [Token统计](#Token统计)
52
- * [Star History](#star-history)
53
-
54
- ## 免责声明
55
-
56
- **逆向API是不稳定的,建议前往智谱AI官方 https://open.bigmodel.cn/ 付费使用API,避免封禁的风险。**
57
-
58
- **本组织和个人不接受任何资金捐助和交易,此项目是纯粹研究交流学习性质!**
59
-
60
- **仅限自用,禁止对外提供服务或商用,避免对官方造成服务压力,否则风险自担!**
61
-
62
- **仅限自用,禁止对外提供服务或商用,避免对官方造成服务压力,否则风险自担!**
63
-
64
- **仅限自用,禁止对外提供服务或商用,避免对官方造成服务压力,否则风险自担!**
65
-
66
- ## 在线体验
67
-
68
- 此链接仅临时测试功能,只有一路并发,如果遇到异常请稍后重试,建议自行部署使用。
69
-
70
- https://udify.app/chat/Pe89TtaX3rKXM8NS
71
-
72
- ## 效果示例
73
-
74
- ### 验明正身Demo
75
-
76
- ![验明正身](./doc/example-1.png)
77
-
78
- ### 智能体对话Demo
79
-
80
- 对应智能体链接:[网抑云评论生成器](https://chatglm.cn/main/gdetail/65c046a531d3fcb034918abe)
81
-
82
- ![智能体对话](./doc/example-9.png)
83
-
84
- ### 结合Dify工作流Demo
85
-
86
- 体验地址:https://udify.app/chat/m46YgeVLNzFh4zRs
87
-
88
- <img width="390" alt="image" src="https://github.com/LLM-Red-Team/glm-free-api/assets/20235341/4773b9f6-b1ca-460c-b3a7-c56bdb1f0659">
89
-
90
- ### 多轮对话Demo
91
-
92
- ![多轮对话](./doc/example-6.png)
93
-
94
- ### AI绘图Demo
95
-
96
- ![AI绘图](./doc/example-10.png)
97
-
98
- ### 联网搜索Demo
99
-
100
- ![联网搜索](./doc/example-2.png)
101
-
102
- ### 长文档解读Demo
103
-
104
- ![长文档解读](./doc/example-5.png)
105
-
106
- ### 代码调用Demo
107
-
108
- ![代码调用](./doc/example-12.png)
109
-
110
- ### 图像解析Demo
111
-
112
- ![图像解析](./doc/example-3.png)
113
-
114
- ## 接入准备
115
-
116
- 从 [智谱清言](https://chatglm.cn/) 获取refresh_token
117
-
118
- 进入智谱清言随便发起一个对话,然后F12打开开发者工具,从Application > Cookies中找到`chatglm_refresh_token`的值,这将作为Authorization的Bearer Token值:`Authorization: Bearer TOKEN`
119
-
120
- ![example0](./doc/example-0.png)
121
-
122
- ### 智能体接入
123
-
124
- 打开智能体的聊天界面,地址栏的一串ID就是智能体的ID,复制下来备用,这个值将用作调用时的 `model` 参数值。
125
-
126
- ![example11](./doc/example-11.png)
127
-
128
- ### 多账号接入
129
-
130
- 目前似乎限制同个账号同时只能有*一路*输出,你可以通过提供多个账号的chatglm_refresh_token并使用`,`拼接提供:
131
-
132
- `Authorization: Bearer TOKEN1,TOKEN2,TOKEN3`
133
-
134
- 每次请求服务会从中挑选一个。
135
-
136
- ## Docker部署
137
-
138
- 请准备一台具有公网IP的服务器并将8000端口开放。
139
-
140
- 拉取镜像并启动服务
141
-
142
- ```shell
143
- docker run -it -d --init --name glm-free-api -p 8000:8000 -e TZ=Asia/Shanghai vinlic/glm-free-api:latest
144
- ```
145
-
146
- 查看服务实时日志
147
-
148
- ```shell
149
- docker logs -f glm-free-api
150
- ```
151
-
152
- 重启服务
153
-
154
- ```shell
155
- docker restart glm-free-api
156
- ```
157
-
158
- 停止服务
159
-
160
- ```shell
161
- docker stop glm-free-api
162
- ```
163
-
164
- ### Docker-compose部署
165
-
166
- ```yaml
167
- version: '3'
168
-
169
- services:
170
- glm-free-api:
171
- container_name: glm-free-api
172
- image: vinlic/glm-free-api:latest
173
- restart: always
174
- ports:
175
- - "8000:8000"
176
- environment:
177
- - TZ=Asia/Shanghai
178
- ```
179
-
180
- ### Render部署
181
-
182
- **注意:部分部署区域可能无法连接glm,如容器日志出现请求超时或无法连接,请切换其他区域部署!**
183
- **注意:免费账户的容器实例将在一段时间不活动时自动停止运行,这会导致下次请求时遇到50秒或更长的延迟,建议查看[Render容器保活](https://github.com/LLM-Red-Team/free-api-hub/#Render%E5%AE%B9%E5%99%A8%E4%BF%9D%E6%B4%BB)**
184
-
185
- 1. fork本项目到你的github账号下。
186
-
187
- 2. 访问 [Render](https://dashboard.render.com/) 并登录你的github账号。
188
-
189
- 3. 构建你的 Web Service(New+ -> Build and deploy from a Git repository -> Connect你fork的项目 -> 选择部署区域 -> 选择实例类型为Free -> Create Web Service)。
190
-
191
- 4. 等待构建完成后,复制分配的域名并拼接URL访问即可。
192
-
193
- ### Vercel部署
194
-
195
- **注意:Vercel免费账户的请求响应超时时间为10秒,但接口响应通常较久,可能会遇到Vercel返回的504超时错误!**
196
-
197
- 请先确保安装了Node.js环境。
198
-
199
- ```shell
200
- npm i -g vercel --registry http://registry.npmmirror.com
201
- vercel login
202
- git clone https://github.com/LLM-Red-Team/glm-free-api
203
- cd glm-free-api
204
- vercel --prod
205
- ```
206
-
207
- ## 原生部署
208
-
209
- 请准备一台具有公网IP的服务器并将8000端口开放。
210
-
211
- 请先安装好Node.js环境并且配置好环境变量,确认node命令可用。
212
-
213
- 安装依赖
214
-
215
- ```shell
216
- npm i
217
- ```
218
-
219
- 安装PM2进行进程守护
220
-
221
- ```shell
222
- npm i -g pm2
223
- ```
224
-
225
- 编译构建,看到dist目录就是构建完成
226
-
227
- ```shell
228
- npm run build
229
- ```
230
-
231
- 启动服务
232
-
233
- ```shell
234
- pm2 start dist/index.js --name "glm-free-api"
235
- ```
236
-
237
- 查看服务实时日志
238
-
239
- ```shell
240
- pm2 logs glm-free-api
241
- ```
242
-
243
- 重启服务
244
-
245
- ```shell
246
- pm2 reload glm-free-api
247
- ```
248
-
249
- 停止服务
250
-
251
- ```shell
252
- pm2 stop glm-free-api
253
- ```
254
-
255
- ## 推荐使用客户端
256
-
257
- 使用以下二次开发客户端接入free-api系列项目更快更简单,支持文档/图像上传!
258
-
259
- 由 [Clivia](https://github.com/Yanyutin753/lobe-chat) 二次开发的LobeChat [https://github.com/Yanyutin753/lobe-chat](https://github.com/Yanyutin753/lobe-chat)
260
-
261
- 由 [时光@](https://github.com/SuYxh) 二次开发的ChatGPT Web [https://github.com/SuYxh/chatgpt-web-sea](https://github.com/SuYxh/chatgpt-web-sea)
262
-
263
- ## 接口列表
264
-
265
- 目前支持与openai兼容的 `/v1/chat/completions` 接口,可自行使用与openai或其他兼容的客户端接入接口,或者使用 [dify](https://dify.ai/) 等线上服务接入使用。
266
-
267
- ### 对话补全
268
-
269
- 对话补全接口,与openai的 [chat-completions-api](https://platform.openai.com/docs/guides/text-generation/chat-completions-api) 兼容。
270
-
271
- **POST /v1/chat/completions**
272
-
273
- header 需要设置 Authorization 头部:
274
-
275
- ```
276
- Authorization: Bearer [refresh_token]
277
- ```
278
-
279
- 请求数据:
280
- ```json
281
- {
282
- // 如果使用智能体请填写智能体ID到此处,否则可以乱填
283
- "model": "glm4",
284
- // 目前多轮对话基于消息合并实现,某些场景可能导致能力下降且受单轮最大token数限制
285
- // 如果您想获得原生的多轮对话体验,可以传入首轮消息获得的id,来接续上下文
286
- // "conversation_id": "65f6c28546bae1f0fbb532de",
287
- "messages": [
288
- {
289
- "role": "user",
290
- "content": "你叫什么?"
291
- }
292
- ],
293
- // 如果使用SSE流请设置为true,默认false
294
- "stream": false
295
- }
296
- ```
297
-
298
- 响应数据:
299
- ```json
300
- {
301
- // 如果想获得原生多轮对话体验,此id,你可以传入到下一轮对话的conversation_id来接续上下文
302
- "id": "65f6c28546bae1f0fbb532de",
303
- "model": "glm4",
304
- "object": "chat.completion",
305
- "choices": [
306
- {
307
- "index": 0,
308
- "message": {
309
- "role": "assistant",
310
- "content": "我叫智谱清言,是基于智谱 AI 公司于 2023 年训练的 ChatGLM 开发的。我的任务是针对用户的问题和要求提供适当的答复和支持。"
311
- },
312
- "finish_reason": "stop"
313
- }
314
- ],
315
- "usage": {
316
- "prompt_tokens": 1,
317
- "completion_tokens": 1,
318
- "total_tokens": 2
319
- },
320
- "created": 1710152062
321
- }
322
- ```
323
-
324
- ### AI绘图
325
-
326
- 对话补全接口,与openai的 [images-create-api](https://platform.openai.com/docs/api-reference/images/create) 兼容。
327
-
328
- **POST /v1/images/generations**
329
-
330
- header 需要设置 Authorization 头部:
331
-
332
- ```
333
- Authorization: Bearer [refresh_token]
334
- ```
335
-
336
- 请求数据:
337
- ```json
338
- {
339
- // 如果使用智能体请填写智能体ID到此处,否则可以乱填
340
- "model": "cogview-3",
341
- "prompt": "一只可爱的猫"
342
- }
343
- ```
344
-
345
- 响应数据:
346
- ```json
347
- {
348
- "created": 1711507449,
349
- "data": [
350
- {
351
- "url": "https://sfile.chatglm.cn/testpath/5e56234b-34ae-593c-ba4e-3f7ba77b5768_0.png"
352
- }
353
- ]
354
- }
355
- ```
356
-
357
- ### 文档解读
358
-
359
- 提供一个可访问的文件URL或者BASE64_URL进行解析。
360
-
361
- **POST /v1/chat/completions**
362
-
363
- header 需要设置 Authorization 头部:
364
-
365
- ```
366
- Authorization: Bearer [refresh_token]
367
- ```
368
-
369
- 请求数据:
370
- ```json
371
- {
372
- // 如果使用智能体请填写智能体ID到此处,否则可以乱填
373
- "model": "glm4",
374
- "messages": [
375
- {
376
- "role": "user",
377
- "content": [
378
- {
379
- "type": "file",
380
- "file_url": {
381
- "url": "https://mj101-1317487292.cos.ap-shanghai.myqcloud.com/ai/test.pdf"
382
- }
383
- },
384
- {
385
- "type": "text",
386
- "text": "文档里说了什么?"
387
- }
388
- ]
389
- }
390
- ],
391
- // 如果使用SSE流请设置为true,默认false
392
- "stream": false
393
- }
394
- ```
395
-
396
- 响应数据:
397
- ```json
398
- {
399
- "id": "cnmuo7mcp7f9hjcmihn0",
400
- "model": "glm4",
401
- "object": "chat.completion",
402
- "choices": [
403
- {
404
- "index": 0,
405
- "message": {
406
- "role": "assistant",
407
- "content": "根据文档内容,我总结如下:\n\n这是一份关于希腊罗马时期的魔法咒语和仪式的文本,包含几个魔法仪式:\n\n1. 一个涉及面包、仪式场所和特定咒语的仪式,用于使某人爱上你。\n\n2. 一个针对女神赫卡忒的召唤仪式,用来折磨某人直到她自愿来到你身边。\n\n3. 一个通过念诵爱神阿芙罗狄蒂的秘密名字,连续七天进行仪式,来赢得一个美丽女子的心。\n\n4. 一个通过燃烧没药并念诵咒语,让一个女子对你产生强烈欲望的仪式。\n\n这些仪式都带有魔法和迷信色彩,使用各种咒语和象征性行为来影响人的感情和意愿。"
408
- },
409
- "finish_reason": "stop"
410
- }
411
- ],
412
- "usage": {
413
- "prompt_tokens": 1,
414
- "completion_tokens": 1,
415
- "total_tokens": 2
416
- },
417
- "created": 100920
418
- }
419
- ```
420
-
421
- ### 图像解析
422
-
423
- 提供一个可访问的图像URL或者BASE64_URL进行解析。
424
-
425
- 此格式兼容 [gpt-4-vision-preview](https://platform.openai.com/docs/guides/vision) API格式,您也可以用这个格式传送文档进行解析。
426
-
427
- **POST /v1/chat/completions**
428
-
429
- header 需要设置 Authorization 头部:
430
-
431
- ```
432
- Authorization: Bearer [refresh_token]
433
- ```
434
-
435
- 请求数据:
436
- ```json
437
- {
438
- "model": "65c046a531d3fcb034918abe",
439
- "messages": [
440
- {
441
- "role": "user",
442
- "content": [
443
- {
444
- "type": "image_url",
445
- "image_url": {
446
- "url": "http://1255881664.vod2.myqcloud.com/6a0cd388vodbj1255881664/7b97ce1d3270835009240537095/uSfDwh6ZpB0A.png"
447
- }
448
- },
449
- {
450
- "type": "text",
451
- "text": "图像描述了什么?"
452
- }
453
- ]
454
- }
455
- ],
456
- "stream": false
457
- }
458
- ```
459
-
460
- 响应数据:
461
- ```json
462
- {
463
- "id": "65f6c28546bae1f0fbb532de",
464
- "model": "glm",
465
- "object": "chat.completion",
466
- "choices": [
467
- {
468
- "index": 0,
469
- "message": {
470
- "role": "assistant",
471
- "content": "图片中展示的是一个蓝色背景下的logo,具体地,左边是一个由多个蓝色的圆点组成的圆形图案,右边是“智谱·AI”四个字,字体颜色为蓝色。"
472
- },
473
- "finish_reason": "stop"
474
- }
475
- ],
476
- "usage": {
477
- "prompt_tokens": 1,
478
- "completion_tokens": 1,
479
- "total_tokens": 2
480
- },
481
- "created": 1710670469
482
- }
483
- ```
484
-
485
- ### refresh_token存活检测
486
-
487
- 检测refresh_token是否存活,如果存活live未true,否则为false,请不要频繁(小于10分钟)调用此接口。
488
-
489
- **POST /token/check**
490
-
491
- 请求数据:
492
- ```json
493
- {
494
- "token": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9..."
495
- }
496
- ```
497
-
498
- 响应数据:
499
- ```json
500
- {
501
- "live": true
502
- }
503
- ```
504
-
505
- ## 注意事项
506
-
507
- ### Nginx反代优化
508
-
509
- 如果您正在使用Nginx反向代理glm-free-api,请添加以下配置项优化流的输出效果,优化体验感。
510
-
511
- ```nginx
512
- # 关闭代理缓冲。当设置为off时,Nginx会立即将客户端请求发送到后端服务器,并立即将从后端服务器接收到的响应发送回客户端。
513
- proxy_buffering off;
514
- # 启用分块传输编码。分块传输编码允许服务器为动态生成的内容分块发送数据,而不需要预先知道内容的大小。
515
- chunked_transfer_encoding on;
516
- # 开启TCP_NOPUSH,这告诉Nginx在数据包发送到客户端之前,尽可能地发送数据。这通常在sendfile使用时配合使用,可以提高网络效率。
517
- tcp_nopush on;
518
- # 开启TCP_NODELAY,这告诉Nginx不延迟发送数据,立即发送小数据包。在某些情况下,这可以减少网络的延迟。
519
- tcp_nodelay on;
520
- # 设置保持��接的超时时间,这里设置为120秒。如果在这段时间内,客户端和服务器之间没有进一步的通信,连接将被关闭。
521
- keepalive_timeout 120;
522
- ```
523
-
524
- ### Token统计
525
-
526
- 由于推理侧不在glm-free-api,因此token不可统计,将以固定数字返回。
527
-
528
- ## Star History
529
-
530
- [![Star History Chart](https://api.star-history.com/svg?repos=LLM-Red-Team/glm-free-api&type=Date)](https://star-history.com/#LLM-Red-Team/glm-free-api&Date)
531
- =======
532
  ---
533
  title: Chat
534
  emoji: 👀
@@ -536,8 +5,5 @@ colorFrom: blue
536
  colorTo: purple
537
  sdk: docker
538
  pinned: false
539
- app_port: 3040
540
- ---
541
-
542
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
543
- >>>>>>> 4455ad7349e4c5bf6294f675bf5ba50426e5058d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
  title: Chat
3
  emoji: 👀
 
5
  colorTo: purple
6
  sdk: docker
7
  pinned: false
8
+ app_port: 8080
9
+ ---