基于python的语音聊天机器人毕业设计_案例:python实现聊天机器人

本文介绍了一个基于Python的聊天机器人,它通过pickle持久化存储数据,并能根据用户输入进行动态交互。通过用户反馈扩充数据库,展示了如何使用RobotUI和RobotAdmin类进行对话处理和数据管理。
摘要由CSDN通过智能技术生成

import pickle

data = {"你有女朋友吗":"没有","我们可以交往吗":"可以","今晚约不约":"约","去哪家餐厅":"麦当劳"}

with open("db.pkl",'wb') as f:

f.write(pickle.dumps(data))

with open("db.pkl","rb") as f:

data = pickle.loads(f.read())

class RobotUI:

def __init__(self,name,admin):

self.name = name

self.admin = admin

def talk(self):

worlds = input('你说:')

if worlds == 'end':

return worlds

else:

reply = backrobot.answer(worlds)

print(f'{self.name}回答:{reply}')

if reply == 'none':

ch = input('是否需要增加数据 Y/N:')

print(ch)

if ch == 'Y':

updata = input('请输入 示例(吃饭了吗:吃了):')

new = updata.split(':')

RobotAdmin.write_data({new[0]:new[1]})

class RobotAdmin:

def __init__(self):

self.data = self.load_data()

def load_data(self):

with open('db.pkl','rb') as f:

data = pickle.loads(f.read())

# print(data)

return data

def answer(self,worlds):

if worlds in self.data:

return self.data[worlds]

else:

return 'none'

@staticmethod

def write_data(dic):

data.update(dic)

print(data)

with open("db.pkl",'wb') as f:

f.write(pickle.dumps(data))

# robot.talk()

while True:

backrobot = RobotAdmin()

robot = RobotUI('robot','back')

if robot.talk() == 'end':

print('结束')

break

robot.talk()

你说:你有女朋友吗

robot回答:没有

你说:我们可以交往吗

robot回答:可以

你说:今晚约不约

robot回答:约

你说:去哪家餐厅

robot回答:麦当劳

你说:今晚去K歌吗

robot回答:none

是否需要增加数据 Y/N:Y

Y

请输入 示例(吃饭了吗:吃了):今晚去K歌吗:去

{'你有女朋友吗': '没有', '我们可以交往吗': '可以', '今晚约不约': '约', '去哪家餐厅': '麦当劳', '今晚去K歌吗': '去'}

你说:end

你说:end

结束

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值