### 控制服务 * 项目:tencent-nlu-parse * 语言:Go * 框架:gRPC * 版本号:v1.1.44 * 版本控制:git-gitlab * 用途:腾讯NLU协议转换服务 * 端口号:由运维同学进入consul中对应的自定义yaml文件中修改配置,自行定义 * 数据库: mysql:39服务器上的alarm_remind,test_content_url,mid_appkey表 * 更新日期: 2021.5.25 * author: 李立辉 * 更新内容: 1. 改为gRPC服务 --- #### 使用 * 请求 字段|类型|说明|默认值 :---:|:---:|:---:|:---: macWifi|string|macWifi|无,必填 macVioce|string|macVoice|无,必填 query|string|query|无,必填 ip|string|ip|无,必填 testID|string|testID|无,必填 originQuery|string|originQuery|无,必填 mid|string|设备的mid, 用于获取botKey和botSecret.|无,必填 requestId|string|每次请求均不同且唯一,参考uuid. 为设备的请求服务时生成的requestId/uuid.|无,必填 lbs|-|经纬度信息|无,非必选 lbs.longitude|double(go对应float64)|经度|无,必选 lbs.latitude|double(go对应float64)|纬度|无,必选 * 响应 字段|类型|说明|默认值 :---:|:---:|:---:|:---: status|object|响应状态|无,必选 status.code|int|0成功,非0失败|无,必选 status.msg|string|错误信息|无,必选 data|object|返回数据|无,必选 data.semanticRespJsonData|string|解析后腾讯nlu的json字符串|无,必选 * 启动服务 ./test [-port=xxx] [-config=xxx] [-help] [-consul=xxx] [-token=xxx] [-debug=xxx] 说明: 1. -port int:启动端口,默认值在conf/config.yaml文件中设置; 2. -config string:配置文件位置,默认是consul中的env/v1.yaml文件,支持多个配置文件,使用“,”分隔。 3. -help: help 4. -consul string: consul地址, (default "http://172.28.5.39:8500") 5. -token string: consul token, (default "092288b5-824f-854c-39aa-a958afd9a633") 6. -debug bool: debug模式运行 注意:若需读取该服务自定义consul配置,需在config参数中填写包括env/v1.yaml文件和自定义文件! * 查看服务信息 ./test -version * 服务接入 1. 将[proto文件](/pkg/proto/service.proto)的协议内容复制到所需接入的项目中的proto文件中进行编译, 一般放置在`Project/pkg`目录下. 执行以下指令进行编译`protoc -I=./ --go_out=plugins=grpc:. ./pkg/proto/service.proto` 2. client接入示例代码 ```golang func TencentNluParseExample(macWifi, macVoice, query, ip, originQuery, mid, requestId string) (string, error) { // TODO: 修改grpc接入的ip:port conn, err := grpc.Dial("172.28.5.44:8081", grpc.WithInsecure()) if err != nil { return "", err } defer conn.Close() c := proto.NewTencentNluClient(conn) // TODO: 修改超时时间 ctx, cancel := context.WithTimeout(context.Background(), time.Second*2) // import ct context // ctx, cancel := ct.WithTimeout(ct.Background(), time.Second*2) defer cancel() req := proto.SemanticRequest{MacWifi: macWifi, MacVoice: macVoice, Query: query, Ip: ip, OriginQuery: originQuery, Mid: mid, RequestId: requestId} rep, err := c.TencentNluParse(ctx, &req) if err != nil { return "", err } // TODO: 增加对Status的判断 return rep.Data.SemanticRespJsonData, nil } func goForTencentNluGrpc(reqStruct *semantic.SemanticReq, resJsonStr chan string, exitSig chan bool) { var channelStr string // TODO: requestId 一次请求一个requestId不重复, 一般由设备进行请求 requestId := "test" channelStr, err := TencentNluParseExample(reqStruct.MacWifi, reqStruct.MacVoice, reqStruct.Query, reqStruct.Ip, reqStruct.OriginQuery, reqStruct.Mid, requestId) if err != nil { return } select { case <-exitSig: return case resJsonStr <- channelStr: } } ``` ### 说明 - GetAuthorizationByGRPC 关于票据查询 code为200的时候切Appkey及accesstoken不为空时, 必然使用Appkey及accesstoken 有且仅当tokenSearchResponse.Data.Status为2是使用Appkey, accesstoken, auth, dsn #### mid-appkey * 测试服 |mid|appkey| | ---- | ---- | |11f03| 8d3b6076-3bb4-4c26-89c3-011447996044| |11f00| 8d3b6076-3bb4-4c26-89c3-011447996044| |10f04| ef9bc360baae11ea8cec1d1b4b4e3b98| |10f05| 8d3b6076-3bb4-4c26-89c3-011447996044| |11011| 8d3b6076-3bb4-4c26-89c3-011447996044| |11009| 8d3b6076-3bb4-4c26-89c3-011447996044| |10010| 8d3b6076-3bb4-4c26-89c3-011447996044| |11008| 8d3b6076-3bb4-4c26-89c3-011447996044| |10f10| 8d3b6076-3bb4-4c26-89c3-011447996044| |11f02| 8d3b6076-3bb4-4c26-89c3-011447996044| |10015_isdelete| 8d3b6076-3bb4-4c26-89c3-011447996044| |10f03| 8d3b6076-3bb4-4c26-89c3-011447996044| |10f00| 8d3b6076-3bb4-4c26-89c3-011447996044| * mid_appkey 表字段说明 |key|type|info| |----|----|----| |mid|varchar(50)|设备型号| |appkey|varchar(200)|云小微平台应用下的Appkey| |access_token|varchar(200)|云小微平台应用下的AccessToken| |app_secret|varchar(200)|云小微平台应用下的AppSecret| |mode|int(11)|类型 0 qq音乐授权 1 酷狗音乐授权(已弃用)2厂商账号授权 3中控boot| |uri_type|int(11)|类型 0 tencent_v1(默认) 1 腾讯_v2| |vender|varchar(255)|细分码,默认为空字符串| |need_activate|tinyint(1)|用于判断是否需要激活, 默认为1| #### 错误码 | Code | Msg | | ---- | ------------------ | | 0 | 成功 | | 1500 | 内部服务错误 | | 1503 | 叮当服务超时 | | 1504 | 叮当服务请求过快 |