以青云客和图灵机器人接口示范python创建个人聊天机器人教程
一、以青云客聊天机器人为例示范get请求
官方网址:http://api.qingyunke.com/
1、接入指引
请求地址 http://api.qingyunke.com/api.php 请求方式 GET 字符编码 utf-8 请求示例 http://api.qingyunke.com/api.php?key=free&appid=0&msg=你好
参数 示例 说明 key free 必需,固定值 appid 0 可选,0表示智能识别 msg 你好 必需,关键词,提交前请先经过 urlencode 处理
返回结果 {"result":0,"content":"你好,我就开心了"}
☆ 返回结果中{br}表示换行,请自行替换成需要的代码。
☆ 为保证接口稳定,调用频率请控制在200次/10分钟内,我们正在努力提供更稳定的服务
完整请求URL示例: http://api.qingyunke.com/api.php?key=free&appid=0&msg=你好
其他内容示例:
1 天气:msg=天气深圳 2 中英翻译:msg=翻译i love you 3 智能聊天:msg=你好笑话:msg=笑话 4 歌词⑴:msg=歌词后来 5 歌词⑵:msg=歌词后来-刘若英 6 计算⑴:msg=计算1+1*2/3-4 7 计算⑵:msg=1+1*2/3-4 8 IP⑴:msg=归属127.0.0.1 9 IP⑵:msg=127.0.0.1 10 手机⑴:msg=归属13430108888 11 手机⑵:msg=13430108888 12 成语查询:msg=成语一生一世 13 五笔/拼音:msg=好字的五笔/拼音
2、封装函数
2.1 封装示例:
# 导入模块 import requests from urllib import parse # 组装请求 def test_get(msg): url = 'http://api.qingyunke.com/api.php?key=free&appid=0&msg={}'.format(parse.quote(msg)) html = requests.get(url) return html.json()["content"] # 解析返回并打印 while True: msg = input("我:") res = test_get(msg) print("答:", res)
2.2 执行返回结果:
C:\Users\yzp\AppData\Local\Programs\Python\Python37\python.exe D:/00test/RFTEST/qingyunke
我:您是谁?
答: 我是机器人
我:您在哪?
答: 我在找您
我:您要去哪里?
答: 哪也别去,改天菲菲带你去吧
二、以图灵聊天机器人为例示范post请求
1、接口说明
API V2.0是基于图灵机器人平台语义理解、深度学习等核心技术,为广大开发者和企业提供的在线服务和开发接口。目前API接口可调用聊天对话、语料库、技能三大模块的语料:
- 聊天对话是指平台免费提供的近10亿条公有对话语料,满足用户对话娱乐需求;
- 语料库是指用户在平台上传的私有语料,仅供个人查看使用,帮助用户最便捷的搭建专业领域次的语料。
- 技能服务是指平台打包的26种实用服务技能。涵盖生活、出行、购物等多个领域,一站式满足用户需求。/2、 使用说明
2、编码方式:
UTF-8(调用图灵API的各个环节的编码方式均为UTF-8)/3、接口地址:
http://openapi.turingapi.com/openapi/api/v2
请求方式:
HTTP POST
请求参数:
请求参数格式为 json
请求示例:
{ "reqType":0, "perception": { "inputText": { "text": "附近的酒店" }, "inputImage": { "url": "imageUrl" }, "selfInfo": { "location": { "city": "北京", "province": "北京", "street": "信息路" } } }, "userInfo": { "apiKey": "", "userId": "" } }
部分参数说明,完整接口说明请看图灵api官方网址:https://www.kancloud.cn/turing/www-tuling123-com/718227:
接口中apiKey需要自行上官网申请:http://www.turingapi.com/
3、完整调用示例:
import requests url = "http://openapi.tuling123.com/openapi/api/v2" data = { "reqType": 0, "perception": { "inputText": { "text": "附近的酒店" }, "inputImage": { "url": "imageUrl" }, "selfInfo": { "location": { "city": "北京", "province": "北京", "street": "信息路" } } }, "userInfo": { "apiKey": "1c99470a8a8354e248a4c229234d14af", "userId": "1" } } res = requests.post(url=url, json=data) # JSON格式的请求,将数据赋给json参数 print(res.text)
接口返回:
{ "intent": { "actionName": "", "code": 10037, "intentName": "" }, "results": [ { "groupType": 1, "resultType": "text", "values": { "text": "我还没去过那,所以我暂时就不给你推荐了" } } ] }
4 、封装函数:
4.1 封装示例
import requests while True: url = "http://openapi.tuling123.com/openapi/api/v2" question = input("我:") data = { "reqType": 0, "perception": { "inputText": { "text": question } }, "userInfo": { "apiKey": "e825286159f9f57db1b597995d7b", "userId": "1234" } } res = requests.post(url=url, json=data) # JSON格式的请求,将数据赋给json参数 answer = res.json()["results"][0]["values"]["text"] print("答:"+answer)
4.2 执行返回结果
C:\Users\yzp\AppData\Local\Programs\Python\Python37\python.exe D:/00test/RFTEST/test_post.py 我:你是谁? 答:我是机器人 我:你今年多大了 答:18岁! 我: