ChatGLM-6B icon indicating copy to clipboard operation
ChatGLM-6B copied to clipboard

[Feature] ChatGLM-6B self host API

Open imClumsyPanda opened this issue 2 years ago • 6 comments

Is your feature request related to a problem? Please describe.

No response

Solutions

基于现有 ChatGLM-6B 项目,开了一个利用 fastapi 建立私有 API 的项目 ChatGLM-6B-API,希望后面能够利用 API 开展类似 ChatGPT API 的各种应用

Additional context

No response

imClumsyPanda avatar Mar 17 '23 15:03 imClumsyPanda

是否支持流式输出呢

xzqiaochu avatar Mar 18 '23 08:03 xzqiaochu

@xzqiaochu 目前还不支持 这两天我研究一下怎么搞

imClumsyPanda avatar Mar 18 '23 09:03 imClumsyPanda

我找到了一种控制台流式输出的方法,在 #78

xzqiaochu avatar Mar 19 '23 03:03 xzqiaochu

@xzqiaochu 厉害了!这两天我适配一下

imClumsyPanda avatar Mar 19 '23 03:03 imClumsyPanda

有个给GPT-3.5写的,可以流式输出的项目,https://github.com/Chanzhaoyu/chatgpt-web 如果适配这个的前端就很棒啦

xzqiaochu avatar Mar 19 '23 03:03 xzqiaochu

@xzqiaochu 我也想能适配这种 可是目前技术还不太够搞定这个😭

imClumsyPanda avatar Mar 19 '23 06:03 imClumsyPanda

我建了个支持流式的仓库, API跟openai类似, openai的应用可以无缝接入: #204 目前精力有限只适配了ChatGLM, 要是能多些人适配其他社区模型就好了

josStorer avatar Apr 03 '23 11:04 josStorer

@josStorer 我在Github也找到一个ChatGLM的API实现,兼容了OpenAI的GPT-3.5请求格式 https://github.com/TylunasLi/ChatGLM-web-stream-demo

xzqiaochu avatar Apr 03 '23 12:04 xzqiaochu

@xzqiaochu 我看了下这个功能性上比我的更完善, 我的实际上只实现了 chat/completions 的参数和返回一致, 并且没给显存清理

不过他的API并不是兼容的, 官方API通过body指定stream参数控制是否流式, 以及可以设定max_tokens, 消息部分的数组是带有role和content的键值对构成的对象, 而这个项目传递对话消息是一个单纯的字符串数组 我的仓库支持这些内容, API上更加一致一些

我的项目起初是为了给我开发的一个openai api的应用使用, 为了避免写额外的适配代码, 我做成了兼容的形式, 并且后续我在使用的时候, 就是直接把openai调用的代码复制过来, 改个路径和返回json的取值就能直接用, 更方便各类应用无成本接入GLM, 这方面应该是我的API兼容性更强一些 (自吹自擂一波 😂)

josStorer avatar Apr 03 '23 12:04 josStorer

我在 原ChatGLM-web-stream-demo的基础上简单修改了一下,可以兼容ChatGPT API并流式增量输出。https://github.com/didiniao/ChatGLM-web-stream-demo

didiniao avatar Apr 07 '23 10:04 didiniao

可以通过PR把项目链接加到友情链接中

duzx16 avatar Apr 12 '23 15:04 duzx16