[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"tool-Doragd--Chinese-Chatbot-PyTorch-Implementation":3,"similar-Doragd--Chinese-Chatbot-PyTorch-Implementation":88},{"id":4,"github_repo":5,"name":6,"description_en":7,"description_zh":8,"ai_summary_zh":8,"readme_en":9,"readme_zh":10,"quickstart_zh":11,"use_case_zh":12,"hero_image_url":13,"owner_login":14,"owner_name":15,"owner_avatar_url":16,"owner_bio":17,"owner_company":18,"owner_location":19,"owner_email":20,"owner_twitter":21,"owner_website":22,"owner_url":23,"languages":24,"stars":29,"forks":30,"last_commit_at":31,"license":32,"difficulty_score":33,"env_os":34,"env_gpu":35,"env_ram":35,"env_deps":36,"category_tags":43,"github_topics":46,"view_count":52,"oss_zip_url":53,"oss_zip_packed_at":53,"status":54,"created_at":55,"updated_at":56,"faqs":57,"releases":87},165,"Doragd\u002FChinese-Chatbot-PyTorch-Implementation","Chinese-Chatbot-PyTorch-Implementation",":four_leaf_clover: Another Chinese chatbot implemented in PyTorch,  which is the sub-module of intelligent work order processing robot. 👩‍🔧","“小智”是一个基于 PyTorch 实现的中文聊天机器人，最初作为智能工单处理系统的子模块开发，用于在知识库无匹配时自动回复用户提问。它结合了 Seq2Seq 模型与注意力机制（Global Attention + dot 分数计算），使用青云语料库训练，能进行生活化对话。系统优先从 QA 知识库（如云服务器、域名等常见问题）中检索答案，未命中时才调用小智生成回复，适合客服场景下的兜底应答。项目结构清晰，包含数据预处理、模型训练、评估和交互测试全流程，适合 NLP 初学者学习或开发者二次开发。虽然模型规模不大、效果尚有提升空间，但完整实现了从语料清洗到部署交互的闭环，是理解对话系统实战的好案例。依赖库轻量（PyTorch 1.0+、jieba 等），支持灵活配置是否启用知识库，普通用户可直接体验对话，开发者可轻松修改语料或模型结构。作者为课程设计作品，充满学习热情，也欢迎社区反馈与支持。","# 🍀 小智，又一个中文聊天机器人:yum:\n\n💖 利用有趣的中文语料库qingyun，由@Doragd 同学编写的中文聊天机器人:snowman:\n\n* 尽管她不是那么完善:muscle:，不是那么出色:paw_prints:\n* 但她是由我自己coding出来的:sparkling_heart: ，所以![](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F-It%20means%20everything-ff69b4.svg)\n\n* **希望大家能够多多star支持**:star: 这个NLP初学者:runner:和他的朋友🍀 小智 \n\n\n\n## :rainbow:背景\n\n这个项目实际是软件工程课程设计的子模块。我们的目标是开发一个智能客服工单处理系统。\n\n智能客服工单系统实际的工作流程是：当人向系统发出提问时，系统首先去知识库中查找是否存在相关问题，如果有，则返回问题的答案，此时如何人不满意，则可以直接提交工单。如果知识库中不存在，则调用这个聊天机器人进行自动回复。\n\n该系统服务的场景类似腾讯云的客服系统，客户多是来咨询相关问题的(云服务器，域名等)，所以知识库也是有关云服务器，域名等的咨询，故障处理的 (问题,答案) 集合。\n\n系统的前端界面和前后端消息交互由另一个同学@adjlyadv 完成，主要采用React+Django方式。\n\n@Doragd 同学负责的是知识库的获取和聊天机器人的编写，训练，测试。这个repo的内容也是关于这个的。\n\n\n\n## :star2: 测试效果\n\n* 不使用知识库进行回答\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDoragd_Chinese-Chatbot-PyTorch-Implementation_readme_dd9ff73d794f.png\" width=50%  title=\"测试效果|不使用知识库\" \u002F>\n\n* 使用知识库进行回答\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDoragd_Chinese-Chatbot-PyTorch-Implementation_readme_657a46103ed2.png\" width=50%  title=\"测试效果|使用知识库\" \u002F>\n\n\n* 整个系统效果：\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDoragd_Chinese-Chatbot-PyTorch-Implementation_readme_822468584473.png\" width=100%  title=\"聊天界面\" \u002F>\n\n\n\n## :floppy_disk:项目结构\n\n```\n│  .gitignore\n│  config.py               #模型配置参数\n│  corpus.pth              #已经过处理的数据集\n│  dataload.py             #dataloader\n│  datapreprocess.py       #数据预处理\n│  LICENSE\n│  main.py               \n│  model.py       \n│  README.md\n│  requirements.txt\n│  train_eval.py            #训练和验证,测试\n│  \n├─checkpoints              \n│      chatbot_0509_1437   #已经训练好的模型\n│      \n├─clean_chat_corpus\n│      qingyun.tsv         #语料库\n│      \n├─QA_data\n│      QA.db               #知识库\n│      QA_test.py          #使用知识库时调用\n│      stop_words.txt      #停用词\n│      __init__.py\n│      \n└─utils\n        beamsearch.py      #to do 未完工\n        greedysearch.py    #贪婪搜索，用于测试\n        __init__.py\n```\n\n\n\n## :couple:依赖库\n\n![torch](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Ftorch-1.0.1-orange.svg)\n![torchnet](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Ftorchnet-0.0.4-brightgreen.svg)\n![fire](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Ffire-0.1.3-red.svg)\n![jieba](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fjieba-0.39-blue.svg)\n\n安装依赖\n\n```shell\n$ pip install -r requirements.txt\n```\n\n\n\n## :sparkling_heart:开始使用\n\n### 数据预处理(可省略)\n\n```shell\n$ python datapreprocess.py\n```\n\n对语料库进行预处理，产生corpus.pth （**这里已经上传好corpus.pth, 故此步可以省略**）\n\n可修改参数:\n\n```\n# datapreprocess.py\ncorpus_file = 'clean_chat_corpus\u002Fqingyun.tsv' #未处理的对话数据集\nmax_voc_length = 10000 #字典最大长度\nmin_word_appear = 10 #加入字典的词的词频最小值\nmax_sentence_length = 50 #最大句子长度\nsave_path = 'corpus.pth' #已处理的对话数据集保存路径\n```\n\n### 使用\n\n* 使用知识库\n\n使用知识库时, 需要传入参数`use_QA_first=True` 此时，对于输入的字符串，首先在知识库中匹配最佳的问题和答案，并返回。找不到时，才调用聊天机器人自动生成回复。\n\n这里的知识库是爬取整理的腾讯云官方文档中的常见问题和答案，100条，仅用于测试！\n\n```shell\n$ python main.py chat --use_QA_first=True\n```\n\n* 不使用知识库\n\n由于课程设计需要，加入了腾讯云的问题答案对，但对于聊天机器人这个项目来说是无关紧要的，所以一般使用时，`use_QA_first=False`  ，该参数默认为`True`\n\n```shell\n$ python main.py chat --use_QA_first=False\n```\n\n* 使用默认参数\n\n```shell\n$ python main.py chat\n```\n\n* 退出聊天：输入`exit`, `quit`, `q`  均可\n\n### 其他可配置参数\n\n在`config.py` 文件中说明\n\n需要传入新的参数时，只需要命令行传入即可，形如\n\n```shell\n$ python main.py chat --model_ckpt='checkpoints\u002Fchatbot_0509_1437' --use_QA_first=False\n```\n\n上面的命令指出了加载已训练模型的路径和是否使用知识库\n\n\n\n## :cherry_blossom:技术实现\n\n### 语料库\n\n| 语料名称            | 语料数量 | 语料来源说明       | 语料特点         | 语料样例                                  | 是否已分词 |\n| ------------------- | -------- | ------------------ | ---------------- | ----------------------------------------- | ---------- |\n| qingyun（青云语料） | 10W      | 某聊天机器人交流群 | 相对不错，生活化 | Q:看来你很爱钱 A:噢是吗？那么你也差不多了 | 否         |\n\n* 来源：\u003Chttps:\u002F\u002Fgithub.com\u002Fcodemayq\u002Fchinese_chatbot_corpus>\n\n### Seq2Seq\n\n* Encoder：两层双向GRU\n* Decoder：双层单向GRU\n\n### Attention\n\n* Global attention，采用dot计算分数\n* Ref. https:\u002F\u002Farxiv.org\u002Fabs\u002F1508.04025\n\n\n\n## :construction_worker:模型训练与评估\n\n```shell\n$ python train_eval.py train [--options]\n```\n\n定量评估部分暂时还没写好，应该采用困惑度来衡量，目前只能生成句子，人为评估质量\n\n```shell\n$ python train_eval.py eval [--options]\n```\n\n\n\n## :sob:跳坑记录与总结\n\n* 最深刻的体会就是“深度学习知识的了解和理解之间差了N个编程实现”。虽然理论大家都很清楚，但是真正到编程实现时，总会出这样，那样的问题：从数据集的处理，到许多公式的编程实现，到参数的调节，GPU配置等等各种问题\n* 这次实践的过程实际是跟着PyTorch Tutorial先过了一遍Chatbot部分，跑通以后，再更换语料库，处理语料库，再按照类的风格去重构了代码，然后就是无尽的Debug过程，遇到了很多坑，尤其是把张量移到GPU上遇到各种问题，主要是不清楚to(device)时究竟移动了哪些。\n  * 通过测试发现，model.to(device)只会把参数移到GPU，不会把类中定义的成员tensor移过去，所以如果在forward方法中定义了新的张量，要记得移动。\n  * 还有就是移动的顺序问题：先把模型移动到GPU，再去定义优化器。以及移动的方法：model=model.to(device)，不要忘记赋值。 \n  * 很容易出现GPU显存不足的情况，注意写代码时要考虑内存利用率问题，尽量减少重复tensor。\n  * 在一开始更换中文语料库后，训练总是不收敛，最后才发现原来是batch_size设置小了，实际上我感觉batch_size在显存足够时要尽量大，其实之前看到过，只是写代码的时候完全忘记这回事了。说明自己当时看mini-batch时还不够理解，还是要真的写代码才能够深入人心，至少bug深入人心\n  * 还有一个问题就是误解了torch.long，以为是高精度浮点，结果是int64型，造成了一个bug，找了好久才发现怎么回事。这告诉我们要认真看文档。\n  * 最后的收获就是熟悉了如何实际实现一个模型，这很重要。\n* 实际上这个模型的效果不是很好，除开模型本身的问题不谈，我发现分词的质量会严重影响句子的质量，但是分词时我连停用词还没设置，会出现一些奇特的结果\n* 还有一个问题是处理变长序列时，损失函数如果用自己定义的，很容易出现不稳定情况，现在还在研究官方API\n* 本次实践还发现自己对一些参数理解还不够深，不知道怎么调，还要补理论。\n* 对模型的评估这部分还要继续做。\n\n## :pray:致谢\n\n* 官方的Chatbot Tutorial\n  * \u003Chttps:\u002F\u002Fpytorch.org\u002Ftutorials\u002Fbeginner\u002Fchatbot_tutorial.html>\n* 提供中文语料库\n  * \u003Chttps:\u002F\u002Fgithub.com\u002Fcodemayq\u002Fchinese_chatbot_corpus> \n* 与官方的Chatbot Tutorial内容一致，但是有详尽的代码注释\n  * \u003Chttp:\u002F\u002Ffancyerii.github.io\u002F2019\u002F02\u002F14\u002Fchatbot\u002F>\n* 模型的写法和习惯均参考\n  * \u003Chttps:\u002F\u002Fgithub.com\u002Fchenyuntc\u002Fpytorch-book>\n","# 🍀 小智，又一个中文聊天机器人:yum:\n\n💖 基于有趣的中文语料库 qingyun，由 @Doragd 同学编写的中文聊天机器人:snowman:\n\n* 尽管她还不够完善:muscle:，也不够出色:paw_prints:\n* 但她是我亲手 coding 出来的:sparkling_heart: ，所以![](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F-It%20means%20everything-ff69b4.svg)\n\n* **希望大家多多 star 支持**:star: 这位 NLP（自然语言处理）初学者:runner: 和他的朋友🍀 小智\n\n\n\n## :rainbow: 背景\n\n本项目是软件工程课程设计的一个子模块。我们的目标是开发一个智能客服工单处理系统。\n\n该智能客服工单系统的实际工作流程如下：当用户向系统提问时，系统首先在知识库中查找是否存在相关问题；若存在，则返回对应答案，若用户不满意，可直接提交工单；若知识库中不存在相关问题，则调用此聊天机器人进行自动回复。\n\n系统服务的场景类似于腾讯云的客服系统，客户多为咨询云服务器、域名等问题，因此知识库内容也主要围绕云服务器、域名等相关的咨询与故障处理（问题, 答案）集合。\n\n系统的前端界面及前后端消息交互由另一位同学 @adjlyadv 完成，主要采用 React + Django 架构。\n\n@Doragd 同学负责的是知识库的构建以及聊天机器人的编写、训练与测试。本仓库的内容即与此部分相关。\n\n\n\n## :star2: 测试效果\n\n* 不使用知识库进行回答\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDoragd_Chinese-Chatbot-PyTorch-Implementation_readme_dd9ff73d794f.png\" width=50%  title=\"测试效果|不使用知识库\" \u002F>\n\n* 使用知识库进行回答\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDoragd_Chinese-Chatbot-PyTorch-Implementation_readme_657a46103ed2.png\" width=50%  title=\"测试效果|使用知识库\" \u002F>\n\n\n* 整个系统效果：\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDoragd_Chinese-Chatbot-PyTorch-Implementation_readme_822468584473.png\" width=100%  title=\"聊天界面\" \u002F>\n\n\n\n## :floppy_disk: 项目结构\n\n```\n│  .gitignore\n│  config.py               # 模型配置参数\n│  corpus.pth              # 已处理的数据集\n│  dataload.py             # 数据加载器（dataloader）\n│  datapreprocess.py       # 数据预处理\n│  LICENSE\n│  main.py               \n│  model.py       \n│  README.md\n│  requirements.txt\n│  train_eval.py            # 训练、验证与测试\n│  \n├─checkpoints              \n│      chatbot_0509_1437   # 已训练好的模型\n│      \n├─clean_chat_corpus\n│      qingyun.tsv         # 语料库\n│      \n├─QA_data\n│      QA.db               # 知识库\n│      QA_test.py          # 使用知识库时调用\n│      stop_words.txt      # 停用词\n│      __init__.py\n│      \n└─utils\n        beamsearch.py      # 待完成（to do）\n        greedysearch.py    # 贪婪搜索，用于测试\n        __init__.py\n```\n\n\n\n## :couple: 依赖库\n\n![torch](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Ftorch-1.0.1-orange.svg)\n![torchnet](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Ftorchnet-0.0.4-brightgreen.svg)\n![fire](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Ffire-0.1.3-red.svg)\n![jieba](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fjieba-0.39-blue.svg)\n\n安装依赖：\n\n```shell\n$ pip install -r requirements.txt\n```\n\n\n\n## :sparkling_heart: 开始使用\n\n### 数据预处理（可省略）\n\n```shell\n$ python datapreprocess.py\n```\n\n对语料库进行预处理，生成 `corpus.pth` 文件（**此处已上传 `corpus.pth`，故此步骤可跳过**）\n\n可修改参数：\n\n```\n# datapreprocess.py\ncorpus_file = 'clean_chat_corpus\u002Fqingyun.tsv' # 未处理的对话数据集\nmax_voc_length = 10000 # 词典最大长度\nmin_word_appear = 10 # 加入词典的词最小词频\nmax_sentence_length = 50 # 最大句子长度\nsave_path = 'corpus.pth' # 已处理对话数据集保存路径\n```\n\n### 使用方式\n\n* 使用知识库\n\n启用知识库时，需传入参数 `use_QA_first=True`。此时，对于输入的问题，系统会优先在知识库中匹配最佳问答对并返回；若未找到匹配项，才调用聊天机器人自动生成回复。\n\n此处的知识库是从腾讯云官方文档中爬取整理的常见问题与答案（共100条），仅用于测试！\n\n```shell\n$ python main.py chat --use_QA_first=True\n```\n\n* 不使用知识库\n\n由于课程设计需求，加入了腾讯云问答对，但对聊天机器人本身而言并非必需。通常使用时设为 `use_QA_first=False`（该参数默认值为 `True`）：\n\n```shell\n$ python main.py chat --use_QA_first=False\n```\n\n* 使用默认参数\n\n```shell\n$ python main.py chat\n```\n\n* 退出聊天：输入 `exit`、`quit` 或 `q` 均可退出\n\n### 其他可配置参数\n\n详见 `config.py` 文件说明。\n\n如需传入新参数，只需在命令行中指定即可，例如：\n\n```shell\n$ python main.py chat --model_ckpt='checkpoints\u002Fchatbot_0509_1437' --use_QA_first=False\n```\n\n上述命令指定了加载已训练模型的路径及是否使用知识库。\n\n\n\n## :cherry_blossom: 技术实现\n\n### 语料库\n\n| 语料名称            | 语料数量 | 语料来源说明       | 语料特点         | 语料样例                                  | 是否已分词 |\n| ------------------- | -------- | ------------------ | ---------------- | ----------------------------------------- | ---------- |\n| qingyun（青云语料） | 10W      | 某聊天机器人交流群 | 相对不错，生活化 | Q:看来你很爱钱 A:噢是吗？那么你也差不多了 | 否         |\n\n* 来源：\u003Chttps:\u002F\u002Fgithub.com\u002Fcodemayq\u002Fchinese_chatbot_corpus>\n\n### Seq2Seq（序列到序列模型）\n\n* Encoder（编码器）：两层双向 GRU（门控循环单元）\n* Decoder（解码器）：双层单向 GRU\n\n### Attention（注意力机制）\n\n* Global attention（全局注意力），采用 dot 方式计算分数\n* 参考文献：https:\u002F\u002Farxiv.org\u002Fabs\u002F1508.04025\n\n\n\n## :construction_worker: 模型训练与评估\n\n```shell\n$ python train_eval.py train [--options]\n```\n\n定量评估部分尚未完成，计划采用困惑度（perplexity）作为衡量指标，目前仅能生成句子并人工评估质量。\n\n```shell\n$ python train_eval.py eval [--options]\n```\n\n\n\n## :sob: 踩坑记录与总结\n\n* 最深刻的体会是：“对深度学习知识的了解”与“真正理解”之间隔着 N 个编程实现的距离。虽然理论大家都懂，但实际编码时总会遇到各种问题：从数据集处理、公式实现、参数调优，到 GPU 配置等等。\n* 本次实践过程先是跟随 PyTorch Tutorial 的 Chatbot 部分跑通代码，然后更换语料库、处理语料、按类风格重构代码，接着进入无尽 Debug 阶段，踩了不少坑，尤其是张量移至 GPU 时的各种问题——不清楚 `to(device)` 到底移动了哪些内容。\n  * 经测试发现，`model.to(device)` 仅将模型参数移至 GPU，不会移动类中定义的成员张量。因此，若在 `forward` 方法中定义了新张量，需手动移动。\n  * 移动顺序也很重要：应先将模型移至 GPU，再定义优化器；且移动方法应为 `model = model.to(device)`，别忘了赋值。\n  * 显存不足是常见问题，写代码时需注意内存利用率，尽量减少重复张量。\n  * 更换中文语料后，训练一直不收敛，最终发现是 `batch_size` 设置过小。实际上，在显存允许的情况下，`batch_size` 应尽可能大。之前虽看过相关资料，但写代码时完全忘了这回事——说明当时对 mini-batch 的理解不够深入，只有真正动手编码才能刻骨铭心（至少 bug 让人刻骨铭心）。\n  * 另一个问题是误以为 `torch.long` 是高精度浮点类型，结果其实是 int64，导致一个 bug 花了很久才发现。这提醒我们：一定要认真阅读文档。\n  * 最终收获是熟悉了如何从零实现一个模型，这点非常重要。\n* 实际上，当前模型效果并不理想。抛开模型本身的问题，我发现分词质量会极大影响生成句子的质量，而目前我甚至还未设置停用词，导致出现一些奇怪的结果。\n* 另一个问题是在处理变长序列时，若使用自定义损失函数，容易出现不稳定情况，目前仍在研究官方 API。\n* 此次实践还暴露出我对某些参数理解不够深入，不知如何调整，仍需补充理论知识。\n* 模型评估部分还需继续完善。\n\n## :pray: 致谢\n\n* PyTorch 官方 Chatbot 教程\n  * \u003Chttps:\u002F\u002Fpytorch.org\u002Ftutorials\u002Fbeginner\u002Fchatbot_tutorial.html>\n* 提供中文语料库\n  * \u003Chttps:\u002F\u002Fgithub.com\u002Fcodemayq\u002Fchinese_chatbot_corpus> \n* 内容与官方 Chatbot 教程一致，但附有详细代码注释\n  * \u003Chttp:\u002F\u002Ffancyerii.github.io\u002F2019\u002F02\u002F14\u002Fchatbot\u002F>\n* 模型写法与编码习惯参考\n  * \u003Chttps:\u002F\u002Fgithub.com\u002Fchenyuntc\u002Fpytorch-book>","# Chinese-Chatbot-PyTorch-Implementation 快速上手指南\n\n## 环境准备\n\n- **操作系统**：支持 Windows \u002F macOS \u002F Linux\n- **Python 版本**：建议 Python 3.6+\n- **PyTorch 版本**：torch==1.0.1（推荐使用国内镜像加速安装）\n- **GPU 支持**：可选，若使用 GPU 需提前配置 CUDA 环境\n\n> 国内用户推荐使用清华或阿里云 pip 源加速：\n```shell\npip install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple -r requirements.txt\n```\n\n## 安装步骤\n\n1. 克隆项目仓库：\n\n```shell\ngit clone https:\u002F\u002Fgithub.com\u002FDoragd\u002FChinese-Chatbot-PyTorch-Implementation.git\ncd Chinese-Chatbot-PyTorch-Implementation\n```\n\n2. 安装依赖库：\n\n```shell\npip install -r requirements.txt\n```\n\n> 注：项目已预处理语料并提供训练好的模型，无需重新预处理或训练即可直接运行。\n\n## 基本使用\n\n### 启动聊天机器人（默认使用知识库）\n\n```shell\npython main.py chat\n```\n\n### 不使用知识库，纯生成式回复\n\n```shell\npython main.py chat --use_QA_first=False\n```\n\n### 加载指定模型路径\n\n```shell\npython main.py chat --model_ckpt='checkpoints\u002Fchatbot_0509_1437' --use_QA_first=False\n```\n\n### 退出对话\n\n在聊天过程中输入以下任意命令即可退出：\n\n```\nexit\nquit\nq\n```\n\n> 提示：首次运行会自动加载预训练模型和语料数据，稍等片刻即可开始对话。","某中小型云服务商的技术支持团队，每天需处理大量客户关于服务器配置、域名解析等重复性咨询，人工客服疲于应对基础问题。\n\n### 没有 Chinese-Chatbot-PyTorch-Implementation 时\n- 客服人员需手动翻查知识库或文档，响应速度慢，高峰期常排队超5分钟\n- 同一类技术问题（如“如何重置密码”）被反复回答，人力浪费严重\n- 非工作时间无自动应答能力，客户凌晨提问只能干等，满意度下降\n- 新员工培训成本高，需记忆上百条标准问答才能上岗\n- 知识库更新后，客服常因不熟悉新内容给出错误回复，引发二次投诉\n\n### 使用 Chinese-Chatbot-PyTorch-Implementation 后\n- 系统优先匹配知识库精准答案，3秒内自动回复80%的常见技术问题，释放人工压力\n- 无法匹配时调用聊天机器人生成自然语言回复，避免“查无此问”的尴尬冷场\n- 7×24小时在线，深夜客户提问也能获得即时引导，工单转化率提升40%\n- 新客服只需学习复杂case处理，基础问答由系统兜底，上岗培训周期缩短60%\n- 知识库更新后机器人自动适配，结合语义理解减少误答，客户首次解决率提高至85%\n\nChinese-Chatbot-PyTorch-Implementation 用轻量级PyTorch架构实现了“知识库+生成式对话”双引擎，在有限资源下让中小团队也能拥有接近大厂的智能客服体验。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDoragd_Chinese-Chatbot-PyTorch-Implementation_bb151c05.png","Doragd","Gordon Lee","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FDoragd_edfac839.png","Long live the curiosity that drives us to explore the world.","ByteDance","Shanghai, China","guodun.li@gmail.com","reDoragd","www.zhihu.com\u002Fpeople\u002Fgordon-lee","https:\u002F\u002Fgithub.com\u002FDoragd",[25],{"name":26,"color":27,"percentage":28},"Python","#3572A5",100,913,197,"2026-03-30T02:27:16","Apache-2.0",3,"","未说明",{"notes":37,"python":35,"dependencies":38},"项目基于PyTorch实现，需注意模型训练时GPU显存不足问题；语料已预处理可直接使用；知识库为腾讯云100条QA仅用于测试。",[39,40,41,42],"torch==1.0.1","torchnet==0.0.4","fire==0.1.3","jieba==0.39",[44,45],"语言模型","开发框架",[47,48,49,50,51],"deep-learning","chatbot","pytorch","pytorch-nlp","chinese-nlp",4,null,"ready","2026-03-27T02:49:30.150509","2026-04-06T08:10:27.465083",[58,63,68,73,78,83],{"id":59,"question_zh":60,"answer_zh":61,"source_url":62},339,"训练时出现 NaN 问题如何解决？","将 `decoder_learning_ratio` 参数设置为 `1.0` 可以解决该问题。示例代码：`decoder_learning_ratio=1.0`。","https:\u002F\u002Fgithub.com\u002FDoragd\u002FChinese-Chatbot-PyTorch-Implementation\u002Fissues\u002F5",{"id":64,"question_zh":65,"answer_zh":66,"source_url":67},340,"必须使用 PyTorch 1.0.1 版本吗？","不需要，可以使用最新版本的 PyTorch，项目兼容性良好。","https:\u002F\u002Fgithub.com\u002FDoragd\u002FChinese-Chatbot-PyTorch-Implementation\u002Fissues\u002F6",{"id":69,"question_zh":70,"answer_zh":71,"source_url":72},341,"如何不加载断点继续训练？","可以跳过加载断点，直接注释或删除加载 checkpoint 的代码段即可，例如：`# checkpoint = torch.load(opt.model_ckpt)`。","https:\u002F\u002Fgithub.com\u002FDoragd\u002FChinese-Chatbot-PyTorch-Implementation\u002Fissues\u002F2",{"id":74,"question_zh":75,"answer_zh":76,"source_url":77},342,"对话生成效果很差，应该从哪些方面改进？","该项目仅为中文聊天机器人的玩具示例，建议改用更强大的预训练模型如 GPT2、UniLM 或 MASS 来提升生成效果。","https:\u002F\u002Fgithub.com\u002FDoragd\u002FChinese-Chatbot-PyTorch-Implementation\u002Fissues\u002F7",{"id":79,"question_zh":80,"answer_zh":81,"source_url":82},343,"运行时报错 'no modules fire' 怎么办？","尝试使用 pip 安装缺失的模块，命令为：`pip install fire`。","https:\u002F\u002Fgithub.com\u002FDoragd\u002FChinese-Chatbot-PyTorch-Implementation\u002Fissues\u002F11",{"id":84,"question_zh":85,"answer_zh":86,"source_url":72},344,"能否自定义评价指标如 MAP 或 MRR？","对话生成任务通常使用困惑度（PPL）作为评价指标，MAP\u002FMRR 更适用于检索或目标检测任务，但你可以自行实现这些指标。",[],[89,99,108,116,124,137],{"id":90,"name":91,"github_repo":92,"description_zh":93,"stars":94,"difficulty_score":33,"last_commit_at":95,"category_tags":96,"status":54},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[45,97,98],"图像","Agent",{"id":100,"name":101,"github_repo":102,"description_zh":103,"stars":104,"difficulty_score":105,"last_commit_at":106,"category_tags":107,"status":54},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[45,98,44],{"id":109,"name":110,"github_repo":111,"description_zh":112,"stars":113,"difficulty_score":105,"last_commit_at":114,"category_tags":115,"status":54},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[45,97,98],{"id":117,"name":118,"github_repo":119,"description_zh":120,"stars":121,"difficulty_score":105,"last_commit_at":122,"category_tags":123,"status":54},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[45,44],{"id":125,"name":126,"github_repo":127,"description_zh":128,"stars":129,"difficulty_score":105,"last_commit_at":130,"category_tags":131,"status":54},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[97,132,133,134,98,135,44,45,136],"数据工具","视频","插件","其他","音频",{"id":138,"name":139,"github_repo":140,"description_zh":141,"stars":142,"difficulty_score":33,"last_commit_at":143,"category_tags":144,"status":54},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[98,97,45,44,135]]