|
@@ -15,6 +15,8 @@ import (
|
|
|
"github.com/rdlucklib/rdluck_tools/uuid"
|
|
|
"gorm.io/gorm"
|
|
|
"os"
|
|
|
+ "strings"
|
|
|
+ "time"
|
|
|
)
|
|
|
|
|
|
var (
|
|
@@ -55,7 +57,7 @@ func AIGCBaseOnPromote(aigc AIGC) (resp bus_response.AIGCEtaResponse, err error)
|
|
|
} else {
|
|
|
var kbId string
|
|
|
var file *os.File
|
|
|
- var params map[string]interface{}
|
|
|
+ params := make(map[string]interface{})
|
|
|
if mapping.Id == 0 || mapping.KbId == "" {
|
|
|
article, fileErr := rag.GetArticleById(aigc.ArticleId)
|
|
|
if fileErr != nil {
|
|
@@ -95,6 +97,7 @@ func AIGCBaseOnPromote(aigc AIGC) (resp bus_response.AIGCEtaResponse, err error)
|
|
|
err = rag.CreateArticleKbMapping(rag.ArticleKbMapping{
|
|
|
WechatArticleId: aigc.ArticleId,
|
|
|
KbId: data.Id,
|
|
|
+ CreatedTime: time.Now(),
|
|
|
})
|
|
|
if err != nil {
|
|
|
utils.FileLog.Warn("创建文章知识库映射关系失败,err:", err.Error())
|
|
@@ -115,14 +118,25 @@ func AIGCBaseOnPromote(aigc AIGC) (resp bus_response.AIGCEtaResponse, err error)
|
|
|
err = fmt.Errorf("内容生成失败,code:%v,msg:%v", response.Ret, response.Msg)
|
|
|
return
|
|
|
} else {
|
|
|
- var baseResp eta_llm_http.RagBaseResponse
|
|
|
- parseErr := json.Unmarshal(response.Data, &baseResp)
|
|
|
- if parseErr != nil {
|
|
|
- utils.FileLog.Error("内容生成失败,code:%v,msg:%v", parseErr)
|
|
|
- err = fmt.Errorf("内容生成失败,err:%v", parseErr)
|
|
|
+ dataStr := string(response.Data)
|
|
|
+
|
|
|
+ if strings.HasPrefix(dataStr, "data: ") {
|
|
|
+ dataStr = strings.TrimPrefix(dataStr, "data: ")
|
|
|
+ parseErr := json.Unmarshal([]byte(dataStr), &resp)
|
|
|
+ if parseErr != nil {
|
|
|
+ utils.FileLog.Error("内容生成失败,code:%v,msg:%v", parseErr)
|
|
|
+ err = fmt.Errorf("内容生成失败,err:%v", parseErr)
|
|
|
+ return
|
|
|
+ }
|
|
|
return
|
|
|
- }
|
|
|
- if baseResp.Code != 200 {
|
|
|
+ } else {
|
|
|
+ var baseResp eta_llm_http.RagBaseResponse
|
|
|
+ parseErr := json.Unmarshal([]byte(dataStr), &baseResp)
|
|
|
+ if parseErr != nil {
|
|
|
+ utils.FileLog.Error("内容生成失败,code:%v,msg:%v", parseErr)
|
|
|
+ err = fmt.Errorf("内容生成失败,err:%v", parseErr)
|
|
|
+ return
|
|
|
+ }
|
|
|
if baseResp.Code == 404 {
|
|
|
params["PrevId"] = kbId
|
|
|
_, putErr := llmService.UploadFileToTemplate([]*os.File{file}, params)
|
|
@@ -132,8 +146,8 @@ func AIGCBaseOnPromote(aigc AIGC) (resp bus_response.AIGCEtaResponse, err error)
|
|
|
return
|
|
|
}
|
|
|
} else {
|
|
|
- utils.FileLog.Error("内容生成失败,code:%v,msg:%v", baseResp.Code, baseResp.Msg)
|
|
|
- err = fmt.Errorf("内容生成失败,code:%v,msg:%v", baseResp.Code, baseResp.Msg)
|
|
|
+ utils.FileLog.Error("内容生成失败,code:%v", baseResp.Code)
|
|
|
+ err = fmt.Errorf("内容生成失败,code:%v", baseResp.Code)
|
|
|
return
|
|
|
}
|
|
|
}
|
|
@@ -147,17 +161,26 @@ func AIGCBaseOnPromote(aigc AIGC) (resp bus_response.AIGCEtaResponse, err error)
|
|
|
utils.FileLog.Error("内容生成失败,code:%v,msg:%v", gcResp.Ret, gcResp.Msg)
|
|
|
err = fmt.Errorf("内容生成失败,err:%v", gcResp.Msg)
|
|
|
}
|
|
|
- var steamResp eta_llm_http.ContentResponse
|
|
|
- parseErr = json.Unmarshal(gcResp.Data, &steamResp)
|
|
|
- if parseErr != nil {
|
|
|
- utils.FileLog.Error("内容生成失败,code:%v,msg:%v", parseErr)
|
|
|
- err = fmt.Errorf("内容生成失败,err:%v", parseErr)
|
|
|
- return
|
|
|
- }
|
|
|
- parseErr = json.Unmarshal(steamResp.Data, &resp)
|
|
|
- if parseErr != nil {
|
|
|
- utils.FileLog.Error("内容生成失败,code:%v,msg:%v", parseErr)
|
|
|
- err = fmt.Errorf("内容生成失败,err:%v", parseErr)
|
|
|
+ dataStr = string(gcResp.Data)
|
|
|
+
|
|
|
+ if strings.HasPrefix(dataStr, "data: ") {
|
|
|
+ dataStr = strings.TrimPrefix(dataStr, "data: ")
|
|
|
+ parseErr := json.Unmarshal([]byte(dataStr), &resp)
|
|
|
+ if parseErr != nil {
|
|
|
+ utils.FileLog.Error("内容生成失败,code:%v,msg:%v", parseErr)
|
|
|
+ err = fmt.Errorf("内容生成失败,err:%v", parseErr)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ var baseResp eta_llm_http.RagBaseResponse
|
|
|
+ parseErr := json.Unmarshal([]byte(dataStr), &baseResp)
|
|
|
+ if parseErr != nil {
|
|
|
+ utils.FileLog.Error("内容生成失败,code:%v,msg:%v", parseErr)
|
|
|
+ err = fmt.Errorf("内容生成失败,err:%v", parseErr)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ utils.FileLog.Error("内容生成失败,code:%v", baseResp.Code)
|
|
|
+ err = fmt.Errorf("内容生成失败,code:%v", baseResp.Code)
|
|
|
return
|
|
|
}
|
|
|
}
|