Python实现与智能机器人交互

本文将利用API与智能机器人进行人机交互,进行简单的聊天对话;代码由Python语言实现。

这里使用的机器人为图灵机器人,其官方网站为:http://www.turingapi.com

开始前,清先注册账号,并创建一个机器人,获得 apikey,userid 这两个关键参数。

为了简化POST和编码过程,我使用了 requests 这个库;

机器人API:

http://openapi.tuling123.com/openapi/api/v2

API文档:https://www.kancloud.cn/turing/www-tuling123-com/718227

import requests
 
robotAPI = 'http://openapi.tuling123.com/openapi/api/v2'
 
apiKey=''
 
userId=''
 
message=''
 
def sendMessage(message,apiKey=apiKey,userId=userId):
    
    jsondata = {'reqType': '0',
                'perception': {'inputText': {'text': message},
                               'inputImage': {'url': 'imageUrl'},
                'selfInfo': {'location': {'city': '北京', 'province': 'beijing', 'street': 'xinxilu'}}},
                'userInfo': {'apiKey': apiKey, 'userId': userId}}
    if not message:return 'empty message.'
 
    r=requests.post(robotAPI,json=jsondata)
 
    if r.status_code != 200:return 'error code'
 
    return r.json()
 
while 1:
    result=sendMessage(input('->'))['results'][0]['values']['text']
    print(result)
 

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/276.html

分类: 计算机技术
推荐阅读:
Python使用蒙特卡洛法计算圆周率 蒙特卡洛方法通过在单位正方形内随机生成点,并判断这些点是否在单位圆内的比例来估算圆周率。当随机点数量越多时,估算值越趋近于真实值。
Rust程序获取命令行参数 本文将在Rust语言中使用标准库std::env中的args()函数获取命令行参数;标准库std::env中有一个args()函数,它将返回在命令行中传递的参数;
Rust debug_assert宏的用法和示例 在Rust中,debug_assert宏是一个用于在调试时检查条件的宏;它类似于assert宏,不同之处在于debug_assert仅在Rust编译器的debug模式下进行检查,而在release模式下被完全忽略。
编程中foo、bar、baz的含义 在编程中,foo、bar和baz通常被用作示例变量名。它们是一种惯用的命名习惯,通常被用于示例代码或临时代码片段中,表示没有特定含义的变量名或函数名。
C程序判断一个数是否为质数,并打印100以内的质数 在本文中,我们将使用C语言来判断一个整数是否为质数,并打印100以内的所有质数;
C语言isupper()函数:判断字符是否为大写字母 isupper()是C语言标准库中的一个函数,用于判断一个字符是否为大写字母(A~Z,ASCII码为65~90);传入的字符参数是一个大写字母时,返回非0值,否则返回0;