默认模型更改为ChatGLM2-6B
这是一个可以自己在本地部署的ChatGLM网页,使用ChatGLM-6B模型来实现接近ChatGPT的对话效果。
源代码Fork和修改于Chanzhaoyu/chatgpt-web & WenJing95/chatgpt-web& 开源模型ChatGLM
与ChatGPT对比,ChatGLM Web有以下优势:
- 独立部署。
ChatGLM Web只需要一个能运行ChatGLM-6B模型的服务器即可使用,可以使用自己微调的GLM模型。 - 完全离线。
ChatGLM Web依赖于ChatGLM-6B模型,可以在离线环境或者内网中使用。
[✗] 支持chatglm、llama等模型
[✓] 追上原仓库的功能(权限控制、图片、消息导入导出、Prompt Store)
[✗] 支持langchain的知识问答
[✗] More...
如果你不需要自己开发,只需要部署使用,可以直接跳到 使用最新版本docker镜像启动(待完善)
node 需要 ^16 || ^18 版本(node >= 14
需要安装 fetch polyfill
),使用 nvm 可管理本地多个 node 版本
node -v如果你没有安装过 pnpm
npm install pnpm -gpython 需要 3.8 以上版本,进入文件夹 /service 运行以下命令
pip install --no-cache-dir -r requirements.txt| 量化等级 | 最低 GPU 显存(推理) | 最低 GPU 显存(高效参数微调) |
|---|---|---|
| FP16(无量化) | 13 GB | 14 GB |
| INT8 | 8 GB | 9 GB |
| INT4 | 6 GB | 7 GB |
# 使用知识库功能需要在启动API前运行
python gen_data.py
# 进入文件夹 `/service` 运行以下命令
python main.py还有以下可选参数可用:
device使用设备,cpu或者gpuquantize量化等级。可选值:16,8,4,默认为16hostHOST,默认值为 0.0.0.0portPORT,默认值为 3002
也就是说可以这样启动(这里修改端口的话前端也需要修改,建议使用默认端口)
python main.py --device='cuda:0' --quantize=16 --host='0.0.0.0' --port=3002根目录下运行以下命令
# 前端网页的默认端口号是3000,对接的后端服务的默认端口号是3002,可以在 .env 和 .vite.config.ts 文件中修改
pnpm bootstrap
pnpm dev-- 待更新
Q: 为什么 Git 提交总是报错?
A: 因为有提交信息验证,请遵循 Commit 指南
Q: 如果只使用前端页面,在哪里改请求接口?
A: 根目录下 .env 文件中的 VITE_GLOB_API_URL 字段。
Q: 文件保存时全部爆红?
A: vscode 请安装项目推荐插件,或手动安装 Eslint 插件。
Q: 前端没有打字机效果?
A: 一种可能原因是经过 Nginx 反向代理,开启了 buffer,则 Nginx
会尝试从后端缓冲一定大小的数据再发送给浏览器。请尝试在反代参数后添加 proxy_buffering off;,然后重载 Nginx。其他 web
server 配置同理。
Q: build docker容器的时候,显示exec entrypoint.sh: no such file or directory?
A: 因为entrypoint.sh文件的换行符是LF,而不是CRLF,如果你用CRLF的IDE操作过这个文件,可能就会出错。可以使用dos2unix工具将LF换成CRLF。
贡献之前请先阅读 贡献指南
感谢原作者Chanzhaoyu和所有做过贡献的人,开源模型ChatGLM
如果你觉得这个项目对你有帮助,请给我点个Star。
如果情况允许,请支持原作者Chanzhaoyu
MIT © NCZkevin