创建百度云应用调用unit的技能或者机器人
半醉半醒半疯Z 发布于2019-03 浏览:5696 回复:8
1
收藏
最后编辑于2021-03

    想要使用接口调用创建的技能或者机器人,就需要在百度云上面创建包含unit的应用,创建成功之后,会有API Key和Secret Key,使用这两个值去调用获取token的接口,然后就可以使用这个token去调用技能对话接口了。

    创建技能之后,在页面的“技能发布”下有个“调用对话API”,点击右侧的“获取API Key/Secret Key”

    创建机器人之后,在页面的“发布上线”下有个“研发/生产环境”,点击右侧的“获取API Key/Secret Key”

   

    点击之后,就进入了百度云界面(一般会需要登录百度云,此时登录的账号需要与unit对应的百度云账号一致)。点击创建应用

      

    

     应用名称和应用类型自行选择即可。

     接口选择,因为是从unit跳转到百度云创建应用,所以unit2.0默认是勾选的,界面上的unit1.0不用关注,因为之前使用过unit1.0所以这里会有,一般情况下,只显示unit2.0。

     

     写了描述之后,点击立即创建。这个应用就有了调用unit接口的权限了。

     

     就可以使用这里的API Key和Secret Key去获取token,然后调用接口了。

     获取token的介绍链接:http://ai.baidu.com/docs#/Auth/top

     技能对话接口链接:http://ai.baidu.com/docs#/UNIT-v2-API/0dced3e6

     技能对话接口多轮对话传参格式介绍:https://ai.baidu.com/forum/topic/show/870054

     机器人对话接口链接:http://ai.baidu.com/docs#/UNIT-v2-service-API/top

     机器人对话接口多轮对话传参格式介绍:https://ai.baidu.com/forum/topic/show/941936

 

    另外,如果之前使用百度的其他接口,比如语音之类的,如果直接使用语音应用获取的token去调用unit的技能对话接口,会报错。这时候,可以直接进入自己的百度云应用,点击应用名,就可以修改应用里面的接口,可以把unit2.0添加到里面去。

 

     还有时候,明明创建的应用包含了unit2.0,但是调用的时候也会报错,这时候可以检查一下,创建应用的账号与unit的账号是不是一致的,只有一致才可以。

    

收藏
点赞
1
个赞
共8条回复 最后由wangwei8638编辑于2021-03
#9wangwei8638回复于2020-04
#8 四个70回复
可以调用系统预设的技能吗?

可以啊

0
#8四个70回复于2020-04

可以调用系统预设的技能吗?

0
#7chengshixian88回复于2019-07

boolean false

0
#6chengshixian88回复于2019-07

输出boolean false

0
#5非正式行回复于2019-04

{"bot_session":"session_id":"session-1556183750122-503311927-8013-2","log_id":"77585226","request":{"bernard_level":1,"client_session":"{\"client_results\":\"\", \"candidate_options\":[]}","query":" 北京天气怎么样","query_info":{"asr_candidates":[],"source":"KEYBOARD","type":"TEXT"},"updates":"","user_id":"88888"},"bot_id":"49783","version":"2.0"}

我这样传参数进行多轮会话有错吗?报错The request content type is illegal

0
#4wangwei8638回复于2019-04

多轮对话才好

0
#3Yecgaa_回复于2019-04

import json

import requests
headers = {'Content-Type': 'application/json;charset=UTF-8'}
url_access = "https://aip.baidubce.com/oauth/2.0/token"
data_access = {
"grant_type":"client_credentials",
"client_id":"*******",
"client_secret":"*********",
}
req = requests.post(url_access, json.dumps(data_access), headers)
result = json.loads(req.text)
#access_token=result["access_token"]
print(result)

 

似乎不能请求成功

错误:{'error': 'unsupported_grant_type', 'error_description': 'The authorization grant type is not supported'}

 

但当我使用示例方法时:

request = urllib.request.Request(host)
request.add_header('Content-Type', 'application/json; charset=UTF-8')
response = urllib.request.urlopen(request)
content = response.read()

 

content似乎不是json或者字典

 

0
#2伊茨米可回复于2019-03

如有问题欢迎留言~

0
TOP
切换版块