diff --git a/handler/im.go b/handler/im.go index 4f9b855..3aec346 100644 --- a/handler/im.go +++ b/handler/im.go @@ -221,6 +221,9 @@ func doReceiveGenChatMessage(userId int, sessionID *uint, data *proto.WSMessageR *sessionID = uint(data.SessionID) if *sessionID == 0 { //创建会话 + if sessionName == "" { + sessionName = "新会话" + } err, *sessionID = service.CreateSession(userId, sessionName) log.Println("create session id:", *sessionID) if err != nil { diff --git a/proto/im.go b/proto/im.go index 00179b7..8dc2bf8 100644 --- a/proto/im.go +++ b/proto/im.go @@ -78,8 +78,13 @@ type IMParamContext struct { IsHasImage bool `json:"is_has_image"` //是否有图片 } +type ImageMsgContent struct { + ImgName string `json:"img_name"` //图片名称 + ImgUrl string `json:"img_url"` //图片url +} + // 用户向模型发送图片的消息结构 type UserImageMsg struct { - ImgUrl string `json:"img_url"` //图片url - Text string `json:"text"` //问题文本 + ImageContent []ImageMsgContent `json:"image_content"` //图片内容 + Text string `json:"text"` //问题文本 } diff --git a/service/doubao.go b/service/doubao.go index 93cea47..b5cc214 100644 --- a/service/doubao.go +++ b/service/doubao.go @@ -185,6 +185,7 @@ func doubaoToGeneralMassageAndSendMsgQueue(data *model.ChatCompletionStreamRespo worker.Publish(channel, string(wsMsgStr), time.Second*60) } +// 当前消息包含在messages中 func GetDouBaoSessionHistoryMsg(sessionID int, systemPrompt string, messages *[]*model.ChatCompletionMessage, prompt string) error { var err error //添加系统 @@ -215,19 +216,22 @@ func GetDouBaoSessionHistoryMsg(sessionID int, systemPrompt string, messages *[] return err2 } //用户消息为图片类型 + listValue := []*model.ChatCompletionMessageContentPart{} + listValue = append(listValue, &model.ChatCompletionMessageContentPart{ + Type: model.ChatCompletionMessageContentPartTypeText, + Text: imgMsg.Text, + }) + //图片链接是可以是多个 + for _, img := range imgMsg.ImageContent { + listValue = append(listValue, &model.ChatCompletionMessageContentPart{ + Type: model.ChatCompletionMessageContentPartTypeImageURL, + ImageURL: &model.ChatMessageImageURL{ + URL: img.ImgUrl, + }, + }) + } message.Content = &model.ChatCompletionMessageContent{ - ListValue: []*model.ChatCompletionMessageContentPart{ - { - Type: model.ChatCompletionMessageContentPartTypeText, - Text: imgMsg.Text, - }, - { - Type: model.ChatCompletionMessageContentPartTypeImageURL, - ImageURL: &model.ChatMessageImageURL{ - URL: imgMsg.ImgUrl, - }, - }, - }, + ListValue: listValue, } } else { //用户消息为文本类型