1 前言

一次偶然的机会,我了解到图灵机器人网站,里面有现成的智能机器人聊天API。正好当时在学tkinter,计划利用tkinter制作一个类似QQ聊天框,与机器人聊天~
具体效果如下(ps:由于在网站的免费额度用完了,这里返回的是“请求次数超限制”):

图灵机器人网站链接:图灵机器人网站

首先需要注册登录,然后点击下图中的“创建机器人”,根据自己的需要创建~

创建完成后,会出现创建数据,其中有apikey!

2 代码分模块讲解

2.1 导入相应的库

首先需要导入相应的库,涉及到tkinter、datetime、time、requests、json等~

from tkinter import *
import datetime
import time
import requests,json
from tkinter import scrolledtext

2.2 创建机器人对象

机器人对象实际上是通过request请求访问图灵机器人API!

def computer(self, inquant):userid = 99        #检查一下自己的useridapikey = ''        #这里输入自己的apikeystartup = ''while True:question = inquanttulingdata1 = json.dumps({"perception": {"inputText": {"text": question  # 将你输入的对话封装成一个字典,再转换成字符串,传给图灵机器人语义系统},},"userInfo": {"apiKey": apikey,  # 与图灵语义系统联系"userId": userid}})robot1 = requests.post('http://openapi.tuling123.com/openapi/api/v2', tulingdata1)  # 因为是人机对话,所以通过post传递信息jsrobot1 = json.loads(robot1.text)['results'][0]['values']['text']  # 返回图灵机器人的对话return jsrobot1+'\n'

2.2 创建信息交互过程对象

这里实际上是将发送信息与接收信息的过程进行封装,方便之后的调用。同时使用了时间库,使聊天更加的真实!

def sendmessage(self, text_msglist, text_msg):msgcontent = '我:' + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + '\n 'text_msglist.insert(END, msgcontent, 'green')text_msglist.insert(END, text_msg.get('0.0', END))computertent = '图灵机器人:' + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + '\n 'text_msglist.insert(END, computertent, 'green')computer_talk = text_msg.get('0.0', END)text_msglist.insert(END, (self.computer(computer_talk)))text_msg.delete('0.0', END)

2.3 页面创建对象

通过grid来布局tkinter组件使页面更加的美观

def createPage(self):self.frame_left_top = Frame(width=600, height=220, bg='white')self.frame_left_center = Frame(width=600, height=100, bg='white')self.frame_left_bottom = Frame(width=600, height=20)##创建需要的几个元素text_msglist = scrolledtext.ScrolledText(self.frame_left_top)text_msg = Text(self.frame_left_center)button_sendmsg = Button(self.frame_left_bottom, text='发送', command=lambda: self.sendmessage(text_msglist, text_msg))# 创建一个绿色的tagtext_msglist.tag_config('green', foreground='#008B00')# 使用grid设置各个容器位置self.frame_left_top.grid(row=0, column=0, padx=2, pady=5)self.frame_left_center.grid(row=1, pady=5)self.frame_left_bottom.grid(row=2, column=0)self.frame_left_top.grid_propagate(0)self.frame_left_center.grid_propagate(0)self.frame_left_bottom.grid_propagate(0)# 把元素填充进frametext_msglist.grid()text_msg.grid()button_sendmsg.grid(row=0, column=0, sticky=E)

3 整体代码展示(可直接使用!)

ps:在computer函数中,将改换的换成自己的!

from tkinter import *
import datetime
import time
import requests,json
from tkinter import scrolledtextclass talk(object):def __init__(self, master=None):self.root = master  # 定义内部变量rootself.createPage()def computer(self, inquant):userid = 99apikey = ''   #换成自己的apikeystartup = ''while True:question = inquanttulingdata1 = json.dumps({"perception": {"inputText": {"text": question  # 将你输入的对话封装成一个字典,再转换成字符串,传给图灵机器人语义系统},},"userInfo": {"apiKey": apikey,  # 与图灵语义系统联系"userId": userid}})robot1 = requests.post('http://openapi.tuling123.com/openapi/api/v2', tulingdata1)  # 因为是人机对话,所以通过post传递信息jsrobot1 = json.loads(robot1.text)['results'][0]['values']['text']  # 返回图灵机器人的对话return jsrobot1+'\n'def sendmessage(self, text_msglist, text_msg):msgcontent = '我:' + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + '\n 'text_msglist.insert(END, msgcontent, 'green')text_msglist.insert(END, text_msg.get('0.0', END))computertent = '图灵机器人:' + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + '\n 'text_msglist.insert(END, computertent, 'green')computer_talk = text_msg.get('0.0', END)text_msglist.insert(END, (self.computer(computer_talk)))text_msg.delete('0.0', END)def createPage(self):self.frame_left_top = Frame(width=600, height=220, bg='white')self.frame_left_center = Frame(width=600, height=100, bg='white')self.frame_left_bottom = Frame(width=600, height=20)##创建需要的几个元素text_msglist = scrolledtext.ScrolledText(self.frame_left_top)text_msg = Text(self.frame_left_center)button_sendmsg = Button(self.frame_left_bottom, text='发送', command=lambda: self.sendmessage(text_msglist, text_msg))# 创建一个绿色的tagtext_msglist.tag_config('green', foreground='#008B00')# 使用grid设置各个容器位置self.frame_left_top.grid(row=0, column=0, padx=2, pady=5)self.frame_left_center.grid(row=1, pady=5)self.frame_left_bottom.grid(row=2, column=0)self.frame_left_top.grid_propagate(0)self.frame_left_center.grid_propagate(0)self.frame_left_bottom.grid_propagate(0)# 把元素填充进frametext_msglist.grid()text_msg.grid()button_sendmsg.grid(row=0, column=0, sticky=E)if __name__ == "__main__":root = Tk()root.title('图灵机器人聊天')talk(root)root.mainloop()

最后再次展示一下界面图:

【Python】利用tkinter与图灵机器人制作智能聊天系统相关推荐

  1. 微信公告号 图灵机器人实现智能回复

    微信公告号 图灵机器人实现智能回复 使用五个图灵机器人实现循环,若第一个机器人回复次数使用完,则可以使用下一个机器人,五次机会使用完,则返回提示. 其他详细代码接上一节 package com.qfj ...

  2. 图灵机器人( 智能回复微信)及(智能聊天)

    目录 一.什么是图灵机器人? 二.帮你自动微信回复(Python版) 三.图灵机器人智能聊天(微信小程序版) 一.什么是图灵机器人? 1. 图灵机器人简介: 是中文语境下智能度最高的"机器人 ...

  3. python编程控制机器人_基于Python开发的微信图灵机器人

    在过去的几个月中,由于在新生群中回答问题费时费力,同时又有许多重复而又有固定答案的回答,我受到一些知乎文章的启发,维护了一个基于itchat的群聊机器人.从刚开始接入图灵机器人时只会尬聊的机器人,之后 ...

  4. python轻松实现与图灵机器人的人机交互

    要实现与图灵机器人的交互,首先就要调用图灵机器人的API接口,我们首先创建一个机器人,步骤如下: 到图灵机器人官网,登陆注册成为用户. 登陆后点击创建机器人,每个用户可免费申请5个机器人,创建成功后如 ...

  5. Python免费快速接入图灵机器人接口

    图灵机器人相信大家并不陌生.通过图灵机器人,开发者和厂商能够以高效的方式创建专属的聊天机器人.客服机器人.领域对话问答机器人.儿童/服务机器人等.下面给大家见到那介绍如何通过Python(2.7版本) ...

  6. Python使用微信接入图灵机器人

    1.wxpy库介绍 wxpy 在 itchat 的基础上,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展. 文档地址:https://wxpy.readthedocs.io 从 PYPI 官 ...

  7. Python 技术篇 - 微信调用图灵机器人的api接口实现自动回复实例演示。图灵机器人的注册与使用

    这是一个把接收的消息传给图灵机器人,再把图灵机器人回复的消息传回来的函数. def get_response(msg):apiUrl = 'http://www.tuling123.com/opena ...

  8. php百度大脑,百度大脑和图灵机器人制作一个简单的自动聊天机器人【PHP代码】...

    可以和机器人聊天 文字发送消息 网页进行语音回复 这里主要用到了两个接口 一个是百度大脑  用来实现语音合成 一个是图灵机器人用来实现自动聊天 以下是代码分两个版本 版本一是没有语音合成 版本二是加上 ...

  9. 如何在微信公众号调用图灵机器人(智能聊天)

    最近在研究微信公众号,有人问我可以找你的公众号聊天吗?我的第一反应是我很忙我要上班没有时间,后面就度娘了一下,发现了这个神奇的图灵机器人,可以替你跟用户聊天!是否期待你的公众号有一个萌萌哒机器人陪客人 ...

最新文章

  1. CentOS虚拟机和物理机共享文件夹实现
  2. 常用基础参数PrintGCDetails回收前后对比讲解
  3. 0 开发的准备工作一一虚拟机virturalbox
  4. Tomcat启动时卡在org.apache.catalina.startup.HostConfig
  5. feedback.php,feedback.php
  6. 【Java】深入理解Java虚拟机的读书笔记
  7. 《Algorithms》常见排序算法比较
  8. Java实现分页功能 代码很粗糙,都是根据自己所需去定义逻辑功能的。
  9. Gym102028G Shortest Paths on Random Forests 生成函数、多项式Exp
  10. [转]使用Hyper-V BPA(Best Practices Analyzer-最佳化分析工具)
  11. 数学建模暑期集训28:元胞自动机
  12. 高斯课堂数电讲义笔记_《高数上》讲义笔记【高斯课堂】 (1).pdf
  13. 21世纪语言教程5c,21世纪核心素养5C模型
  14. 禁止搜索引擎收录网站内容,百度,谷歌,所有等...
  15. ROS学习笔记---ros的通信机制
  16. 计算机用鼠标画图,在电脑上用鼠标画画用那个软件好
  17. Leetcode 858. 镜面反射 Python解法
  18. 用Python教训盗号骗子
  19. (最全干货分享)渗透测试全流程归纳总结之二
  20. 动态更新initialValue的值

热门文章

  1. 柔性matlab机械臂运动空间代码,中正平和的机器人学笔记——2. 机械臂逆运动学(附MATAB代码)...
  2. 图像处理与计算机视觉基础,经典以及最近发展
  3. UMOUNT NAS报错No space left on device和was not found in /proc/mounts
  4. 低功耗蓝牙模块到底是什么?
  5. Linus Torvalds开源峰会访谈摘录:关于社区、Ru
  6. Android自动化大讲堂34--终极自动化框架UIAutomator使用详解
  7. 生成对抗网络的损失函数如何设计_理解生成对抗网络,一步一步推理得到GANs(一)...
  8. 黑群晖Docker 安装Jellyfin 家庭影院
  9. 为什么用计算机名访问不了,局域网用计算机名不能访问,用ip地址可以访问解决办...
  10. 校园社交app开发软件能够让用户用更为方便快捷方式交到朋友