{"id":13642993,"url":"https://github.com/ypwhs/creativechatglm","last_synced_at":"2025-04-07T11:06:17.580Z","repository":{"id":149996426,"uuid":"619066611","full_name":"ypwhs/CreativeChatGLM","owner":"ypwhs","description":"👋 欢迎来到 ChatGLM 创意世界！你可以使用修订和续写的功能来生成创意内容！","archived":false,"fork":false,"pushed_at":"2024-07-08T08:10:57.000Z","size":154,"stargazers_count":247,"open_issues_count":21,"forks_count":32,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-31T09:04:56.635Z","etag":null,"topics":["chat","chat-application","chatbot","chatglm","chatglm2","chatglm3","chatgpt"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ypwhs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-26T06:49:32.000Z","updated_at":"2025-02-06T11:58:40.000Z","dependencies_parsed_at":"2023-12-13T06:23:58.595Z","dependency_job_id":"bab8d0fd-8bb4-493f-85aa-8252b4255946","html_url":"https://github.com/ypwhs/CreativeChatGLM","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ypwhs%2FCreativeChatGLM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ypwhs%2FCreativeChatGLM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ypwhs%2FCreativeChatGLM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ypwhs%2FCreativeChatGLM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ypwhs","download_url":"https://codeload.github.com/ypwhs/CreativeChatGLM/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247640462,"owners_count":20971557,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chat","chat-application","chatbot","chatglm","chatglm2","chatglm3","chatgpt"],"created_at":"2024-08-02T01:01:39.257Z","updated_at":"2025-04-07T11:06:17.538Z","avatar_url":"https://github.com/ypwhs.png","language":"Python","funding_links":[],"categories":["Chatbots"],"sub_categories":[],"readme":"# 💡Creative ChatGLM WebUI\n\n👋 欢迎来到 ChatGLM 创意世界！你可以使用修订和续写的功能来生成创意内容！\n\n* 📖 你可以使用“续写”按钮帮 ChatGLM 想一个开头，并让它继续生成更多的内容。\n* 📝 你可以使用“修订”按钮修改最后一句 ChatGLM 的回复。\n\n# 环境配置\n\n## 离线包\n\n此安装方法适合：\n\n* 非开发人员，不需要写代码\n* 没有Python经验，不会搭建环境\n* 网络环境不好，配置环境、下载模型速度慢\n\n| 名称           | 大小      | 百度网盘 | 备注                                     |\n|--------------|---------| ---- |----------------------------------------|\n| **小显存离线包**   | 5.3 GB  | [点击下载](https://pan.baidu.com/s/1fI1JWBE7KP7cJsoD-dL38g?pwd=cglm) | chatglm2-6b-int4 离线包，显存需求 8GB          |\n| 大显存离线包       | 11.5 GB | [点击下载](https://pan.baidu.com/s/10oUwW2DUMDFk3RuIkaqGbA?pwd=cglm) | chatglm3-6b 离线包，显存需求 16GB              |\n| 长文本离线包       | 11.5 GB | [点击下载](https://pan.baidu.com/s/1kbeTdPcUmYd16IE0stXnTA?pwd=cglm) | chatglm3-6b-128k 离线包，显存需求 16GB         |\n| **GLM4 离线包** | 16.98GB | [点击下载](https://pan.baidu.com/s/1iGCzB5DO2sGCzKtARvTXnw?pwd=cglm) | GLM-4-9B 离线包，INT4 加载，显存需求 10GB          |\n| 环境离线包        | 2.6 GB  | [点击下载](https://pan.baidu.com/s/1Kt9eZlgXJ03bVwIM22IR6w?pwd=cglm) | 不带权重的环境包，启动之后自动下载 chatglm2-6b-int4 权重。 |\n\n除了这些一键环境包之外，你还可以在下面下载更多模型的权重。\n\n* 百度网盘链接：[https://pan.baidu.com/s/1pnIEj66scZOswHm8oivXmw?pwd=cglm](https://pan.baidu.com/s/1pnIEj66scZOswHm8oivXmw?pwd=cglm)\n\n下载好环境包之后，解压，然后运行 `start_offline.bat` 脚本，即可启动服务：\n\n![Snipaste_2024-04-07_16-14-54](https://github.com/ypwhs/CreativeChatGLM/assets/10473170/7ab0c0e8-9ada-43ad-b237-ba0f2008bdac)\n\n如果你想使用 API 的形式来调用，可以运行 `start_offline_api.bat` 启动 API 服务：\n\n![Snipaste_2024-04-07_16-16-01](https://github.com/ypwhs/CreativeChatGLM/assets/10473170/959c1742-da2e-4b37-b40f-6fb96c53ab89)\n\n## 虚拟环境\n\n此安装方法适合已经安装了 Python，但是希望环境与系统已安装的 Python 环境隔离的用户。\n\n\u003cdetails\u003e\u003csummary\u003e点击查看详细步骤\u003c/summary\u003e\n\n首先启动 `setup_venv.bat` 脚本，安装环境：\n\n![image](https://user-images.githubusercontent.com/10473170/227982667-a8090ffa-f836-4ebc-93a1-91ab39d9259b.png)\n\n然后使用 `start_venv.bat` 脚本启动服务：\n\n![image](https://user-images.githubusercontent.com/10473170/227983154-27ed9751-b9c3-44ec-9583-31f192955b11.png)\n\n\u003c/details\u003e\n\n## Python 开发环境\n\n此项配置方法适合代码开发人员，使用的是自己系统里安装的 Python。\n\n环境配置参考官方链接：[https://github.com/THUDM/ChatGLM-6B](https://github.com/THUDM/ChatGLM-6B)\n\n配置好之后，运行 `app.py` 开始使用，或者使用 IDE 开始开发。\n\n# 用法介绍\n\n## 续写\n\n### 原始对话\n\n如果你直接问 ChatGLM：“你几岁了？”\n\n它只会回答：“作为一个人工智能语言模型，我没有年龄，我只是一个正在不断学习和进化的程序。”\n\n\u003cimg width=\"388\" alt=\"image\" src=\"https://user-images.githubusercontent.com/10473170/227778266-e7f2b55a-59de-4eee-bfa2-f28f911ec018.png\"\u003e\n\n### 续写对话\n\n而如果你给它起个头：“我今年”\n\n它就会回答：“我今年21岁。”\n\n\u003cimg width=\"388\" alt=\"image\" src=\"https://user-images.githubusercontent.com/10473170/227778334-d459ad8d-7c16-466d-851c-5af174216773.png\"\u003e\n\n### 使用视频\n\n![ChatGLM2](https://user-images.githubusercontent.com/10473170/227778636-a8fcd650-eeeb-44e5-8f24-9260b27cce5d.gif)\n\n## 修订\n\n### 原始对话\n\n如果你直接跟 ChatGLM 说：“你是谁？”\n\n它会回答：“我是一个名为 ChatGLM-6B 的人工智能助手，是基于清华大学 KEG 实验室和智谱 AI 公司于 2023 年共同训练的语言模型开发的。我的任务是针对用户的问题和要求提供适当的答复和支持。”\n\n你再问它：“你几岁了？”\n\n它只会说：“作为一个人工智能助手，我没有年龄，因为我只是一个程序，没有实际的肉体或生命。我只是一个在计算机上运行的程序，专门设计为回答用户的问题和提供相关的帮助。”\n\n![image](https://user-images.githubusercontent.com/10473170/227777039-75b9dfb6-9b83-45af-8555-c3a27808c683.png)\n\n### 修改对话\n\n你可以改变它的角色，比如你通过“修订”功能，将它的回复改成：“我是杨开心。”\n\n然后你再问它：“你几岁了？”\n\n它就会回答：“我今年15岁。”\n\n![image](https://user-images.githubusercontent.com/10473170/227777136-e2a176f8-6742-41a9-abaf-72a9540b834d.png)\n\n### 使用视频\n\n![未命名项目](https://user-images.githubusercontent.com/10473170/227777930-6aa5981a-0695-40c7-b083-b76bb063c481.gif)\n\n### 重新对话\n\n你可以按照某个输入，重复生成对话，从而拿到满意的结果。\n\n### 使用视频\n\n![20u5z-svohg](https://user-images.githubusercontent.com/10473170/233827340-4973c0fd-2fc5-4941-8f8d-2216cbee8ed9.gif)\n\n# 实现原理\n\n这个方法并没有训练，没有修改官方发布的权重，而只是对推理的函数做了修改。\n\n续写的原理是，将用户的输入直接设置为 `history[-1][1]`，模拟模型自己的部分输出，然后继续走之后的推理函数 `stream_chat_continue` [code](https://github.com/ypwhs/CreativeChatGLM/blob/a5c6dd1/chatglm/modeling_chatglm.py#L1158)。\n\n修订的原理是，将用户的输入直接设置为 `history[-1][1]`，模拟模型自己的完整输出，但是不走推理函数。\n\n# 离线包制作方法\n\n关于本项目中的离线包制作方法，可以查看下面的详细步骤。\n\n\u003cdetails\u003e\u003csummary\u003e点击查看详细步骤\u003c/summary\u003e\n\n## 准备 Python\n\n首先去 Python 官网下载：[https://www.python.org/downloads/](https://www.python.org/downloads/)\n\n![image](https://user-images.githubusercontent.com/10473170/229679144-86d96c5c-58e0-4a54-9657-ccfe37943c6e.png)\n\n注意要下载 `Windows embeddable package (64-bit)` 离线包，我选择的是 [python-3.10.10-embed-amd64.zip](https://www.python.org/ftp/python/3.10.10/python-3.10.10-embed-amd64.zip)。\n\n![image](https://user-images.githubusercontent.com/10473170/229679189-1f8b2032-c92c-47ee-ba25-147f4acbf90f.png)\n\n解压到 `./system/python` 目录下。\n\n![image](https://user-images.githubusercontent.com/10473170/229679264-b3633920-757f-4ab8-b9f8-e79a21036146.png)\n\n## 准备 get-pip.py\n\n去官网下载：[https://bootstrap.pypa.io/get-pip.py](https://bootstrap.pypa.io/get-pip.py)\n\n保存到 `./system/python` 目录下。\n\n## ⚠️必做\n\n解压之后，记得删除 pth 文件，以解决安装依赖的问题。\n\n比如我删除的文件路径是 `./system/python/python310._pth`\n\n![image](https://user-images.githubusercontent.com/10473170/229679450-7acc005d-8203-4dd6-8be9-fa546aeaa2bf.png)\n\n## 安装依赖\n\n运行 [setup_offline.bat](setup_offline.bat) 脚本，安装依赖。\n\n![image](https://user-images.githubusercontent.com/10473170/229679544-162b8db1-851f-47f0-af54-675c6a710b42.png)\n\n## 下载离线模型\n\n你可以使用 [download_model.py](download_model.py) 脚本下载模型，如果你的网络环境不好，这个过程可能会很长。下载的模型会存在 `~/.cache` 一份，存在 `./models` 一份。\n\n当你之后使用 `AutoModel.from_pretrained` 加载模型时，可以从 `~/.cache` 缓存目录加载模型，避免二次下载。\n\n![image](https://user-images.githubusercontent.com/10473170/229679938-44486557-dbc7-4e0b-9793-acfb6c46459e.png)\n\n下载好的模型，你需要从 `./models` 文件夹移出到项目目录下，这样就可以离线加载了。\n\n![image](https://user-images.githubusercontent.com/10473170/229680125-6af06b25-3d26-49cc-969b-4f6154c522de.png)\n\n下载完模型之后，你需要修改 [app.py](app.py) 里的 `model_name`，改成你想加载的模型名称。\n\n## 测试\n\n使用 [start_offline.bat](start_offline.bat) 启动服务：\n\n![image](https://user-images.githubusercontent.com/10473170/229680404-0b28dfd4-382e-4cfc-9392-997f134c0242.png)\n\n可以看到，服务正常启动。\n\n\u003c/details\u003e\n\n# 协议\n\n本仓库的代码依照 [Apache-2.0](LICENSE) 协议开源，ChatGLM-6B 模型的权重的使用则需要遵循 [Model License](MODEL_LICENSE)。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fypwhs%2Fcreativechatglm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fypwhs%2Fcreativechatglm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fypwhs%2Fcreativechatglm/lists"}