Python 智能聊天機器人的實現

首先項目須要的包api

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

聊天界面設計(原文獲取源代碼)編碼

原文地址:https://developer.aliyun.com/...url

相關文章
相關標籤/搜索