10分钟用Python告诉你两个机器人聊天能聊出什么火花
欲直接下载代码文件,关注我们的公众号哦!查看历史消息即可!
现在不是讲各种各样的人工智能嘛,AI下棋,AI客服,AI玩家……其实我一直很好奇,两个AI碰上会怎样,比如一起下棋,一起打游戏……
今天做个简单的小实验,看看两个AI一起聊天会是什么样子的。为了让实验效果更好,我们两个机器人选取了不同网站的机器人(图灵和茉莉)。
01 准备
-
pip下载安装python的requests模块,这个调用接口发送消息要用到。
-
去图灵机器人官网(http://www.turingapi.com/)申请账号->进入机器人设置->获得apikey。如下:
记得不要把密钥那里点开,不然后面要加密传输搞得很麻烦。
3) 茉莉机器人官网(http://www.itpk.cn/)申请账号->个人中心->获得Api key and Api Secret:
记得:
茉莉API地址:http://i.itpk.cn/api.php
图灵API地址:http://www.tuling123.com/openapi/api
待会搞事要用到。
02 开始搞事
好了,现在一切准备就绪,我们开始搞事情。
先调一下图灵机器人,测试一下:
1import requests
2
3tuling_data = {
4 "key": "5da047a95db8450ea6e710dd065d4be4",
5 "info": '今天武汉天气怎样?', #发送的数据
6 "userid": "272872"
7}
8tuling_api_url = 'http://www.tuling123.com/openapi/api'
9t = requests.post(tuling_api_url, data=tuling_data) #post请求
10print(t.text)
运行结果如下:
大功告成,不过返回的是数据包,待会我们用函数处理一下,提取所需的信息即可。
同样可以调用茉莉机器人:
1import requests
2
3moli_data = {
4 "question":'今天武汉天气如何?', #问题
5 "api_key": "ac00db995a4a8f2a3f3623c82f3cc9d9",
6 "api_secret": "anaoutswrz1y"
7}
8moli_api_url = 'http://i.itpk.cn/api.php'
9m = requests.post(moli_api_url, data = moli_data)
10print(m.text)
返回结果:
03 机器人之间的对话
然后就是整合两个机器人,让他们在一起聊聊天看看会发生什么了。
最简单的思路,先给一个导火线,然后死循环让他俩对话就行。。。
1from time import sleep
2import requests
3
4question = input("输入导火线:")
5TULING = '图灵'
6MOLI = '茉莉'
7print(TULING+':'+question) #导火索 哈哈
8while True:
9 #图灵
10 tuling_data = {
11 "key": "5da047a95db8450ea6e710dd065d4be4",
12 "info": question,
13 "userid": "272872"
14 }
15 tuling_api_url = 'http://www.tuling123.com/openapi/api'
16 t = requests.post(tuling_api_url, data=tuling_data) #post请求
17
18 print(TULING+':'+eval(t.text)["text"]) #用eval函数处理一下图灵返回的消息
19 question = eval(t.text)["text"] #重置question —>让茉莉回答
20
21 #茉莉
22 moli_data = {
23 "question": question,
24 "api_key": "ac00db995a4a8f2a3f3623c82f3cc9d9",
25 "api_secret": "anaoutswrz1y"
26 }
27 moli_api_url = 'http://i.itpk.cn/api.php' #api地址
28 m = requests.post(moli_api_url, data = moli_data)
29 print(MOLI+':'+m.text)
30 sleep(1) #设置循环延迟
不过这聊天确实有点尴尬啊: