Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
speech_nlu_parse
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Package Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵文静
speech_nlu_parse
Commits
567cbc93
Commit
567cbc93
authored
Sep 02, 2025
by
赵文静
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
屏蔽闹钟
parent
22207490
Pipeline
#5840
passed with stage
in 0 seconds
Changes
4
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
13 additions
and
292 deletions
+13
-292
CHANGELOG.md
CHANGELOG.md
+4
-0
c2c.http
c2c.http
+8
-7
service/service.go
service/service.go
+0
-284
service/speechNlu/register.go
service/speechNlu/register.go
+1
-1
No files found.
CHANGELOG.md
View file @
567cbc93
# 更新日志
# 更新日志
## [3.4.4-beta.2] - 2025.9.2
### Changed
-
屏蔽闹钟
## [3.4.4-beta] - 2025.8.5
## [3.4.4-beta] - 2025.8.5
### Changed
### Changed
-
修改音量调节,增加判断仅只有符号的情况
-
修改音量调节,增加判断仅只有符号的情况
...
...
c2c.http
View file @
567cbc93
POST https://testnlu.gree.com/semantic/unisoundc2c/child/querys
POST https://testnlu.gree.com/semantic/unisoundc2c/child/querys
#POST http://localhost:19992/semantic/unisoundc2c/child/querys/v2
#POST http://localhost:19992/semantic/unisoundc2c/child/querys/v2
Content-Type: application/json
Content-Type: application/json
User-Agent: a
{
{
...
@@ -11,7 +12,7 @@ Content-Type: application/json
...
@@ -11,7 +12,7 @@ Content-Type: application/json
},
},
"nluRet": {
"nluRet": {
"asr_recongize": "",
"asr_recongize": "",
"text": "
盐的营养成分
"
"text": "
播放古诗
"
}
}
},
},
"version": "v0"
"version": "v0"
...
@@ -26,7 +27,7 @@ X-AppKey: 391b50b5ed634fc49a3db7cfd6bc40db
...
@@ -26,7 +27,7 @@ X-AppKey: 391b50b5ed634fc49a3db7cfd6bc40db
"ip": "14.215.222.17",
"ip": "14.215.222.17",
"mac": "ece154a865eb",
"mac": "ece154a865eb",
"mid": "11011",
"mid": "11011",
"query":"
声音调得小一点
" ,
"query":"
播放宝宝睡觉的歌
" ,
"requestId": "123456111"
"requestId": "123456111"
}
}
###
###
...
@@ -40,13 +41,13 @@ X-AppKey: 391b50b5ed634fc49a3db7cfd6bc40db
...
@@ -40,13 +41,13 @@ X-AppKey: 391b50b5ed634fc49a3db7cfd6bc40db
"ip": "14.215.222.17",
"ip": "14.215.222.17",
"mac": "ece154a865eb",
"mac": "ece154a865eb",
"mid": "10f05",
"mid": "10f05",
"query":"声音
升高10
",
"query":"声音
调得小一点
",
"requestId": "123456111"
"requestId": "123456111"
}
}
###
###
POST https://nlu.gree.com/semantic/unisoundc2c/querys
#
POST https://nlu.gree.com/semantic/unisoundc2c/querys
#
POST https://testnlu.gree.com/semantic/unisoundc2c/querys
POST https://testnlu.gree.com/semantic/unisoundc2c/querys
#POST http://172.28.124.216:9999/semantic/unisoundc2c/querys
#POST http://172.28.124.216:9999/semantic/unisoundc2c/querys
#POST http://172.28.5.39:9999/semantic/unisoundc2c/querys
#POST http://172.28.5.39:9999/semantic/unisoundc2c/querys
Content-Type: application/json
Content-Type: application/json
...
@@ -57,11 +58,11 @@ Content-Type: application/json
...
@@ -57,11 +58,11 @@ Content-Type: application/json
"appKey": "ilcsnav5otwalqnkzliyfh5tbrbjkjomtjgiojih",
"appKey": "ilcsnav5otwalqnkzliyfh5tbrbjkjomtjgiojih",
"imei": "hb-0242DFEC61F4",
"imei": "hb-0242DFEC61F4",
"remoteIP": "47.103.18.223",
"remoteIP": "47.103.18.223",
"requestId": "
123456111
",
"requestId": "
qqqqq121111234
",
"trafficParameter": "mode=childxxx;macWifi=28b77c218ed1;mid=10f05;vender=7e000025;macVoice=testyuntiancloud;ver=3.0;scenario=smarthome;filterName=nlu;req_nlu_length=1;returnType=json;fullDuplex=true;appendLength=1;additionalService=geli_nlu2;version=0.5;filterUrl=https://testnlu.gree.com:443/semantic/unisoundc2c/querys;"
"trafficParameter": "mode=childxxx;macWifi=28b77c218ed1;mid=10f05;vender=7e000025;macVoice=testyuntiancloud;ver=3.0;scenario=smarthome;filterName=nlu;req_nlu_length=1;returnType=json;fullDuplex=true;appendLength=1;additionalService=geli_nlu2;version=0.5;filterUrl=https://testnlu.gree.com:443/semantic/unisoundc2c/querys;"
},
},
"nluRet": {
"nluRet": {
"text": "
珠海天气
"
"text": "
白雪公主
"
},
},
"postProc": {}
"postProc": {}
}
}
...
...
service/service.go
View file @
567cbc93
...
@@ -22,290 +22,6 @@ import (
...
@@ -22,290 +22,6 @@ import (
type
TencentNlu
struct
{}
type
TencentNlu
struct
{}
//func (this TencentNlu) TencentNluParse(ctx context.Context, r *proto.SemanticRequest) (*proto.SemanticResponse, error) {
// requestBody, _ := json.Marshal(r)
// global.Logger.WithFields(logger.Fields{"data": map[string]interface{}{"requestBody": string(requestBody), "query": r.GetQuery()}, "mac": r.GetMacWifi(), "mid": r.GetMid(), "vender": r.GetVender(), "requestId": r.RequestId}).Info("tencent-nlu-parse-grpc request")
// semanticReq := TencentNluParseSemanticRequest2ModelSemanticReq(r)
//
// jsonStr, code := tencentNlu.TencentNlu(semanticReq)
// responseText := gjson.Get(jsonStr, "response_text").String()
// response := &proto.SemanticResponse{Status: &proto.Status{Code: code.Code(), Msg: code.Msg()}, Data: &proto.SemanticData{SemanticRespJsonData: jsonStr}}
// responseBody, _ := json.Marshal(response)
// defer global.Logger.WithFields(logger.Fields{"data": map[string]interface{}{"responseBody": string(responseBody), "query": r.GetQuery(), "responseText": responseText}, "mac": r.GetMacWifi(), "mid": r.GetMid(), "vender": r.GetVender(), "requestId": r.RequestId}).Info("tencent-nlu-parse-grpc response")
// return response, nil
//}
//
//func (TencentNlu) TencentNluParseStream(stream proto.TencentNlu_TencentNluParseStreamServer) error {
// ctx := stream.Context()
// md, ok := metadata.FromIncomingContext(stream.Context())
// if !ok {
// global.Logger.Errorf("获取metadata失败:%v", md)
// return nil
// }
// tMetaData, err := GetSemanticReq(md)
// if err != nil {
// global.Logger.Errorf("获取metadata失败:%v", md)
// return err
// }
// if tMetaData == nil {
// global.Logger.Errorf("获取metadata失败:%v", md)
// return nil
// }
// sessionId := tMetaData.SessionId
// vender := tMetaData.Vender
// var appKey, accessToken, auth, dsn, qua, requestId, mid, mac, midType, homeId string
// qua = "QV=3&PL=ADR&PR=chvoice&VE=7.6&VN=3350&PP=com.geli.mtt&DE=SPEAKER&SP=3"
// requestId = tMetaData.RequestId
// mid = tMetaData.Mid
// mac = tMetaData.MacWifi
// midType = tMetaData.Vender
// homeId = tMetaData.HomeId
// // 查询key和secret
// dingDangBot, ok := global.DingDangBot.Get(tMetaData.Mid, tMetaData.Vender)
// if ok {
// appKey = dingDangBot.Key
// accessToken = dingDangBot.Secret
// }
//
// if tMetaData.Exist {
// appKey = tMetaData.Appkey
// accessToken = tMetaData.AccessToken
// auth = tMetaData.Auth
// dsn = tMetaData.Dsn
// qua = tMetaData.Qua
// } else {
// // 没有携带鉴权信息, 查dmsdk
// var tokenSearchResponse *model.TokenSearchResponse
// tokenSearchResponse, err = tencentNlu.GetAuthorizationByGRPC(tMetaData.MacWifi, tMetaData.RequestId, mid, tMetaData.Vender)
// if err != nil {
// global.Logger.WithFields(logger.Fields{
// "data": map[string]interface{}{"data.MacWifi": tMetaData.MacWifi},
// "requestId": tMetaData.RequestId,
// "mac": mac,
// "mid": mid,
// "vender": vender,
// "sessionId": sessionId,
// }).Error("GetTencentNLUData: GetAuthorizationByGRPC error." + err.Error())
// } else {
// if tokenSearchResponse.Status.Code == 200 {
// // 200: 成功; 405: 设备未激活
// if tokenSearchResponse.Data.Status != 0 { // 未分配 的情况下无AppKey AccessToken
// if tokenSearchResponse.Data.AppKey != "" && tokenSearchResponse.Data.AccessToken != "" {
// appKey = tokenSearchResponse.Data.AppKey
// accessToken = tokenSearchResponse.Data.AccessToken
// }
// }
// if tokenSearchResponse.Data.Status == 2 { // 已授权,使用中
// auth = tokenSearchResponse.Data.Authorization
// dsn = tokenSearchResponse.Data.Dsn
// }
// if tokenSearchResponse.Data.HomeId != "" {
// homeId = tokenSearchResponse.Data.HomeId
// }
// } else if tokenSearchResponse.Status.Code == 405 { // 未分配
// //
// } else { // 错误码
// global.Logger.WithFields(logger.Fields{
// "data": map[string]interface{}{"tokenSearchResponse": tokenSearchResponse},
// "requestId": tMetaData.RequestId,
// "mac": mac,
// "mid": mid,
// "vender": vender,
// "sessionId": sessionId,
// }).Error("GetTencentNLUData: GetAuthorizationByGRPC error." + tokenSearchResponse.Status.Msg)
// }
// }
// }
//
// // 特殊处理, tencentllmtest001 将使用特殊的bot, 重新配网后会失效
// // if mac == "tencentllmtest001" {
// // auth = "BACKEND-ENCRYPT:1000,MTAsMTAxNjk4MjcxNTIwNTAyOTg4OCw0MUNFM0QyMjRGNTcyMjg3NTA0NjcxRkEyMEI3ODc5NFlYV1YwLGFfYzg2ODI3M2ZlNjgwMGJhNTcwMzFlMGZjZDE4MjEzZjA4Mjg0ZTM0MixhNTllOTRiMDUyYWMxMWVlYWZmYWUzMTUwYzg5NDViMjphNTQ0ZDliOTY1OGE0NTkxODM0Y2Y5YzExMmRkYWY2MSx0ZXN0N2QzNTMyNmY4N2JjNDE2MTg1MmQ2Mzk2ZjFhMGVhMDQsNDFDRTNEMjI0RjU3MjI4NzUwNDY3MUZBMjBCNzg3OTRZWFdWMA=="
// // dsn = "test7d35326f87bc4161852d6396f1a0ea04"
// // appKey = "a544d9b9658a4591834cf9c112ddaf61"
// // accessToken = "a59e94b052ac11eeaffae3150c8945b2"
// // }
//
// tencentNluWs := tencentNlu.TencentNlpWs{
// AppKey: appKey,
// AccessToken: accessToken,
// Auth: auth,
// Dsn: dsn,
// Qua: qua,
// HomeId: homeId,
// }
// var nlpWsConn *websocket.Conn
// nlpWsConn, err = tencentNluWs.GetTencentDialogHandler(appKey, accessToken, tMetaData.TRequestId, tMetaData.Ip, auth, dsn)
// if err != nil {
// global.Logger.Errorf("TencentNluParseStream GetTencentDialogHandler error. %v", err)
// return err
// }
// tencentNluWs.NlpWsConn = nlpWsConn
// defer nlpWsConn.Close()
//
// cancelCtx, cancel := context.WithCancel(context.Background())
//
// // 监听腾讯
// go func() {
// defer func() {
// if err := recover(); err != nil {
// global.Logger.WithFields(logger.Fields{
// "requestId": requestId,
// "mac": mac,
// "mid": mid,
// "vender": vender,
// "sessionId": sessionId,
// }).Errorf("err:%v", err)
// nlpWsConn.Close()
// cancel()
// return
// }
// }()
// for {
// select {
// case <-cancelCtx.Done():
// nlpWsConn.Close()
// return
// default:
// data, err := tencentNluWs.Recv()
// if err != nil {
// if websocket.IsCloseError(err, websocket.CloseAbnormalClosure) || errors.Is(err, net.ErrClosed) {
// // 服务端关闭及客户端关闭的错误捕获
// global.Logger.WithFields(logger.Fields{
// "requestId": requestId,
// "mac": mac,
// "mid": mid,
// "vender": vender,
// "sessionId": sessionId,
// }).Info("TencentNluParseStream websocket closed.")
// } else {
// global.Logger.WithFields(logger.Fields{
// "requestId": requestId,
// "mac": mac,
// "mid": mid,
// "vender": vender,
// "sessionId": sessionId,
// }).Errorf("TencentNluParseStream tencentNluWs.Recv error. %v", err)
// }
// nlpWsConn.Close()
// cancel()
// return
// }
// global.Logger.WithFields(logger.Fields{
// "data": map[string]interface{}{"tencentNluParseStreamBody": string(data)},
// "requestId": requestId,
// "mac": mac,
// "mid": mid,
// "vender": vender,
// "sessionId": sessionId,
// }).Info("TencentNluParseStream tencentNluWs.Recv.")
// // 解析
// // tencentNluWs := tencentNlu.TencentNlpWs{}
// res := tencentNluWs.ParseTNluData(data, mid, midType, requestId, sessionId, mac)
// if len(res) == 0 {
// // res 为空, 表示不需要返回
// continue
// }
//
// code := errCode.Success
// resp := &proto.SemanticResponse{Status: &proto.Status{Code: code.Code(), Msg: code.Msg()}, Data: &proto.SemanticData{SemanticRespJsonData: string(res)}}
// stream.Send(resp)
// responseText := gjson.GetBytes(res, "response_text").String()
// responseBody, _ := json.Marshal(resp)
// global.Logger.WithFields(logger.Fields{
// "data": map[string]interface{}{
// "tencentNluParseStreamBody": string(responseBody),
// "responseText": responseText,
// },
// "requestId": requestId,
// "mac": mac,
// "mid": mid,
// "vender": vender,
// "sessionId": sessionId,
// }).Info("TencentNluParseStream stream.Send.")
// responseType := gjson.GetBytes(res, "header.semantic.ResponseType").String()
// if responseType == "semantic.close" {
// nlpWsConn.Close()
// cancel()
// return
// }
// }
// }
// }()
//
// // 不主动关闭连接
// for {
// data, err := stream.Recv()
// if err != nil {
// if errors.Is(ctx.Err(), context.Canceled) {
// // 客户端取消
// global.Logger.WithFields(logger.Fields{
// "requestId": requestId,
// "mac": mac,
// "mid": mid,
// "vender": vender,
// "sessionId": sessionId,
// }).Info("TencentNluParseStream stream is canceled.")
// cancel()
// return nil
// }
//
// if err == io.EOF {
// global.Logger.WithFields(logger.Fields{
// "requestId": requestId,
// "mac": mac,
// "mid": mid,
// "vender": vender,
// "sessionId": sessionId,
// }).Info("TencentNluParseStream stream closed.")
// // 客户端关闭
// } else {
// global.Logger.WithFields(logger.Fields{
// "requestId": requestId,
// "mac": mac,
// "mid": mid,
// "vender": vender,
// "sessionId": sessionId,
// }).Errorf("TencentNluParseStream stream.Recv error. %v", err)
// }
// cancel()
// return nil
// }
// requestBody, _ := json.Marshal(data)
// global.Logger.WithFields(logger.Fields{
// "data": map[string]interface{}{
// "tencentNluParseStreamBody": string(requestBody),
// "query": data.Query,
// },
// "requestId": requestId,
// "mac": mac,
// "mid": mid,
// "vender": vender,
// "sessionId": sessionId,
// }).Info("TencentNluParseStream stream.Recv.")
// select {
// case <-cancelCtx.Done():
// // 腾讯 ws 关闭了
// return nil
// default:
// selfSemanticReq := TencentNluParseSemanticRequest2ModelSemanticReq(data)
// req := tencentNlu.TansTencentNlpWsReq(appKey, dsn, qua, auth, selfSemanticReq)
// tencentNluWs.Send(req)
// tRequestBody, _ := json.Marshal(data)
// global.Logger.WithFields(logger.Fields{
// "data": map[string]interface{}{
// "tencentNluParseStreamBody": string(tRequestBody),
// "query": data.Query,
// },
// "requestId": requestId,
// "mac": mac,
// "mid": mid,
// "vender": vender,
// "sessionId": sessionId,
// }).Info("TencentNluParseStream tencentNluWs.Send.")
// }
// }
//}
func
TencentNluParseSemanticRequest2ModelSemanticReq
(
tencentNluParseSemanticRequest
*
proto
.
SemanticRequest
)
*
model
.
SemanticReq
{
func
TencentNluParseSemanticRequest2ModelSemanticReq
(
tencentNluParseSemanticRequest
*
proto
.
SemanticRequest
)
*
model
.
SemanticReq
{
if
tencentNluParseSemanticRequest
==
nil
{
if
tencentNluParseSemanticRequest
==
nil
{
return
nil
return
nil
...
...
service/speechNlu/register.go
View file @
567cbc93
...
@@ -34,7 +34,7 @@ func register() {
...
@@ -34,7 +34,7 @@ func register() {
//DomainRegister(STOCK, stockDomain)
//DomainRegister(STOCK, stockDomain)
DomainRegister
(
TRANSLATE
,
translateDomain
)
DomainRegister
(
TRANSLATE
,
translateDomain
)
DomainRegister
(
ALARM
,
alarmDomain
)
//
DomainRegister(ALARM, alarmDomain)
DomainRegister
(
SCIENCE
,
scienceDomain
)
DomainRegister
(
SCIENCE
,
scienceDomain
)
DomainRegister
(
CHENGYU
,
chengyuDomain
)
DomainRegister
(
CHENGYU
,
chengyuDomain
)
DomainRegister
(
BAIKE
,
baikeDomain
)
DomainRegister
(
BAIKE
,
baikeDomain
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment