Python调用图灵机器人

python调用图灵机器人接口步骤:
1、登陆图灵官网图灵机器人官网注册账号创建图灵机器人;
2、登录后点击 创建机器人 ,填写一些简单的基本信息之后即可创建;
在这里插入图片描述
3、在机器人设置界面找到你的 apikey ,记录下来;
4、在[帮助中心]找到[API V2.0接入文档];

在这里插入图片描述
5、基本原理就是使用urllib.request模块,向接口地址发送HTTP POST请求,请求中加入了聊天内容,图灵机器人会根据我们发的字段值做出相应的回答,我们将响应接收取出其中的字段值打印输出。
6、在同一个目录下新建一个json文件:req.json,内容如下:

{
    "perception":
    {
        "inputText":
        {
            "text": ""
        },

        "selfInfo":
        {
            "location":
            {
                "city": "北京",
                "province": "北京",
                "street": "天安门"
            }
        }
    },

    "userInfo":
    {
        "apiKey": "输入你自己的apikey",
        "userId": "zhou"
    }
}

7、建立python文件,Turing_dome.py,代码如下:

#coding=utf-8

import json
import urllib.request

api_url = "http://openapi.tuling123.com/openapi/api/v2"
json_path = 'req.json'

class TuringDome(object):
    def __init__(self,json_path="",api_url=""):
        self.json_path = json_path
        self.api_url = api_url
        self.text_input = input('请输入我的问话\n我:')

    def readJson(self):
        '''获取json文件'''
        with open(self.json_path,'r',encoding='utf-8') as f_json:
            json_data = json.load(f_json)
        return json_data

    def textInput(self):
        '''用变量text_input替换text的value值'''
        req = self.readJson()
        req['perception']['inputText']['text'] = self.text_input
        return req

    def dumpsJson(self):
        '''将json字符串转化成dict格式'''
        req = self.textInput()
        req = json.dumps(req,sort_keys=True,indent=4,).encode('utf8')
        return req

    def urllibRequestResponse(self):
        req = self.dumpsJson()
        http_post = urllib.request.Request(self.api_url, data=req, headers={'content-type': 'application/json'})
        response = urllib.request.urlopen(http_post)# 在urlopen()方法中传入字符串格式的url地址,则此方法会访问目标网址,然后返回访问的结果。
        response_str = response.read().decode('utf8')
        response_dict = json.loads(response_str) # 将字符串response_str转成字典
        return response_dict

    def getTuringResponse(self):
        '''取得机器人返回的语句并输出'''
        response_dict = self.urllibRequestResponse()
        intent_code = response_dict.get('intent')['code']
        results_text = response_dict.get('results')[0]['values']['text']
        print('Turing的回答:')
        print('code:' + str(intent_code))
        print('text:' + results_text)

    def talkToTheTuring(self):
        #self.text_input = input('请输入我的问话\n我:')
        while True:
            if self.text_input != "exit:":
                self.getTuringResponse()
                self.text_input = input('请输入我的问话\n我:')
            else:
                print("*****结束对话!*****")
                break

if __name__ == '__main__':
    #pass
    td = TuringDome(json_path=json_path,api_url=api_url)
    td.talkToTheTuring()

8、运行结果如下:
在这里插入图片描述

备注:黄小是谁?哼哼,在我眼里,貌若天仙,心如琉璃~的女孩子
——周三岁

猜你喜欢

转载自blog.csdn.net/qq_42833469/article/details/84948380