欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot項目接入天貓精靈語音功能

 更新時間:2021年12月06日 09:34:45   作者:劉瑜澄  
小編最近接手一個項目,涉及到天貓精靈的語音功能,今天小編通過本文給大家分享下springboot項目接入天貓精靈語音功能的詳細過程及實例代碼,感興趣的朋友跟隨小編一起看看吧

最近工作需要使用到天貓精靈的語音功能,大體是通過呼叫對應的“調(diào)用詞”實現(xiàn)攜帶參數(shù),然后調(diào)用我項目中的接口,以實現(xiàn)對應的業(yè)務。所以在此簡單的記錄下使用過程 實際上:天貓精靈的官方文檔記錄的也很詳細

重點參見自定義接入

1、創(chuàng)建語音技能

去創(chuàng)建

創(chuàng)建一個意圖

先簡單填入一個單輪對話,此時我設(shè)置了默認意圖。所以我對天貓精靈說

天貓精靈 熱水用完了 (調(diào)用詞) 或 天貓精靈 熱水用完了 吃了沒 (調(diào)用詞+單輪對話)

都調(diào)用的是這個意圖

創(chuàng)建實體,對于實體的創(chuàng)建,只有你在如下情況需要用到

天貓精靈 熱水用完了 {今天}的天氣 (調(diào)用詞)+ 單輪對話<包含數(shù)據(jù)> 天貓精靈 熱水用完了 放一首{周杰倫}的歌曲 天貓精靈 熱水用完了 我要去{19R}樓

像如上這些情況,考慮到{}中的數(shù)據(jù)是要作為參數(shù)傳遞給后端服務來進行操作的。所以需要創(chuàng)建對應實體。實體的作用就是為了在{}插槽的位置將你口述語音識別的內(nèi)容轉(zhuǎn)化為符合實體中設(shè)定的值的內(nèi)容。

當然你也可以引用公共的實體(長度,任意數(shù)等),這里的@floor寫的時候不需要加@,這個標識可以作為后面單論對話的插值,如我要去@{floor}樓

這里也創(chuàng)建一個帶參的意圖,創(chuàng)建單論對話的時候要選擇“模板”

部署后端服務,可以為意圖單獨綁定服務,這里測試方便就綁定同一服務。這里的服務部署地址就是你為這個意圖寫的controller的路徑,當然得是公網(wǎng)上的。我們先下載認證文件,將認證文件放到我們的springboot項目下,表示這個技能可與這個web service配對 文檔指向3

這里除了放在路徑下,也可以直接寫一個controller,如下。如果后面認證失敗,可以試試

@PostMapping("/aligenie/6523cc2653ef3a0fed8證書.txt")
public String authentication(){
    return "Jfc4Z4Ur15JwUBuvUQD5wg7Nu8+l+HscqYlfofbyJdZPKKvjJdxxxxxxxBH+L5";//證書內(nèi)容
}

2、一個SpringBoot項目

導入官方提供的依賴 文檔指向1

<dependency>
    <groupId>com.alibaba.da.coin</groupId>
    <artifactId>semantic-execute-meta</artifactId>
    <version>1.1.18-REALEASE</version>
</dependency>

便于操作,我就直接再控制層中寫代碼 , 大家可以直接去 文檔指向2查看官方提供的簡單示例和呼叫天貓精靈時產(chǎn)生的請求頭和請求正文。參照請求正文的格式,我們可以從傳遞過來的taskQuery取得正文中的任何數(shù)據(jù)

@RestController
@RequestMapping("/genie")
@Slf4j
public class GenieController {

    @PostMapping("/getGenieMsg")
    public ResultModel<TaskResult> bindingBuilding(@RequestBody String taskQuery) {
        log.info("天貓精靈測試 : leading:" + taskQuery);
        
        TaskQuery query = MetaFormat.parseToQuery(taskQuery);
        
        Map<String, String> requestData = query.getRequestData();
        log.info("requestData:" + requestData.toString());
        
        List<SlotEntity> slotEntities = query.getSlotEntities();
        if (slotEntities.size() > 0) {
        	log.info("slotEntities:" + slotEntities.get(0).getStandardValue());
    	}
		
		//返回數(shù)據(jù)
        ResultModel<TaskResult> resultModel = new ResultModel<TaskResult>();
        TaskResult result = new TaskResult();
        resultModel.setReturnCode("0");
        result.setReply("測試成功");
        result.setExecuteCode(ExecuteCode.SUCCESS);
        result.setResultType(ResultType.RESULT);
        resultModel.setReturnValue(result);
        return resultModel;
    }
}

然后將服務跑起來,采用花生殼的內(nèi)網(wǎng)穿透將服務部署到公網(wǎng)上,這么用來測試很方便。不會可以參見這篇文章

3、后端部署

繼續(xù)回到天貓精靈的控制臺,將公網(wǎng)服務器地址加上Controller路徑填上去,點擊保存的時候他會判斷你的web service有沒有認證文件,如果點擊報錯報錯,可以檢查一下 檢查指向1

關(guān)于服務器SSL證書可參見 文檔指向4

4、測試

后端返回數(shù)據(jù)
2021-12-04 21:13:06.796  INFO 5388 --- [nio-8091-exec-2] c.a.s.demo.controller.GenieController    : 
天貓精靈測試 : leading:{
				"sessionId":"79c799a7-d4ee-495e-b472-0effa1c23fa3",
				"utterance":"熱水用完了",
				"requestData"{}, //非真機,沒有數(shù)據(jù)
				"botId":114376,
				"domainId":63502,
				"skillId":84340,
				"skillName":"TIAMTEst",
				"intentId":123759,
				"intentName":"天貓精靈測試",
				"slotEntities":[], //沒有傳參
				"requestId":"20211204211305435-225488739",
				"device":{},
				"skillSession":{
					"skillSessionId":"ae3fa617-ecf7-4c90-a2ac-8ba05038a24e",
					"newSession":true
				},
				"context":{
					"system":{
						"apiAccessToken":""
					}
				}
			}
2021-12-04 21:13:06.796  INFO 5388 --- [nio-8091-exec-2] c.a.s.demo.controller.GenieController    : 
requestData:{}

2021-12-04 21:29:51.463  INFO 5388 --- [nio-8091-exec-7] c.a.s.demo.controller.GenieController    : 
天貓精靈測試 : leading:{
				"sessionId":"206b0ee1-c4bf-4834-9caa-571960f2a9fc",
				"utterance":"熱水用完了上K2樓",
				"requestData":{},
				"botId":114376,
				"domainId":63502,
				"skillId":84340,
				"skillName":"TIAMTEst",
				"intentId":123760,
				"intentName":"傳參測試",
				"slotEntities":[
						{"intentParameterId":95268,
						"intentParameterName":"floor1",
						"originalValue":"K2",
						"standardValue":"k2",
						"liveTime":0,
						"createTimeStamp":1638624590055,
						"slotName":"floor1:floor",
						"slotValue":"k2"
						}],
				"requestId":"20211204212949987-504243894",
				device":{},
				"skillSession":{
					"skillSessionId":"1e66de8b-3c89-43c4-8af2-0536edda3f83",
					"newSession":false},
				"context":{"system":{"apiAccessToken":""}}}
2021-12-04 21:29:51.464  INFO 5388 --- [nio-8091-exec-7] c.a.s.demo.controller.GenieController    : 
requestData:{}
2021-12-04 21:29:51.464  INFO 5388 --- [nio-8091-exec-7] c.a.s.demo.controller.GenieController    : 
slotEntities:k2

然后就可以通過傳遞過來的設(shè)備號,參數(shù)等信息進行業(yè)務邏輯代碼的編寫

到此這篇關(guān)于springboot項目接入天貓精靈的文章就介紹到這了,更多相關(guān)springboot天貓精靈內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在IDEA中集成maven詳細流程圖示例

    在IDEA中集成maven詳細流程圖示例

    最近利用兩天時間學習了MyBatis以及maven,避免經(jīng)典的學過就忘記,我打算做出點總結(jié)以便日后復習,當然如果能幫到需要的人也是極好的,需要的朋友可以參考下
    2021-06-06
  • 詳解Quartz 與 Spring框架集成的三種方式

    詳解Quartz 與 Spring框架集成的三種方式

    這篇文章主要介紹了詳解Quartz 與 Spring框架集成的三種方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • springboot+Oauth2實現(xiàn)自定義AuthenticationManager和認證path

    springboot+Oauth2實現(xiàn)自定義AuthenticationManager和認證path

    本篇文章主要介紹了springboot+Oauth2實現(xiàn)自定義AuthenticationManager和認證path,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • jmeter添加自定義擴展函數(shù)之圖片base64編碼示例詳解

    jmeter添加自定義擴展函數(shù)之圖片base64編碼示例詳解

    這篇文章主要介紹了jmeter添加自定義擴展函數(shù)之圖片base64編碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • Spring Boot 集成Shiro的多realm配置過程

    Spring Boot 集成Shiro的多realm配置過程

    這篇文章主要介紹了Spring Boot 集成Shiro的多realm配置,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • SpringBoot集成Redis并實現(xiàn)主從架構(gòu)的實踐

    SpringBoot集成Redis并實現(xiàn)主從架構(gòu)的實踐

    本文主要和大家分享一下在springboot中如何集成redis,并實現(xiàn)主從架構(gòu),進行數(shù)據(jù)的簡單存儲,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • java:try...catch跳過異常繼續(xù)處理循環(huán)問題

    java:try...catch跳過異常繼續(xù)處理循環(huán)問題

    這篇文章主要介紹了java:try...catch跳過異常繼續(xù)處理循環(huán)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • spring boot 枚舉使用的坑整理

    spring boot 枚舉使用的坑整理

    在本篇文章里我們給大家整理了關(guān)于spring boot 枚舉使用的坑以及相關(guān)知識點內(nèi)容,需要的朋友們學習下。
    2019-08-08
  • Hibernate緩存詳解

    Hibernate緩存詳解

    本文主要介紹了Hibernate緩存的相關(guān)知識。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • Java8中Stream流求最大值最小值的實現(xiàn)示例

    Java8中Stream流求最大值最小值的實現(xiàn)示例

    本文主要介紹了Java8中Stream流求最大值最小值的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04

最新評論