猫史档案馆


【Python作品分享】和机器人对话【作品秀】

用户:婷婷FfvE婷婷FfvE查看:0 回复:0 评论:0 创建时间:2022-05-18T10:14:09


【作品展示】

center_image

 

【作品介绍】

这是一个连接图灵机器人的程序,用他可以和机器人对话

 

【作品源代码】

import requests
import json


class Robot():
    def __init__(self):
    #'''先初始化请求URL和apikey'''
        self.url = 'http://openapi.turingapi.com/openapi/api/v2'
        self.apikey = 'c8382f39d23喵623959dec2738e1a0c3'

    def send_msg(self, userid, msg):
        '''向机器人发送消息,并返回结果'''
        base_data = {  # 构造一个字典参数
            "perception": {
                "inputText": {
                    "text": msg
                }
            },
            "userInfo": {
                "apiKey": self.apikey,
                "userId": userid
            }
        }

        headers = {  # 构造一个请求头,其中定义了传输格式
            'content-type': 'application/json'
        }
        data = json.dumps(base_data).encode('utf8')  # 将字典对象转化为JSON对象,再编码为uft-8
        resp = requests.post(self.url, data=data)  # 发送请求
        self.msg_analysis(resp)  # 解析结果

    def msg_analysis(self, resp):
        '''解析返回结果'''
        resp_dic = resp.json()  # 将结果转化为字典类型,方便解析
        if resp_dic['intent']['code'] == 10004:  # 如果返回成功状态码,才进行下列操作
            self.result_type = resp_dic['results'][0]['resultType']
            # 将解析的结果保存为对象属性
            self.result_text = resp_dic['results'][0]['values']['text']


if __name__ == '__main__':
    robot = Robot()  # 先创建一个接口对象
    while True:
        msg = input('我对图灵机器人说:')  # 控制台输入
        robot.send_msg('jude', msg)  # 发送数据并解析结果
        print('图灵机器人:' + robot.result_text + '\n' )  # 打印结果

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页