百度api 一直提示token错误_百度自然语言理解平台UNIT-多轮对话

832b866e686882849a9161aa6e4f4f24.png

多轮对话,顾名思义,同一个意图下的多轮提问和答复。

本帖帮助初级开发者在零代码情况下体验和调用对话API进行对话,共设置了3个任务及其教程,大家可按需浏览。

  • 任务一、成功调用一次技能对话API
  • 任务二、使用 技能对话API 实现多轮对话
  • 任务三、使用 机器人对话API 实现多轮对话

一、成功调用一次技能对话API

初次调用对话API我们需要完成3步(1.在百度智能云“产品服务 / 理解与交互技术UNIT”中创建应用、2.利用这个应用的API Key和Secret Key获取请求技能的Access Token、3.携带Access Token请求技能对话API)

1.首先下载并安装测试API 测试工具-postman

2.接着创建应用:进入百度智能云“产品服务 / 理解与交互技术UNIT”( https://console.bce.baidu.com/ai/?_=0&fromai=1#/ai/unit/app/list ),点击“创建应用”,输入应用名称并完成创建,获得应用的API Key和Secret Key。

c8070a8b3ff5ec2e2b07ab012b545439.gif

3.然后获取Access Token:打开安装好的postman,设置请求方式为POST,并输入以下请求链接:

https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=API Key&client_secret=Secret Key& (API Key和Secret Key的值来源于第2步创建好的应用)

点击蓝色的“Send”按钮,发送请求后会收到响应,响应中有我们需要的access_token的值。

9e2b3c654280fec459a86f100e441298.gif

4.最后调用技能对话API:在postman中新建一个页面,设置请求方式为POST,并输入以下请求链接:

https://aip.baidubce.com/rpc/2.0/unit/bot/chat?access_token=access_token(access_token的值来源于第3步获取到的值)

点击蓝色的“Send”按钮,发送请求后会收到响应,响应中如果出现282008错误(非法请求内容错误类型),表明我们成功调用了技能对话API,接着提供您在unit平台已经训练成功的技能ID,然后在postman中填写如下请求Body:

{  "bot_session": "",  "log_id": "1234567890",  "request": {    "bernard_level": 1,    "query": "预订火车票",      "query_info": {      "asr_candidates": [],      "source": "KEYBOARD",      "type": "TEXT"    },    "updates": "",    "user_id": "1234567890"  },  "bot_id": "52708",  "version": "2.0"}(query是用于测试的语句,bot_id是您用于测试的技能ID)

再次点击蓝色的“Send”按钮,发送请求后会收到响应,如果响应中出现了模型解析结果,表明我们成功请求了技能模型。

a16e3fba26a8795383b57863b7170dee.gif

以上,我们成功调用了技能对话API,接着我们利用技能对话API的session_id字段实现多轮对话。

二、使用 技能对话API 实现多轮对话

历史会话信息bot_session会在平台中保留2小时,当前请求中的bot_session.session_id的值与保留中的某个会话相同时,当前会话将继承历史会话的意图和词槽信息以及对话状态,来实现多轮对话。

下面举例说明:要实现以下的多轮对话效果,需要请求2和请求3中session_id的值来源于响应1。

  • 请求1:预订火车票
  • 响应1:你想什么时间出发
  • 请求2:明天早上
  • 响应2:请告诉我您的目的地
  • 请求3:北京西站
  • 响应3:正在为您预订车票
915d1ffb7b79c29e57fda5f087d33bc6.gif

可以使用以下两种方式传入session_id值:

  • 您可以单独上轮响应的session_id值,由于bot_session字段的类型是string,传入K-V结构的数据需要先转化成json字符串,然后需要对该json字符串转义成string类型后传入该字段,例如:"bot_session": "{"session_id":"value"}"
  • 也可以传入上轮响应完整的bot_session值,上轮响应的bot_session值已经是转义好的数据,不需要开发者再次进行转义。

二、使用 机器人对话API 实现多轮对话

1.调用技能对话API:在postman中新建一个页面,设置请求方式为POST,并输入以下请求链接:

https://aip.baidubce.com/rpc/2.0/unit/service/chat?access_token=access_token(access_token的值来源于 任务一 第3步 获取到的值)

接着提供您在unit平台创建好的机器人ID(机器人需要添加已经训练成功的技能),然后在postman中填写如下请求Body:

{    "log_id":"1234567890",    "version":"2.0",    "service_id":"S17842",    "session_id":"",    "request":{        "query":"预订火车票",        "user_id":"1234567890"    },    "dialog_state":{        "contexts":{            "SYS_REMEMBERED_SKILLS":[                ""            ]        }    }}(service_id是您用于测试的机器人,query是用于测试的语句,)

点击蓝色的“Send”按钮,发送请求后会收到响应,如果响应中出现了解析结果,表明我们成功调用机器人API并成功请求了技能模型。

2.实现对轮对话:要实现以下的多轮对话效果,需要请求2和请求3中session_id的值来源于响应1,且dialog_state.contexts["SYS_REMEMBERED_SKILLS"]的值为需要进行多轮对话的技能ID,避免对应技能session被清空,导致无法完成多轮对话。

  • 请求1:预订火车票
  • 响应1:你想什么时间出发
  • 请求2:明天早上
  • 响应2:请告诉我您的目的地
  • 请求3:北京西站
  • 响应3:正在为您预订车票
cd006adc507112cc044911e0d0f83ed4.gif
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值