diff --git a/model/speech.go b/model/speech.go index 1dd2ca0dcf8506e39440266cd89b5b71b709d5b4..0c74f82de0f3286f2e81de254e37dfb6b30a63d9 100644 --- a/model/speech.go +++ b/model/speech.go @@ -1,5 +1,7 @@ package model +import "encoding/json" + type SpeechDomainParams struct { SpeechWsResp *SpeechWsResp Query string @@ -121,3 +123,7 @@ type Result struct { Year int `json:"year"` Event string `json:"event"` } + +type ExtraParams struct { + Content json.RawMessage `json:"content"` +} diff --git a/service/speechNlu/domain.go b/service/speechNlu/domain.go index 58ed9955aaa651fdeb3e441b189a31d9bd70b749..86888375864c132632364eb8a1433b55be223b87 100644 --- a/service/speechNlu/domain.go +++ b/service/speechNlu/domain.go @@ -432,6 +432,24 @@ func alarmDomain(params *model.SpeechDomainParams) []byte { extra := params.SpeechWsResp.Dm.Command.Param.Extra object := params.SpeechWsResp.Dm.Command.Param.Object + var extraParam model.ExtraParams + if err := json.Unmarshal([]byte(extra), &extraParam); err != nil { + global.Logger.WithFields(logger.Fields{ + "requestId": params.RequestId, + "mac": params.Mac, + "mid": params.Mid, + "vender": params.MidType, + }).Errorf("json.Unmarshal error: %v", err) + } + if len(extraParam.Content) > 0 { + var content map[string]interface{} + if err := json.Unmarshal(extraParam.Content, &content); err == nil { + if len(content) == 0 { + return Marshal(params, &result) + } + } + } + if object == "闹钟" { result.Header.Semantic.Domain = "alarm" } else { diff --git a/service/speechNlu/news.go b/service/speechNlu/news.go index 89295fa9ac46cd0462caaea8ac54e9def4ffd21f..54be19876457a0ecabc94d4cc1577ec98dcf5e0d 100644 --- a/service/speechNlu/news.go +++ b/service/speechNlu/news.go @@ -37,14 +37,14 @@ type FeedBackResp struct { Source string `json:"source"` } -func FeedBackNews(actionType, duration int, ip, sid, uid string) (*FeedBackResp, error) { +func FeedBackNews(actionType, duration int, sid, uid string) (*FeedBackResp, error) { url := "http://apis.duiopen.com/feedback/letingv4?productId=279629895&apikey=0c74988953dd4ed4bf31955527802cf3&uid=111" //url := global.SpeechSetting.FeedBackUrl + "?productId=" + global.SpeechSetting.ProductId + "&apikey=" + global.SpeechSetting.ApiKey + "&uid=" + uid request := FeedBackReq{ ActionType: actionType, Timestamp: time.Now().Unix(), - ClientIp: ip, //ip - Brand: "gree", + //ClientIp: ip, //ip + Brand: "gree", Data: []map[string]interface{}{ { "sid": sid, //"m6J2LW-4z-H2dtxea5Sv6_voziweppX1K_aGb7fKtdjq3y36awwXd_NeoKgBXD7a" diff --git a/service/speechNlu/rabbitmq.go b/service/speechNlu/rabbitmq.go index 9b69dc81edb3f0edc2c48c883123e3a1da38bdd3..fc00da05e5ce411c8f8f78414a66cc73770f751e 100644 --- a/service/speechNlu/rabbitmq.go +++ b/service/speechNlu/rabbitmq.go @@ -194,8 +194,8 @@ func (c *Consumer) Consume() { // 处理消息逻辑 state, offset, mediaId := parseData(&resp) uid := util.EncodeMD5(resp.Mac) - ip := "14.215.222.17" //todo:待改 - if _, err := FeedBackNews(state, offset, ip, mediaId, uid); err != nil { + //ip := "14.215.222.17" //todo:待改 + if _, err := FeedBackNews(state, offset, mediaId, uid); err != nil { global.Logger.Errorf("Feedback error: %v", err) _ = d.Nack(false, true) continue diff --git a/service/speechNlu/register.go b/service/speechNlu/register.go index f15153b16177869494ccc8c903ee8696b93ea1fe..5c322cc886e77f8086417943b4aa86c431b025f1 100644 --- a/service/speechNlu/register.go +++ b/service/speechNlu/register.go @@ -51,6 +51,7 @@ func register() { DomainRegister(HOLIDAY, holidayDomain) DomainRegister(RELATION, speechOtherDomain) DomainRegister(WASTESORTING, speechOtherDomain) + DomainRegister("", speechOtherDomain) // //DomainRegisterV2(CHAT, chatDomainV2)