UNIT2.0 调用示例(Python3)
林夕画晴 发布于2018-07 浏览:4570 回复:12
2
收藏

官网给出的调用示例是Python2的代码,Py3直接使用会报错,经过自己的摸索,使用Py3改写成功了,分享给大家(*^▽^*)

官网Python2源代码链接:https://ai.baidu.com/docs#/UNIT-v2-API/top

# -*- coding: utf-8 -*-
import urllib.request as ul_re
import json
url = 'https://aip.baidubce.com/rpc/2.0/unit/bot/chat?access_token=' + 【你的access_token】
post_data  = {
	"bot_session": "",
	"log_id": "7758521",
	"request": {
		"bernard_level": 0,
		"client_session": "{\"client_results\":\"\", \"candidate_options\":[]}",
		"query": "【你的输入语句】",
		"query_info": {
			"asr_candidates": [],
			"source": "KEYBOARD",
			"type": "TEXT"
		},
		"updates": "",
		"user_id": "88888"
	},
	"bot_id": 【你的BOTID】,
	"version": "2.0"
}
encoded_data = json.dumps(post_data).encode('utf-8')
headers = {'Content-Type': 'application/json'}

request = ul_re.Request(url, data=encoded_data, headers=headers)
response = ul_re.urlopen(request)
content = response.read()
result = str(content,'utf-8')
print(result)
收藏
点赞
2
个赞
共12条回复 最后由welcome_to_sky回复于2019-05
#13welcome_to_sky回复于2019-05

你好,请问我运行完总是出现:"error_code":6,"error_msg":"No permission to access data",该如何是好?

 

0
#12sexsexone9回复于2019-04

解决了 bot_id 填对就行了

0
#11sexsexone9回复于2019-04
#9 hero丶Bin回复
我运行了代码返回是这个{"error_msg":"未找到相应的技能","error_code":292001} 我的请求参数里哪个出了问题呀 小白一枚有点头大
展开

你解决了没有???

0
#10sexsexone9回复于2019-04

我运行了代码返回是这个{"error_msg":"未找到相应的技能","error_code":292001}

我的请求参数里哪个出了问题呀 小白一枚有点头大

我也是出现这个,把所有技能相关的字段删除了,还是这个。都是用默认的都不行

0
#9hero丶Bin回复于2019-02

我运行了代码返回是这个{"error_msg":"未找到相应的技能","error_code":292001}

我的请求参数里哪个出了问题呀 小白一枚有点头大

0
#8186******79回复于2019-01

构建一个机器人,怎么处理并发问题

0
#7ws1993109回复于2018-12

非常感谢

0
#6love卵疼回复于2018-11

可以使用引导意图,还有返回json中,type 如果是clarify之类的 才能正确确定是多轮对话。在返回剩余类型时,本地存储的SessionID置空。

0
#5伊茨米可回复于2018-10
#4 飞旋乒乓小童鞋回复
多轮对话的,我也有这个烦恼: 第一轮对话,说完后,会产生session_id,这个session_id再丢给第二轮对话里的bot_session,因为第一轮用户给出的问题,是不固定的,也就是说,产生出来的session_id是不固定的,这样的话,如果第二轮调用这个session_id的话,就会出问题。 我以为,第一轮过后,session_id是个固定值,后来打印出来后,才知道不是固定的,我用第一轮产生的session_id传给第二轮后,对答出现了问题,第二轮对话,unit给出的回答,没有实现多轮。 期待懂的小伙伴们能够讲一下。  
展开

session id是系统定义的,与用户对话内容无关。没有实现多轮的具体表现是?

 

0
#4飞旋乒乓小童鞋回复于2018-10
#3 love卵疼回复
你好,有没有多轮对话的demo ,返回的json还是太恶心了

多轮对话的,我也有这个烦恼:

第一轮对话,说完后,会产生session_id,这个session_id再丢给第二轮对话里的bot_session,因为第一轮用户给出的问题,是不固定的,也就是说,产生出来的session_id是不固定的,这样的话,如果第二轮调用这个session_id的话,就会出问题。
我以为,第一轮过后,session_id是个固定值,后来打印出来后,才知道不是固定的,我用第一轮产生的session_id传给第二轮后,对答出现了问题,第二轮对话,unit给出的回答,没有实现多轮。
期待懂的小伙伴们能够讲一下。

 

0
#3love卵疼回复于2018-10

你好,有没有多轮对话的demo ,返回的json还是太恶心了

0
#2伊茨米可回复于2018-07

感谢感谢~

官网的文档也会尽快更新

0
TOP
切换版块