{"id":13594835,"url":"https://github.com/charlesXu86/Chatbot_CN","last_synced_at":"2025-04-09T10:32:08.515Z","repository":{"id":39620478,"uuid":"143117391","full_name":"charlesXu86/Chatbot_CN","owner":"charlesXu86","description":"基于金融-司法领域(兼有闲聊性质)的聊天机器人，其中的主要模块有信息抽取、NLU、NLG、知识图谱等，并且利用Django整合了前端展示,目前已经封装了nlp和kg的restful接口","archived":false,"fork":false,"pushed_at":"2021-06-13T10:00:09.000Z","size":2311,"stargazers_count":1279,"open_issues_count":8,"forks_count":432,"subscribers_count":46,"default_branch":"master","last_synced_at":"2024-11-06T17:42:50.560Z","etag":null,"topics":["attention-mechanism","chatbot-cn","deep-learning","dialogue-systems","django-restful","intent-detection","ir","knowledge-graph","ner","nlg","nlu","oriented-dialogs","recommendation","reinforcement-learning","sentiment-analysis","slot-filling","tenserflow-serving","tensorflow","text-classification","text-correct"],"latest_commit_sha":null,"homepage":"","language":null,"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/charlesXu86.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}},"created_at":"2018-08-01T07:06:22.000Z","updated_at":"2024-11-04T15:56:19.000Z","dependencies_parsed_at":"2022-08-25T08:41:35.352Z","dependency_job_id":null,"html_url":"https://github.com/charlesXu86/Chatbot_CN","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charlesXu86%2FChatbot_CN","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charlesXu86%2FChatbot_CN/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charlesXu86%2FChatbot_CN/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charlesXu86%2FChatbot_CN/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/charlesXu86","download_url":"https://codeload.github.com/charlesXu86/Chatbot_CN/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248020592,"owners_count":21034459,"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":["attention-mechanism","chatbot-cn","deep-learning","dialogue-systems","django-restful","intent-detection","ir","knowledge-graph","ner","nlg","nlu","oriented-dialogs","recommendation","reinforcement-learning","sentiment-analysis","slot-filling","tenserflow-serving","tensorflow","text-classification","text-correct"],"created_at":"2024-08-01T16:01:39.694Z","updated_at":"2025-04-09T10:32:04.156Z","avatar_url":"https://github.com/charlesXu86.png","language":null,"readme":"\u003ch1 align=\"center\"\u003eChatbot_CN\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e基于深度学习、强化学习、对话引擎的多场景对话机器人\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/charlesXu86/Chatbot_CN/stargazers\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/stars/charlesXu86/Chatbot_CN.svg?colorA=orange\u0026colorB=orange\u0026logo=github\"\n         alt=\"GitHub stars\"\u003e\n  \u003c/a\u003e\n    \n  \u003ca href=\"https://github.com/charlesXu86/Chatbot_CN/network/members\"\u003e\n      \u003cimg src=\"https://img.shields.io/github/forks/charlesXu86/Chatbot_CN\"\n           alt=\"GitHub forks\"\u003e\n    \u003c/a\u003e\n    \n  \u003ca href=\"https://img.shields.io/github/issues/charlesXu86/Chatbot_CN\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/issues/charlesXu86/Chatbot_CN.svg\"\n             alt=\"GitHub issues\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/charlesXu86/Chatbot_CN/blob/master/LICENSE\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/license/charlesXu86/Chatbot_CN.svg\"\n             alt=\"GitHub license\"\u003e\n  \u003c/a\u003e      \n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#highlights\"\u003e项目说明\u003c/a\u003e •\n  \u003ca href=\"#what-is-it\"\u003e项目结构\u003c/a\u003e •\n  \u003ca href=\"#install\"\u003e项目演示\u003c/a\u003e •\n  \u003ca href=\"#getting-started\"\u003e各模块详细介绍\u003c/a\u003e •\n  \u003ca href=\"#server-and-client-api\"\u003e使用说明\u003c/a\u003e •\n  \u003ca href=\"#book-tutorial\"\u003eUpdate News\u003c/a\u003e •\n  \u003ca href=\"#speech_balloon-faq\"\u003eFAQ\u003c/a\u003e •\n  \u003ca href=\"#zap-benchmark\"\u003e参考\u003c/a\u003e •\n  \u003ca href=\"https://hanxiao.github.io/2019/01/02/Serving-Google-BERT-in-Production-using-Tensorflow-and-ZeroMQ/\" target=\"_blank\"\u003eBlog\u003c/a\u003e\n  \n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://github.com/charlesXu86/Chatbot_CN/blob/master/image/chatbot.jpg?raw=true\" width=\"300 height=350\"\u003e\n\u003c/p\u003e\n\n\u003ch6 align=\"center\"\u003eMade by Xu • :globe_with_meridians: \u003ca href=\"https://www.chatbotcn.com\"\u003ehttps://www.chatbotcn.com\u003c/a\u003e\u003c/h6\u003e\n\n\n\u003ch2 align=\"center\"\u003e项目说明\u003c/h2\u003e\n\n\u0026ensp; \u0026ensp; **Chatbot_CN** 是一个基于第三代对话系统的多轮对话机器人项目，旨在于开发一个结合规则系统、深度学习、强化学习、知识图谱、多轮对话策略管理的 聊天机器人，目前随着时间的慢慢发展，从最初的一个 Chatbot_CN 项目，发展成了一个 Chatbot_* 的多个项目。目前已经包含了在多轮任务型对话的场景中，基于话术（Story）、知识图谱（K-G）、端到端对话（E2E）。目的是为了实现一个可以快速切换场景、对话灵活的任务型机器人。\n同时，**Chatbot_CN** 不仅仅是一个对话系统，而是一套针对客服场景下的完整人工智能解决方案。对话是解决方案的核心和最重要一环，但不仅限于对话，还包括智能决策，智能调度，智能预测，智能推荐等\n\n\u0026ensp; \u0026ensp; 目前**Chatbot_CN** 已经拆分成了13个子项目，涵盖了对话数据收集处理、基本算法模型、对话引擎、对话质量评估，第三方平台快速接入、数据回流、模型优化等等。主要可以分为：\n\n    1、数据层：对话业务数据，开源多轮对话数据等\n    \n    2、算法层：句法分析、细粒度情感分析、实体抽取、query纠错等\n                                                \n    3、能力层：自然语言理解、对话管理、对话策略、策略优化、对话工厂\n    \n    4、应用层：网页端、钉钉群机器人、微信公众号、第三方平台（如拼夕夕）等\n    \n    5、硬件接入：可接入作为智能语音助手，目前已经加入语音助手模块，可接入树莓派、单片机等硬件\n    \n项目的大致流程如下图：\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://github.com/charlesXu86/Chatbot_CN/blob/master/image/Chatbot_CN00.png?raw=true\" width=\"600 height=250\"\u003e\n\u003c/p\u003e\n\n注：\n    \n    1、图中的虚线部分为文本机器人部分\n    \n    2、具体的项目结构请参考项目结构和各模块详细说明。\n    \n    3、Chatbot_CN 系列项目还存在不少细节问题，正在慢慢完善中。\n\n项目思维导图\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://github.com/charlesXu86/Chatbot_CN/blob/master/image/wechatter_1130.png?raw=true\"\u003e\n\u003c/p\u003e\n\n\n\u003ch2 align=\"center\"\u003e项目结构\u003c/h2\u003e\n\n#### 1. **Chatbot_CN**整体架构\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://github.com/charlesXu86/Chatbot_CN/blob/master/image/架构.png?raw=true\" width=\"600 height=600\"\u003e\n\u003c/p\u003e\n\n#### 2. 各子模块介绍\n\n\u003csummary\u003e当你熟悉了项目的整体架构后，你还需要对其各个子模块进行详细的了解，这样你才能对机器人的机制有一个深刻的理解\u003c/summary\u003e\n\n\n\u003ctable\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/charlesXu86/Chatbot_CN\"\u003eChatbot_CN\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e总体项目介绍，包含文档（这里不包含代码）\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/we-chatter/chatbot_kg\"\u003echatbot_kg\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e知识图谱模块、关系网络、实体连接、知识推理等\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/charlesXu86/Chatbot_S2S\"\u003eChatbot_S2S\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e训练端到端的对话模型，目前这个模块只为了项目的完整，作用不大，不过这个是一个研究方向\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/we-chatter/chatbot_utils\"\u003echatbot_utils\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e机器人的基本算法组件，比如query纠错、实体识别等，他是机器人的基础\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/charlesXu86/Chatbot_RASA\"\u003eChatbot_RASA\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e机器人的核心对话引擎，基于RASA开源框架\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/charlesXu86/Chatbot_Doc\"\u003eChatbot_Doc\u003c/a\u003e\u003c/td\u003e\u003ctd\u003eNLP和对话系统的一些文献、收集的文章等等\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/charlesXu86/Chatbot_Data\"\u003eChatbot_Data\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e机器人的一些语料收集\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/charlesXu86/Chatbot_Crawler\"\u003eChatbot_Crawler\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e爬虫\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/we-chatter/chatbot_retrieval\"\u003echatbot_retrieval\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e基于检索的对话模型，他在机器人无法处理用户意图时发挥重要作用\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/charlesXu86/Chatbot_Evaluate_\"\u003eChatbot_Evaluate\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e对话质量评估、评价、对话诊断、数据回流模块，对话模型优化\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/charlesXu86/Chatbot_Help\"\u003eChatbot_Help\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e一个将机器人接入第三方平台的工具、如钉钉群、微信公众号等，可快速实现工程化\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/charlesXu86/Chatbot_Recommendation\"\u003eChatbot_Recommendation\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e对话系统与推荐系统结合，目前正在规划中、暂未开始\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/charlesXu86/Chatbot_Web\"\u003eChatbot_Web\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e机器人的简单pc端页面交互，可以实现快速体验机器人效果\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/charlesXu86/Chatbot_Voice\"\u003eChatbot_Voice\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e聊天机器人的语音交互模块\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/charlesXu86/Chatbot_Analytics\"\u003eChatbot_Analytics\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e聊天机器人的数据分析模块\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\n如果想了解更多详细的细节说明，请参考以下网站(详细文档)：\n\n\u003cp align=\"center\"\u003e\u003ca href=\"www.chatbotcn.top\"\u003ewww.chatbotcn.top\u003c/a\u003e\u003c/p\u003e\n\n\u003ch2 align=\"center\"\u003e项目演示\u003c/h2\u003e\n\n\u003cp align=\"left\"\u003e\n    \u003cimg src=\"https://github.com/charlesXu86/Chatbot_CN/blob/master/image/演示1.png?raw=true\" width=\"160 height=340\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"left\"\u003e\n    \u003cimg src=\"https://github.com/charlesXu86/Chatbot_CN/blob/master/image/演示2.png?raw=true\" width=\"160 height=340\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"left\"\u003e\n    \u003cimg src=\"https://github.com/charlesXu86/Chatbot_CN/blob/master/image/演示3.png?raw=true\" width=\"160 height=340\"\u003e\n\u003c/p\u003e\n\n\u003ch2 align=\"center\"\u003e各模块介绍\u003c/h2\u003e\n\n##### **1、chatbot_utils**\n\n\u0026ensp; \u0026ensp; 该模块为基本算法组件，同时也提供了restful API接口，其中包括的功能有：\n\n    1、文本纠错，可以纠正用户query的错别字等，同时还可以纠正部分由于ASR和OCR识别出的错误，用到的主要技术为：字音字形特征提取、微调bert mlm\n    \n    2、实体识别，可以识别出用户query中提及的实体信息，如：人名、机构名、快递公司、时间、地址等等\n    \n    3、句法分析，基于转移的句法分析\n    \n    4、指代消解。\n    \n    5、其他功能后续继续更新\n    \n\n##### **2、chatbot_retrieval**\n\n\u0026ensp; \u0026ensp; 检索式单论对话问答（FAQ），主要用到的技术为词权重、倒排索引、bert finetune。实现原理为Q-Q相似度匹配。该模块主要可以解决两类问题：\n\n    1、FAQ\n    \n    2、在多轮对话过程中，意图未匹配情况下检索出最佳答案\n    \n\n##### **3、Chatbot_Skills**\n\n\u0026ensp; \u0026ensp; 任务型多轮对话的技能管理模块，当我们的机器人\"学习\"到了多种技能的时候，在对话的过程中可能会出现技能的交叉，即在任务A还没完成的时候跳转到任务B。\n\n**Chatbot_Skills**旨在完成多种任务的平滑切换和机器人的技能初始化配置。\n\n\n##### **4、Chatbot_Recommendation**\n\n\u0026ensp; \u0026ensp; 将推荐系统和任务型对话结合\n\n\n\u003ch2 align=\"center\"\u003e使用说明\u003c/h2\u003e\n\n#### Start\n\n在启动服务之前，你需要比较熟悉整个项目的架构，项目的各模块依赖关系如下图：\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://github.com/charlesXu86/Chatbot_CN/blob/master/image/Chatbot_CN01.png?raw=true\" width=\"600 height=600\"\u003e\n\u003c/p\u003e\n\n\u003ch2 align=\"center\"\u003eUpdate News\u003c/h2\u003e\n\n    *  2019.10    添加 Chatbot_RASA 子项目\n    *  2019.10    添加 Chatbot_NLU 子项目\n    *  2019.10    添加 Chatbot_DM 子项目\n    *  2019.11    添加 Chatbot_Retrieval 子项目\n    *  2019.12    添加 Chatbot_Utils 子项目\n    *  2019.12    添加 Chatbot_Help 子项目\n    *  2020.1     移除项目里的Chatbot_Web模块，添加 Chatbot_Web 子项目，从2020.1.20日开始， Chatbot_CN 不再做工程项目使用，只是该项目的说明\n    *  2020.1     将机器人接入钉钉群，实现用户交互\n    *  2020.3     添加对话技能管理模块\n    *  2020.4     添加爬虫模块（基于scrapy框架）\n    *  2020.5     添加语音助手模块 Chatbot_Voice\n    *  2020.5     在对话模型中加入 【AutoDL + 模型压缩 + MLflow】技术\n    *  2020.6     引入Botfront，此项目可以代替以前的Chatbot_Web项目，同时Botfront还可以对模型、意图等进行管理\n    *  2020.6     开始制定对RASA整体进行二次开发（DeepChatbot），DeepChatbot在rasa的基础上引入更多内容，包括集成AutoDL、模型加速（教师-学生模型等）、\n                  增加了机器人训练数据的读取方式、DST优化、更加丰富的接口等等  \n    *  2020.7     增加了机器人分析模块\n    *  2021.7     增加呼叫中心模块\n\n\u003ch2 align=\"center\"\u003eFAQ\u003c/h2\u003e\n\n    1、目前这个工程比较完备了，但是很多细节需要完善，也正在积极开发维护，如果你有什么新的idea，欢迎联系我： 997562867\n\n    2、如果你也是一个NLPER，或者对对话系统的开发感兴趣，欢迎加入群聊 聊天机器人开发实战，一起讨论技术： 群号： 718607564\n\n    3、欢迎关注知乎专栏`聊天机器人开发实战`\n    \n    4、有不少人反应整个系统的代码不能启动、Chatbot_CN怎么没有代码，我还是希望读者可以把上述文档好好看一下，对整个机器人的运行流程有个整体的\n    思路。\n    \n    5、目前正在做产品级重构\n    \n\n\u003ch2 align=\"center\"\u003e参考\u003c/h2\u003e\n    \n    1、RASA demo\n    2、bert as service\n    3、Botfront\n    4、RasaTalk\n    5、Dashbot\n","funding_links":[],"categories":["Others"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FcharlesXu86%2FChatbot_CN","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FcharlesXu86%2FChatbot_CN","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FcharlesXu86%2FChatbot_CN/lists"}