机器人 Chatterbot 自定义适配器api 重写can_process方法 process方法来实现自定义适配器

人工智能聊天机器人实现的技术途径大约可分为以下2种:
1 属于调用第三方,也就是说核心代码和数据库中数据不掌握在自己手里 (X灵机器人啥的)
2 属于开源框架,也就是说我们可以下载其源码,采用,相对快速的自己搭建一个聊天机器人,核心代码和数据库都掌握在自己手里(chatterbot 等 就用过这个其他不感评论啊)(哈哈 …感觉和没说一样)
分享下自己工作中的微信聊天机器人中 后台chatterbot+django+drf 框架搭建 下面表述下自己的心得

安装后chatterbot django django_rest_framework (之前工作用的的)

我们网上百度的chatterbot 一般都是 创建机器人 学习语言 发送命令 得到相应 例如下面(其中get_response这个方法里面有很多方法之前的调用 感兴趣的可以点进去看下源码)

from chatterbot import ChatBot
from chatterbot.trainers import ChatterBotCorpusTrainer
chatbot = ChatBot('Hou')  # 创建机器人
trainer = ChatterBotCorpusTrainer(chatbot)  # 生成训练机器人一个对象
trainer.train("chatterbot.corpus.english")  # 用英文 你可以改成 chinese
print(chatbot.get_response('hi'))
print(chatbot.get_response('1+1'))
流程 所谓的适配器是 get_response(“测测”)走chatterbot中 里面嵌套的有can_process(self, statement):方法 这里面可以 运用一些正则来匹配一些命令 中间获取你所用的适配器 confidence 越高 越优先进匹配到的适配器 …然后进入process(self, statement, additional_response_selection_parameters=None):方法 编写你的业务逻辑 得到你想要的结果 renturn Statement(text=XXX) 其中text属性赋值你想要的东西 是返回的结果

url.py中定义一个路由

    url(r'testbot', TestBotApiView.as_view(), name='TestBot')

views.py post

 方法中 代码
 class TestBotApiView(View):
	     chatterbot = ChatBot(**settings.TESTBOT)#(适配器在setting中配置)
		 def post(self, request, *args, **kwargs):
	 		 statement = Statement(text=input_data['text'])
	       	 response = self.chatterbot.get_response(statement)
	        response_data = response.serialize()
	  

settings.py

TESTBOT = {
    'name': '小猴',
    'django_app_name': 'django_chatterbot',
    'logic_adapters': [
        {
            'import_path': 'Adapter.MyLogicAdapter',
        },
        'chatterbot.logic.BestMatch',
    ],
    'read_only': 'True',
}

Adapters.py

 	class MyLogicAdapter(LogicAdapter):
	    def __init__(self, chatbot, **kwargs):
	        super().__init__(chatbot, **kwargs)
	     def can_process(self, statement):
	        if "测试" == statement.text:
	            return True
	        else:
	            return False
	      def process(self, statement, additional_response_selection_parameters=None):
		        """
		        返回 结果
		        """
		        mes="测试"
		        confidence=1 # 响应度
		        response_statement = Statement(text=)
        		response_statement.confidence = confidence
     		   return response_statement

有什么问题可以评论 或者私聊 相互学习啊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值