资讯专栏INFORMATION COLUMN

使用Python与图灵机器人聊天

AWang / 1076人阅读

摘要:有很多在中使用图灵机器人的博客,但都是版本。所以今天简单地总结一下在中使用图灵机器人的方法。获取首先,前往图灵机器人官方网站注册账号。在中使用图灵机器人基本原理就是使用模块,向接口地址发送请求,请求中加入了聊天内容。

图灵机器人对中文的识别准确率高达90%,是目前中文语境下智能度最高的机器人。有很多在Python中使用图灵机器人API的博客,但都是1.0版本。所以今天简单地总结一下在Python中使用图灵机器人API v2.0的方法。

获取API KEY

首先,前往图灵机器人官方网站 http://www.tuling123.com/ 注册账号。

登录后点击 创建机器人 ,填写一些简单的基本信息之后即可创建。

在机器人设置界面找到你的 API KEY ,记录下来。

在Python中使用图灵机器人API v2.0

基本原理就是使用urllib.request模块,向接口地址发送HTTP POST请求,请求中加入了聊天内容。

*使用python3执行

import json
import urllib.request

api_url = "http://openapi.tuling123.com/openapi/api/v2"
text_input = input("我:")

req = {
    "perception":
    {
        "inputText":
        {
            "text": text_input
        },

        "selfInfo":
        {
            "location":
            {
                "city": "上海",
                "province": "上海",
                "street": "文汇路"
            }
        }
    },

    "userInfo": 
    {
        "apiKey": "请替换为你的API KEY",
        "userId": "OnlyUseAlphabet"
    }
}
# print(req)
# 将字典格式的req编码为utf8
req = json.dumps(req).encode("utf8")
# print(req)

http_post = urllib.request.Request(api_url, data=req, headers={"content-type": "application/json"})
response = urllib.request.urlopen(http_post)
response_str = response.read().decode("utf8")
# print(response_str)
response_dic = json.loads(response_str)
# print(response_dic)

intent_code = response_dic["intent"]["code"]
results_text = response_dic["results"][0]["values"]["text"]
print("Turing的回答:")
print("code:" + str(intent_code))
print("text:" + results_text)

* 几点说明:

1、字典 req 包含了向图灵机器人发出请求所需的各项信息。其中 req["perception"]["selfInfo"]["location"] 包含了地理位置信息,向图灵机器人发送与位置有关的请求时,如果没有另外指定位置,则会默认使用这个位置。例如询问"明天会下雨吗",图灵机器人会回答我"上海"明天是否下雨。

2、req["userInfo"] 包含了API KEY,请替换成你的API KEY(双引号不要删除)。另外 userId 是用户参数,暂时不明白用途,如果你有什么想法恳请留言。

3、图灵机器人的回答可以转换为python的字典格式。其中有一项 response_dic["intent"]["code"] 官方称为"输出功能code",表示这个回答是什么"类型"的。例如10004代表普通的聊天回复,10008代表与天气相关的回复。然而奇怪的是,目前API v2.0的官方文档并没有给出code和类型的对照表。目前自己总结了一些如下,欢迎补充:

code 类型
10004 聊天
10008 天气
10013 科普类,例如"班戟是什么"
10015 菜谱类,例如"剁椒鱼头怎么做"
10019 日期类,例如"愚人节是几号"、"明天是星期几"
10020 中英翻译
10023 一般返回网页会是这个code,例如"iphone多少钱"
10034 语料库中自己设定的回答
小结

到现在为止,已经快把每个独立的模块完成了,接下来该准备考虑如何把它们整合在一起了。希望能帮到你。

感谢你阅读文章!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/44643.html

相关文章

  • python玩微信(聊天器人,好友信息统计)

    摘要:用实现微信好友性别及位置信息统计这里使用的库开发。使用图灵机器人自动与指定好友聊天让室友帮忙测试发现发送表情发送文字还能回应,但是发送图片可能不会回复,猜应该是我们申请的图灵机器人是最初级的没有加图片识别功能。 1.用 Python 实现微信好友性别及位置信息统计 这里使用的python3+wxpy库+Anaconda(Spyder)开发。如果你想对wxpy有更深的了解请查看:wxpy...

    Youngs 评论0 收藏0
  • 来 DIY 个器人 - 收藏集 - 掘金

    摘要:能不能省掉这些烦琐的步骤,让开发人员自己完成呢现在好了,你可以用和把聊天机器人接入微信工具资源掘金今晚看了个电影,回得有点迟。 小花猫-网页聊天机器人 - 前端 - 掘金 基于图灵机器人API的网页聊天机器人,输入二维码+你要说的话有惊喜哦~~~(菜单中的功能尚未开发完成,玩玩聊天功能就好了~)代码开源在https://github.com/ColorfulCa... 了~... (英...

    mrli2016 评论0 收藏0
  • python_bomb----有趣的微信聊天器人

    摘要:模块是一个文件,以结尾,包含了对象定义和语句模块让你能够有逻辑地组织你的代码段。把相关的代码分配到一个模块里能让你的代码更好用,更易懂。命令执行成功,执行结果命令执行失败一秒后执行关机命令 Python 模块(Module) 是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句 模块让你能够有逻辑地组织你的 Python 代码段。 把相关的代...

    bawn 评论0 收藏0
  • 零基础微信器人实践-云技术对个人开发者的影响

    摘要:过程就是这么简单,腾讯云服务器作为基础,我们全程不用手动配置自己的服务器,多么轻松惬意。 推荐理由: 之前我对搭建微信机器人挺感兴趣的,心血来潮就做了一个图灵机器人,感觉自己长见识了,今天无意间发现了这篇文章,才发现自己已经out了,原来还有这么叼的微信机器人,可以在微信与我们聊天的机器人,它完全不同于图灵机器人那种API完成一些看似很好玩的聊天功能,真正可以为我们所用;所以小编这次特...

    MartinHan 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<