Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3463
  • 博文数量: 7
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 45
  • 用 户 组: 普通用户
  • 注册时间: 2019-12-26 17:00
文章分类
文章存档

2020年(5)

2019年(2)

我的朋友
最近访客

分类: Python/Ruby

2020-01-07 15:10:41

首先项目需要的包

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("",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() 

聊天界面设计(原文获取代码)

源码地址

阅读(151) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~