Python调用Unit闲聊对话API的应用
文章目录
- 1 机器人的创建
- 2 Python调用API的代码实现
简介:利用百度大脑平台(百度智能对话定制与服务平台,即UNIT)提供的API接口,实现可以完成闲聊功能的智能对话机器人
1 机器人的创建
访问百度大脑网址:https://ai.baidu.com/unit/home
点击进入UNIT:
然后登陆百度账号,进入到以下页面,点击我的机器人:
点击“+”号创建机器人,我们设置机器人名称为“闲聊机器人”,描述里写“闲聊”,然后创建:
点击新创建好的机器人界面,点击技能管理界面:
然后点击蓝字“技能管理页”,再点击“添加预置技能”,拉到最下面,找到闲聊功能并创建
然后新建我的闲聊技能,命名为“闲聊机器人”
然后回到我们的“我的机器人”界面中的技能管理,添加技能,我们可以看到我们创建的“闲聊机器人”功能,将其添加至机器人即可。
然后点击“发布上线”中的“研发/生产环境”,点击蓝色按钮“获取API Key/Secret Key”
我们可以看到如下界面,其中有两个重要的参数——API Key和Secret Key
以上过程我们创建好了闲聊机器人,下面我们需要做的就是在Python中调用该机器人的API接口,实现闲聊功能。
2 Python调用API的代码实现
导入相关包:
import json
import random
import requests
设置好相关参数。这里的id对应的即上面的API Key,secret对应的是上面的Secret Key
client_id = "byKLF3DzDpYGQDPifrymq14j"
client_secret = "dZGTviCbBKr8FWzo2HjL7Qs5LMGFAki1"
编写函数unit_chat。其功能是调用百度大脑UNIT接口。包括两个参数:chat_input代表的是用户输入的内容,user_id表示用户的id号,我们默认为“88888”;函数的返回值是闲聊机器人的回复内容。
def unit_chat(chat_input, user_id="88888"):# 设置默认回复chat_reply = "不好意思,我正在学习中,随后回复你"# 固定的url格式url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=%s&client_secret=%s"%(client_id, client_secret)res = requests.get(url)access_token = eval(res.text)["access_token"]unit_chatbot_url = "https://aip.baidubce.com/rpc/2.0/unit/service/chat?access_token=" + access_token# 拼装聊天接口对应请求post_data = {"log_id": str(random.random()), #登陆的id,是什么不重要,我们用随机数生成一个id即可"request": {"query": chat_input, #用户输入的内容"user_id": user_id #用户id},"session_id": "","service_id": "S53842", #!!!!这个很重要,必须对应我们创建的机器人的id号,id号在百度大脑中我们创建的闲聊机器人中可见"version": "2.0"}# 将聊天接口对应请求数据转为json数据res = requests.post(url=unit_chatbot_url, json=post_data)# 获取聊天接口返回数据unit_chat_obj = json.loads(res.content)# 判断聊天接口返回数据是否出错(error_code == 0则表示请求正确)if unit_chat_obj["error_code"] != 0:return chat_reply# 解析聊天接口返回数据,找到返回文本内容 result -> response_list -> schema -> intent_confidence(>0) -> action_list -> sayunit_chat_obj_result = unit_chat_obj["result"]unit_chat_response_list = unit_chat_obj_result["response_list"]# 随机选取一个"意图置信度"[+response_list[].schema.intent_confidence]不为0的技能作为回答unit_chat_response_obj = random.choice([unit_chat_response for unit_chat_response in unit_chat_response_list ifunit_chat_response["schema"]["intent_confidence"] > 0.0])unit_chat_response_action_list = unit_chat_response_obj["action_list"]unit_chat_response_action_obj = random.choice(unit_chat_response_action_list)unit_chat_response_say = unit_chat_response_action_obj["say"]return unit_chat_response_say
测试我们的闲聊机器人。我们建立一个while循环,当用户输入Bye或bye后退出循环。
if __name__ == "__main__":while True:chat_input = input("请输入:")if chat_input == 'Bye' or chat_input == "bye":breakchat_reply = unit_chat(chat_input)print("Unit:", chat_reply)
测试结果如下:
Python调用Unit闲聊对话API的应用相关推荐
- Python 调用有道翻译api接口翻译外文网站的整篇西班牙文实战演示
Python 调用有道翻译 api 接口翻译整篇西班牙文实战演示 第一章:翻译效果展示 ① 翻译文章示例一[阿尔卡拉门的无海摩纳哥:"不到4万欧元,你就不能在这里租任何东西."] ...
- python有道翻译接口-Python调用有道翻译api实现翻译
通过调用有道翻译的api,实现中译英.其他语言译中文 代码: # coding=utf-8 import urllib import urllib2 import json import time i ...
- Python调用百度通用翻译api
Python调用百度通用翻译api 首先 首先 首先需要先去百度翻译api官网注册成为开发者,然后申领一下通用翻译的appid和密钥. 附上代码,默认为源语言自动识别,效果感觉不是太好,目标语言默认为 ...
- Python调用百度智能云API进行文本情感分析
Python调用百度智能云API进行文本情感分析 安装SDK 在调用前首先需要通过 pip 安装百度智能云 SDK. 可参考官方文档:https://cloud.baidu.com/doc/OCR/s ...
- 利用Python调用ECMWF欧洲中心API批量下载数据
前段时间由于需要下载ECMWF(欧洲中期天气预报中心)的再分析数据,学习了如何利用Python调用ECMWF欧洲中心API进行批量下载.这种下载ECMWF数据的方法在官网上有非常详细的介绍.我只是对这 ...
- 使用Python调用百度地图的API在地图上添加标记
写在前面 近期博主工作太忙,快一个月没更新博客.今天跑了大半天的腿,被一堆破事儿弄的无比憋屈,写篇博客调节一下心情. 博主的目的是在地图上做一些标记,然后保存为html网页文件,这样方便我的软件调用, ...
- python powerbi知乎_利用Python调用Power BI REST API
本文是D-BI之Power BI REST API系列第三篇,讲解如何利用一段简单的Python脚本实现Power BI REST API的调用,将使用与上文完全不同的方法 前述 上文<Powe ...
- Python调用百度人脸识别API接口检测颜值
我们今天使用Python发送网络请求到百度人脸识别API接口. 我们需要requests模块,它需要安装,代码是 pip3 install requests 注意:不好意思各位,我的配额没了!如需使用 ...
- python调用百度智能云API请求(以自然语言处理——词法分析为例)
调用API的思路: 获得api的token 按官方文档发送链接 分析返回的结果 步骤一:获取API的token 如果不知道token是啥,或是不知道怎么获取token,请参考:https://blog ...
最新文章
- 关于sysobjects这个表
- java同步锁synchronized_Java对象锁和类锁全面解析(多线程synchronized关键字)
- lucene源码分析(7)Analyzer分析
- Spring Boot——AbstractWebSocketMessageBrokerConfigurer已过时解决方案
- Zing加快了JVM应用程序的预热
- debugging Auto Layout:Logical Errors
- [jQuery基础] jQuery案例 -- qq音乐以及初步解决Ajax 跨域问题
- matlab控制算法C语言,PID算法Matlab仿真程序和C程序
- jeecg字典表-系统字典
- android 点击事件失效,安卓手机微信自带浏览器点击事件失效解决
- 交换机生成树相关实验
- QQ浏览器 不支持html5,浏览器常见问题_浏览器高级功能_浏览器在线帮助-QQ浏览器官网...
- VVC/VTM:代码学习——量化实现之RDOQ
- Unity Error 打AssetBundle时出现 An asset is marked with HideFlags.DontSave but is included in the build
- 使用 ROT13 算法加密解密数据
- shell正则表达式及一些排序命令(sort、uniq、tr)
- UE4 材质学习 (02-利用UV来调整纹理)
- 计算机win7卡顿如何解决方法,win7电脑运行很慢很卡怎么办
- 调试经验——Excel函数转置函数(TRANSPOSE)的应用 (Use of TRANSPOSE function in Excel)
- 吃鸡游戏对服务器性能,《绝地求生》国服用超性能服务器,网络全互联