兼容 GPT2、Bloom 等 Pytorch 框架下的语言模型、人工智能标记语言 (AIML) 和任务型对话系统 (Task) 的深度中文智能对话机器人框架
A deep Chinese intelligent conversational robot framework that supports language models under PyTorch frameworks such as GPT2 and Bloom, as well as artificial intelligence markup language (AIML) and task-oriented dialogue systems (Task).
本人开发运行环境:
python==3.8 torch==1.13.1+cu117 transformers==4.26.1
- 知识库匹配(AIML)回答问题
- 任务型对话系统(Task)
- 利用 GPT2、Bloom 等 Pytorch 框架下的语言模型 完成的闲聊系统回答问题
- 支持载入 GPT2、Bloom 等 Pytorch 框架下的语言模型进行预测回答
- AIML功能采用py3Aiml_Chinese,可正确解析带中文pattern和模板的aiml文件
- AIML知识库更多(共35个)
- 敏感词库更广(共1.5W个),同时敏感词判断更合理
首先下载解压你会得到一个这样一个目录结构
- chatbot.py :HumManBot的启动函数
- deeplearning文件夹 :存放的是实现调用 GPT2、Bloom 等模型的主要代码
- crawler文件夹 :存放的是任务型对话系统(Task)主要代码
- tool文件夹 :存放的是用于敏感词过滤使用的filter.py文件
- py3Aiml_Chinese 文件夹 : py3Aiml_Chinese相关文件
- config.cfg :各种路径的配置文件
- resources文件夹 :建议存放AIML知识库和敏感词库
chatbot.py:
-
预处理
限制字数
过滤敏感词(恶心、政治、色情、违法......)当你需要增加敏感词时候直接在sensitive.txt中添加即可
当你需要更改敏感词库位置时候请在config.cfg中修改filter_file -
知识库匹配(AIML)
基本功能:打招呼、闲聊......
异常处理:问题太长、空白问题、找不到回复......
情绪回答:表情、夸奖、嘲笑......
如果匹配不到回答,进行步骤三 -
任务型对话匹配
如果可以请不要完全依赖于本人提供的任务功能,请自行修改接口和对应的匹配关键词。因为本人提供的接口随时可能失效,无法保证效果。
你可以自行添加功能和匹配关键词。包括但不限制于天气查询、汉字查询、空气质量查询、百科等机器人功能任务型对话系统(Task)功能函数建议放在search.py中
关键词逻辑判断建议写在crawl.py文件中
同时你可要单独写一个功能文件调用,例如给出的例子weather.py用于取天气 -
使用 GPT2、Bloom 等 Pytorch 框架下的语言模型 进行答案预测
如果步骤三匹配不到回答,进行 GPT2、Bloom 模型 生成闲聊回答答案
模型相关教程请移步 WIKI
效果展示:
demo 大体框架参考于:
基于人工智能标记语言 (AIML)和开放域问答(WebQA)的深度智能对话模型
知识库匹配(AIML)部分功能使用:
其他参考: