package tencentNlu import ( "encoding/json" "speech-nlu-parse/model" ) var ( reply_when_tencent_empty = "我还不够聪明,没有找到你想要的内容" reply_when_geography_empty = "抱歉,没找到你想要的" alarm_remind_raw = "到提醒时间了" reply_when_recourse_limited = "很抱歉,暂时还没有相关资源" shielded_reply = "抱歉,暂不支持该功能,我还在努力学习中" error_reply = "抱歉,没找到你想要的" // 错误兜底回复 frequency_request_reply = "抱歉,没找到你想要的" // TODO: 请求过于频繁的回复话术 expired_reply = "QQ音乐账号绑定已过期,请前往格力+手机应用重新绑定。" // 授权过期回复语 not_using_reply = "您的设备尚未绑定QQ音乐账号,请前往格力+手机应用绑定激活。" // 未授权回复语 ) // 兜底话术 var replyMessage = []string{"你的问题太难了,我没法回答", "人类的语言真是太复杂了,我听不懂", "这个要求有点高,我现在还不会。", "很抱歉,没有找到你想要的内容", "抱歉,暂不支持该功能,我还在努力学习中", "抱歉,我还不够聪明,没有找到你想要的内容"} var musicReplyMessage = []string{ "好的", "注意听", "马上为您播放", "请欣赏", } var weatherReplyMessage = []string{ "出门记得带伞哦", "记得带伞", "别忘记带伞", } var recipeReply = []string{"菜品具体的做法推荐您去网上查看哦", "很难只通过只言片语就将一道好菜描述清楚哦,推荐您去网上查看对应菜谱", "具体的做法建议您去相关的菜谱网站上查看哦", "这道菜的做法难以通过三言两语描述清楚,您最好去相关的菜谱网站查看哦"} // 讲格力NLU返回的播报话术拼接腾讯的chat格式返回 func getGreeNluChatReply(responseText, domain, query string) []byte { replyData := `{ "header": { "semantic": { "code": 0, "domain": "` + chatDomainStr + `", "intent": "` + "chat" + `", "msg": "gree_mix_tencent", "session_complete": true, "skill_id": "` + domain + `" } }, "response_text": "` + responseText + `", "asr_recongize": "` + query + `" }` //updated25 return []byte(replyData) } // 未知技能用chat格式兜底 func replyWithChat(response_text, domain string) []byte { jsonStr := `{"header":{"semantic":{"code":0,"domain":"` + chatDomainStr + `","intent":"chat","msg":"","session_complete":true,"skill_id":"` + domain + `"}},"response_text":"` + response_text + `"}` return []byte(jsonStr) } func replyWithChatV2(response_text, domain, intent string) []byte { jsonStr := `{"header":{"semantic":{"code":0,"domain":"` + domain + `","intent":"` + intent + `","msg":"","session_complete":true,"skill_id":"` + domain + `"}},"response_text":"` + response_text + `"}` return []byte(jsonStr) } func replyWithHeader(heraderRaw string, responseText string) []byte { jsonStr := `{"header":` + heraderRaw + `,"response_text":"` + responseText + `"}` return []byte(jsonStr) } func reply(response_text, domain, intent string) []byte { jsonStr := `{ "header": { "semantic": { "code": 0, "domain": "` + domain + `", "intent": "` + intent + `", "msg": "", "session_complete": true, "skill_id": "` + domain + `" } }, "response_text": "` + response_text + `" }` return []byte(jsonStr) } // 测试音频 func getTencentSongReply(url, content, query string) []byte { songJsonStr := `{"header":{"semantic":{"code":0,"domain":"fm","intent":"play","msg":"","session_complete":true,"skill_id":"990835382587363328"}},"response_text":"` + content + `","asr_recongize":"` + query + `","listItems":[{"url":"` + url + `","singer":"测试音频","song":"测试音频"}]}` return []byte(songJsonStr) } // 腾讯协议转格力协议reply func transformGreeProtocolReply(query, service, action string, params *map[string]interface{}) []byte { // "time": { "orgin": "2021-04-14 00:00:00", "norm": "2021-04-14 00:00:00", "code": 0 } greeNluProtocol := model.GreeNluProtocol{} semantic := make(map[string]interface{}) semantic["service"] = service semantic["action"] = action if params != nil { semantic["params"] = params } semantic["outputContext"] = model.OutputContextStr{Service: "TENCENT-NLU"} greeNluProtocol.Semantic = &semantic greeNluProtocol.Query = query resultData := make(map[string]interface{}) greeNluProtocol.Result.ResultData = &resultData jsonStr, _ := json.Marshal(greeNluProtocol) return jsonStr }