|
@@ -269,12 +269,12 @@ func (this *AiFileController) FileRetrieve() {
|
|
|
|
|
|
//根据提问,获取信息
|
|
|
askUuid := utils.MD5(req.Ask)
|
|
|
- chatMode, err := aimod.GetAiChatByAsk(askUuid)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
- br.Msg = "获取数据失败!"
|
|
|
- br.ErrMsg = "获取数据失败,GetAiChatByAsk,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
+ //chatMode, err := aimod.GetAiChatByAsk(askUuid)
|
|
|
+ //if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ // br.Msg = "获取数据失败!"
|
|
|
+ // br.ErrMsg = "获取数据失败,GetAiChatByAsk,Err:" + err.Error()
|
|
|
+ // return
|
|
|
+ //}
|
|
|
|
|
|
var assistantId, threadId string
|
|
|
if req.AiChatTopicId > 0 {
|
|
@@ -297,63 +297,57 @@ func (this *AiFileController) FileRetrieve() {
|
|
|
|
|
|
resp := new(aimod.ChatResp)
|
|
|
var answer string
|
|
|
- if chatMode != nil && chatMode.Answer != "" {
|
|
|
- answer = chatMode.Answer
|
|
|
- } else {
|
|
|
- //获取主题下的所有信息
|
|
|
- //AiChatTopicId
|
|
|
- historyList, err := aimod.GetAiChatList(req.AiChatTopicId)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
- br.Msg = "获取主题历史数据失败!"
|
|
|
- br.ErrMsg = "获取主题历史数据失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
+ //获取主题下的所有信息
|
|
|
+ //AiChatTopicId
|
|
|
+ historyList, err := aimod.GetAiChatList(req.AiChatTopicId)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取主题历史数据失败!"
|
|
|
+ br.ErrMsg = "获取主题历史数据失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
|
|
|
- frList := make([]aimod.HistoryChat, 0)
|
|
|
- tmpFileIdList := make([]string, 0)
|
|
|
+ frList := make([]aimod.HistoryChat, 0)
|
|
|
+ tmpFileIdList := make([]string, 0)
|
|
|
|
|
|
- // 历史消息
|
|
|
- for _, v := range historyList {
|
|
|
- if v.OpenaiFileId != "" {
|
|
|
- tmpFileIdList = append(tmpFileIdList, v.OpenaiFileId)
|
|
|
- } else {
|
|
|
- historyFr := new(aimod.HistoryChat)
|
|
|
- historyFr.Ask = v.Ask
|
|
|
- historyFr.Answer = v.Answer
|
|
|
- historyFr.OpenaiFileId = tmpFileIdList
|
|
|
- frList = append(frList, *historyFr)
|
|
|
- tmpFileIdList = []string{}
|
|
|
- }
|
|
|
- }
|
|
|
- // 当前的消息
|
|
|
- {
|
|
|
- frItem := new(aimod.HistoryChat)
|
|
|
- frItem.Ask = req.Ask
|
|
|
- frItem.Answer = ""
|
|
|
- frItem.OpenaiFileId = tmpFileIdList
|
|
|
- frList = append(frList, *frItem)
|
|
|
+ // 历史消息
|
|
|
+ for _, v := range historyList {
|
|
|
+ if v.OpenaiFileId != "" {
|
|
|
+ tmpFileIdList = append(tmpFileIdList, v.OpenaiFileId)
|
|
|
+ } else {
|
|
|
+ historyFr := new(aimod.HistoryChat)
|
|
|
+ historyFr.Ask = v.Ask
|
|
|
+ historyFr.Answer = v.Answer
|
|
|
+ historyFr.OpenaiFileId = tmpFileIdList
|
|
|
+ frList = append(frList, *historyFr)
|
|
|
+ tmpFileIdList = []string{}
|
|
|
}
|
|
|
+ }
|
|
|
+ // 当前的消息
|
|
|
+ {
|
|
|
+ frItem := new(aimod.HistoryChat)
|
|
|
+ frItem.Ask = req.Ask
|
|
|
+ frItem.Answer = ""
|
|
|
+ frItem.OpenaiFileId = tmpFileIdList
|
|
|
+ frList = append(frList, *frItem)
|
|
|
+ }
|
|
|
|
|
|
- //var assistantId,threadId string
|
|
|
- fileRetrieveResp, err := aiser.FileRetrieve(assistantId, threadId, frList, req.OpenaiFileId)
|
|
|
- //fileRetrieveResp, err := aiser.FileRetrieve(assistantId, threadId, frList, []string{})
|
|
|
- if err != nil {
|
|
|
+ fileRetrieveResp, err := aiser.FileRetrieve(assistantId, threadId, frList, req.OpenaiFileId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取数据失败!"
|
|
|
+ br.ErrMsg = "获取数据失败,FileRetrieve,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if fileRetrieveResp != nil {
|
|
|
+ if fileRetrieveResp.Ret == 200 {
|
|
|
+ assistantId = fileRetrieveResp.Data.AssistantId
|
|
|
+ threadId = fileRetrieveResp.Data.ThreadId
|
|
|
+ answer = fileRetrieveResp.Data.Answer
|
|
|
+ } else {
|
|
|
br.Msg = "获取数据失败!"
|
|
|
- br.ErrMsg = "获取数据失败,FileRetrieve,Err:" + err.Error()
|
|
|
+ br.ErrMsg = fileRetrieveResp.Msg
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
- if fileRetrieveResp != nil {
|
|
|
- if fileRetrieveResp.Ret == 200 {
|
|
|
- assistantId = fileRetrieveResp.Data.AssistantId
|
|
|
- threadId = fileRetrieveResp.Data.ThreadId
|
|
|
- answer = fileRetrieveResp.Data.Answer
|
|
|
- } else {
|
|
|
- br.Msg = "获取数据失败!"
|
|
|
- br.ErrMsg = fileRetrieveResp.Msg
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
if req.AiChatTopicId <= 0 { //新增
|
|
@@ -392,7 +386,7 @@ func (this *AiFileController) FileRetrieve() {
|
|
|
chatItem := new(aimod.AiChat)
|
|
|
chatItem.AiChatTopicId = req.AiChatTopicId
|
|
|
chatItem.Ask = req.Ask
|
|
|
- chatItem.AskUuid = utils.MD5(req.Ask)
|
|
|
+ chatItem.AskUuid = askUuid
|
|
|
chatItem.Answer = answer
|
|
|
chatItem.Model = "gpt-4-1106-preview"
|
|
|
chatItem.SysUserId = this.SysUser.AdminId
|