教你用python几十行代码编写对话机器人
最近闲来无事,就自己写点代码弄了一个对话机器人。当然,这个机器人是基于图灵机器人这个平台的接口的,因为对于我这个小白来说自己编写一个机器人代码还是颇有难度啊哈哈。
说实话这个机器人小姐姐还是有点高冷呢(对了,悄悄告诉你们,机器人的性别、名字和年龄都是可以修改的哦,大家赶快自己去看看吧)
好了,废话不多说,我们先来看看这个机器人是怎么实现的吧。
首先我们先去http://www.tuling123注册一个账号,然后找到机器人管理页面:
这里可以免费创建一些自己的机器人,不过这些机器人是有单日调用次数限制的,好像是每天一千条,不过对于我们只是玩玩的人来说是绰绰有余啦。然后注意上面的apikey,这就是我们将来要调用的端口的秘钥,把它复制下来备用。
接下来就是我们的代码实现了,这个代码主要完成的还是端口的调用,网上也有一些类似的代码,甚至有可以搭建微信还有qq机器人的代码,不过那些就有些复杂啦,为了方便起见我给大家准备了一个只有几十行的代码给大家作参考(大佬们也可以自己完成啦)
import json
import socket
import uuid
from urllib.request import urlopen, Request
from urllib.parse import urlencode
class robot(object):
def __init__(self):
self.turing_url = "http://www.tuling123/openapi/api?"
self.app_key = "这里填写自己的apikey哦"
def getTuringText(self, text):
user_ip = self.getHostIp()
mac_id = self.getMacId()
turing_url_data = dict(key = self.app_key, info = text, userid = mac_id)
request = Request(self.turing_url + urlencode(turing_url_data))
try:
w_data = urlopen(request)
except:
return error_info
response_text = w_data.read().decode("utf-8")
json_result = json.loads(response_text)
return json_result["text"]
def getHostIp(self):
socket_info = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
socket_info.connect(("8.8.8.8", 80))
ip = socket_info.getsockname()[0]
return ip
def getMacId(self):
node = uuid.getnode()
mac = uuid.UUID(int = node).hex[-12:]
return mac
if __name__ == '__main__':
print("现在可以和机器人聊天了(退出请输q)")
turing = robot()
while True:
msg = input("\n我:")
if msg =='q':
exit("聊天结束")
else:
turing_data = turing.getTuringText(msg)
print("机器人:", turing_data)
这段代码直接复制到你的集成开发环境就可以直接运行了,记得在里面填写自己机器人的apikey哦,是不是很简单呢?
所以赶紧去问他一些有趣的问题吧!(当然一些非主流的问题他不一定回答的上来哦,毕竟机器人不是人哦)
好了,本教程就到此结束啦,喜欢的小伙伴记得点赞哦,也欢迎志同道合的朋友们关注我和我一起交流。
2019年4月2日
更多推荐
教你用python几十行代码编写对话机器人
发布评论