修改ws长连接中接收消息后选择模型的功能及模型功能。
This commit is contained in:
parent
d7070e7311
commit
acc286d00d
|
|
@ -189,7 +189,12 @@ func subscribeAndHandleIMMessages(ws *websocket.Conn, userId int) {
|
||||||
func doReceiveGenChatMessage(userId int, sessionID *uint, data *proto.WSMessageReq, chanel string) error {
|
func doReceiveGenChatMessage(userId int, sessionID *uint, data *proto.WSMessageReq, chanel string) error {
|
||||||
var model dao.Model
|
var model dao.Model
|
||||||
//查看请求功能类型
|
//查看请求功能类型
|
||||||
models, funcs := service.FindFuncModelByFunction(data.Function, userId)
|
//models, funcs := service.FindFuncModelByFunction(data.Function, userId)
|
||||||
|
models, funcs, mferr := service.FindFuncModelListByFunctionV2(data.Function)
|
||||||
|
if mferr != nil {
|
||||||
|
return mferr
|
||||||
|
}
|
||||||
|
|
||||||
//log.Println("find function model by function:", models, funcs)
|
//log.Println("find function model by function:", models, funcs)
|
||||||
//log.Println("funcs:", len(funcs), "\tmodels:", len(models))
|
//log.Println("funcs:", len(funcs), "\tmodels:", len(models))
|
||||||
if len(funcs) == 0 {
|
if len(funcs) == 0 {
|
||||||
|
|
@ -210,7 +215,18 @@ func doReceiveGenChatMessage(userId int, sessionID *uint, data *proto.WSMessageR
|
||||||
log.Println("Create session error:", err)
|
log.Println("Create session error:", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
model = models[0]
|
//获取模型
|
||||||
|
for _, v := range models {
|
||||||
|
if v.ID == data.ModelID {
|
||||||
|
model = v
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if model.ID == 0 {
|
||||||
|
//说明前端传入的模型id不正确,取第一个模型
|
||||||
|
model = models[0]
|
||||||
|
}
|
||||||
|
|
||||||
//解析模型参数
|
//解析模型参数
|
||||||
var modelParam proto.ModelParam
|
var modelParam proto.ModelParam
|
||||||
err = json.Unmarshal([]byte(model.Parameter), &modelParam)
|
err = json.Unmarshal([]byte(model.Parameter), &modelParam)
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@ type WSMessageReq struct {
|
||||||
Msg string `json:"msg"` //消息内容,只进行转发,不做处理
|
Msg string `json:"msg"` //消息内容,只进行转发,不做处理
|
||||||
SessionID int `json:"session_id"` //应用层会话id
|
SessionID int `json:"session_id"` //应用层会话id
|
||||||
ToID int `json:"to_id"` //接收者id
|
ToID int `json:"to_id"` //接收者id
|
||||||
|
ModelID int `json:"model_id"` //模型id
|
||||||
}
|
}
|
||||||
|
|
||||||
type ModelParam struct {
|
type ModelParam struct {
|
||||||
|
|
|
||||||
|
|
@ -174,3 +174,24 @@ func FindFuncModelListByFunction(function string) ([]dao.Model, error) {
|
||||||
}
|
}
|
||||||
return models, nil
|
return models, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func FindFuncModelListByFunctionV2(function string) ([]dao.Model, []dao.FunctionModel, error) {
|
||||||
|
funcModels := dao.FindFunctionModelByFunction(function)
|
||||||
|
|
||||||
|
var functionModelIDs []proto.FunctionModelIDs
|
||||||
|
err := json.Unmarshal([]byte(funcModels[0].ModelIDS), &functionModelIDs)
|
||||||
|
if err != nil {
|
||||||
|
log.Println("FindFuncModelListByFunction json unmarshal error:", err)
|
||||||
|
return nil, funcModels, err
|
||||||
|
}
|
||||||
|
modelIDs := map[int]bool{}
|
||||||
|
for _, v := range functionModelIDs {
|
||||||
|
modelIDs[v.ID] = true
|
||||||
|
}
|
||||||
|
var models []dao.Model
|
||||||
|
for k := range modelIDs {
|
||||||
|
models_ := dao.FindModelByIDV2(k)
|
||||||
|
models = append(models, models_...)
|
||||||
|
}
|
||||||
|
return models, funcModels, nil
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue