上一节:
<< 【Python】2行代码爬取当地天气,你敢信? >> 听说上节课我们学习了调用API来进行天气查询,今天继续学习 API 获让你跟AI机器人进行聊天。让大家对API接口有再进一步的熟悉。 # 好好学习,天天打卡 #在机器世界里,有一个歪果仁,名字叫做“图灵”,他提出了“图灵测试”。测试中要求一个人和一台拥有智能的机器设备在互不相知的情况下,进行随机的提问交流,如果超过3成的测试者没有发现对方是机器设备,那就代表了这台设备拥有“人类智能”。
那么,今天就来教你写一段代码,实现机器人与你聊天,看看你到底能不能识别出来它是机器人。
温故知新 关于API
# 关于API #
今天的代码很简单,还是调用网络上的API,不懂的请看前两篇文章。
分析问题
# 思路 #
这就是我们的思路,超级简单有没有。
# 下载模块 #
上节课下载过的小伙伴,就不用下载了!请跳过。
没下载过的,请看前两篇文章
# 申请key #
打开浏览器,搜索“图灵机器人”,注册,然后创建一个机器人,复制apikey。
开始编码 一步一步来..
根据思路,写出注释
# 导入模块 #
我们需要用到requests模块,和json模块,两个都导入。
然后根据它提供的接口参数,我们复制下来,加到代码里,删掉没用的。
text,就是你要聊天的内容,下面的location修改成自己的地理位置信息。然后userInfo里面填入你刚才申请的apikey,复制进来。userid就直接填写"OnlyUseAlphabet"
# 获取分析结果 #
首先先将数据用,json.dumps转换成json数据,并且编码成utf8格式,因为接口明确规定接口必须是utf-8。然后用我们一直在用的requests模块,模拟一个post请求,参数是接口地址,加上我们构造的数据。
写到这里,我们的代码其实已经写好了。运行一下,看看结果。
所以今天的代码很简单,就上面这些就可以了。但是为了更好看一点,我还是要对数据进行一些分析,获取我们想要的数据就好,然后数出来。
# 分析返回的数据 #
我们复制看看它到底返回了什么数据。为了好看,我把数据整理了一下,如图所示,
看到emotion就是表情信息,暂时没用;intent里面有code,表示消息的类型,查看官方文档。results就是返回的消息,很有用,我们只要获取里面values的值就好了。但是我们可以看见“results”后面的值,是用“[]”这个符号,也就是列表数据,所以我们等下读取的时候,需要用下标来读,这点不要忘记。
所以我们直接print,就可以获取机器人返回来的数据呢
code等于10015,表示数据是菜谱,它除了返回text,还外加一个url链接。类似下图这样,所以我们才要稍作判断。
为了更合理一些,我们加个判断
当然,你也可以根据不同消息类型,在这里加很多个elif 判断code
# 代码优化 #
我们将代码改成函数,然后实现聊天对话功能,所以在这段代码前面加个def语句,定义一个函数,然后后面代码全部往右缩进一个TAB。
这里的msg就是等下要获取用户输入的消息,然后通过函数将参数传到机器人那里,然后再返回数据,这样,就实现了互相聊天的功能。
在最后面加个主程序,来循环聊天,直到用户输入quit,退出程序。
运行一下
完美运行。
python完整代码
如果需要源码,请在公众号后台回复【源码】,每次的代码我都会上传到那里,有需要的请自取。今天的文件名为"s21.py"
如有什么疑问,请加下面这个人儿
↓ ↓ ↓ 加入我们,一起学习吧 ↓ ↓ ↓
生活不容易,点个“在看”吧