Browse Source

优化openai文件上传逻辑

hongze 1 year ago
parent
commit
54765415bb
1 changed files with 51 additions and 57 deletions
  1. 51 57
      controllers/ai/ai_file.go

+ 51 - 57
controllers/ai/ai_file.go

@@ -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