Python 智能聊天机器人的实现

系统 1336 0

Python AI智能聊天

  • 首先项目需要的包
            
              import urllib.request
import urllib.parse
from tkinter import *
import time

            
          
  • 函数部分

说明:调用服务器接口,实现非特定智能回复

            
              def get_robot_replay(question):
    '''
    函数功能:对于特定的问题进行特定的回答,对于其他非特定的问题进行智能回复
    参数描述:
    question:聊天内容或者问题
    返回值:str,回复内容
    '''
    if "你叫什么名字"in question:
        answer ="我是游游"
    elif "你多少岁"in question:
        answer="18"
    elif "你是GG还是MM"in question:
        answer="MM"
    else:
        try:
            # 调用NLP接口实现智能回复
            params=urllib.parse.urlencode({'msg':question}).encode() #将str转换成字节类型,参数接口需要进行URL编码
            req = urllib.request.Request("http://api.itmojun.com/chat_robot",params,method="POST")#创建请求对象
            answer=urllib.request.urlopen(req).read().decode()#调用接口(向目标服务器发送HTTP请求)
        except Exception as e:
            answer="AI机器人出现故障!(原因:%s)" % e
    return answer

            
          
  • 回复格式方面以及界面设计
            
              def msgsend():
    msg = '我' + time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) + '\n'
    txt_msglist.insert(END, msg, 'green')  # 添加时间
    txt_msglist.insert(END, txt_msgsend.get('0.0', END))  # 获取发送消息,添加文本到消息列表
    msg1 = '游游大宝贝' + time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) + '\n'
    txt_msglist.insert(END, msg1, 'green')  # 添加时间
    txt_msglist.insert(END,get_robot_replay(txt_msgsend.get('0.0', END)))
    txt_msgsend.delete('0.0', END)  # 清空发送消息

def cancel():
    txt_msgsend.delete('0.0', END)  # 取消发送消息,即清空发送消息


'''绑定up键'''

def msgsendEvent(event):
    if event.keysym == 'Up':
        msgsend()

            
          
  • 聊天界面设计
            
              tk = Tk()
tk.title('和游游大宝贝的秘聊')

'''创建分区'''
f_msglist = Frame(height=300, width=300)  # 创建<消息列表分区 >
f_msgsend = Frame(height=300, width=300)  # 创建<发送消息分区 >
f_floor = Frame(height=100, width=300)  # 创建<按钮分区>
f_right = Frame(height=700, width=100)  # 创建<图片分区>

'''创建控件'''
txt_msglist = Text(f_msglist)  # 消息列表分区中创建文本控件
txt_msglist.tag_config('green', foreground='blue')  # 消息列表分区中创建标签
txt_msgsend = Text(f_msgsend)  # 发送消息分区中创建文本控件
txt_msgsend.bind('
              
                ', msgsendEvent)  # 发送消息分区中,绑定‘UP’键与消息发送。


'''txt_right = Text(f_right) #图片显示分区创建文本控件'''
button_send = Button(f_floor, text='Sendz', command=msgsend)  # 按钮分区中创建按钮并绑定发送消息函数
button_cancel = Button(f_floor, text='Cancel', command=cancel)  # 分区中创建取消按钮并绑定取消函数
'''分区布局'''
f_msglist.grid(row=0, column=0)  # 消息列表分区
f_msgsend.grid(row=1, column=0)  # 发送消息分区
f_floor.grid(row=2, column=0)  # 按钮分区
f_right.grid(row=0, column=1, rowspan=3)  # 图片显示分区
txt_msglist.grid()  # 消息列表文本控件加载
txt_msgsend.grid()  # 消息发送文本控件加载
button_send.grid(row=0, column=0, sticky=W)  # 发送按钮控件加载
button_cancel.grid(row=0, column=1, sticky=W)  # 取消按钮控件加载


tk.mainloop()

              
            
          
  • 运行截图

Python 智能聊天机器人的实现_第1张图片


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论