package service //调用gpt3.5 //func Gpt3dot5Message(entId, visitorId, content string) string { // config := models.GetEntConfigsMap(entId, "chatGPTUrl", // "chatGPTSecret", "chatGPTPrompt", // "chatGPTSystem", // "ThirdSearchUrl") // // //先调第三方搜索看看 // //if config["ThirdSearchUrl"] != "" { // // replyContent := tools.Get(config["ThirdSearchUrl"] + content) // // if replyContent != "" { // // return replyContent // // } // //} // // if content == "" || config["chatGPTSecret"] == "" { // return "" // } // // gpt := lib.NewChatGptTool(config["chatGPTUrl"], config["chatGPTSecret"]) // systemMes := "你是智能AI客服问答机器人" // if config["chatGPTSystem"] != "" { // systemMes = config["chatGPTSystem"] // } // gptMessages := []lib.Gpt3Dot5Message{ // { // Role: "system", // Content: systemMes, // }, // } // // messages := models.FindMessageByQuery("visitor_id = ?", visitorId) // attr := models.GetVisitorAttrByVisitorId(visitorId, entId) // openAiApiMaxNum := models.FindConfig("OpenAiApiMaxNum") // maxNum := 10 // if openAiApiMaxNum != "" { // maxNum = tools.Str2Int(openAiApiMaxNum) // } // if attr.MaxMessageNum != "" { // maxNum = tools.Str2Int(attr.MaxMessageNum) // } // length := len(messages) // if length > maxNum { // return "对不起,对话消息数量已超过限制" // } // j := 0 // for i := len(messages) - 1; i >= 0; i-- { // if j > 3 { // break // } // reqContent := messages[i].Content // if messages[i].MesType == "visitor" { // gptMessages = append(gptMessages, lib.Gpt3Dot5Message{ // Role: "user", // Content: reqContent, // }) // } else { // gptMessages = append(gptMessages, lib.Gpt3Dot5Message{ // Role: "assistant", // Content: reqContent, // }) // } // j++ // } // if config["chatGPTPrompt"] != "" { // gptMessages = append(gptMessages, lib.Gpt3Dot5Message{ // Role: "user", // Content: fmt.Sprintf(config["chatGPTPrompt"], content), // }) // } else { // gptMessages = append(gptMessages, lib.Gpt3Dot5Message{ // Role: "user", // Content: content, // }) // } // //replyContent, err := gpt.ChatGPT3Dot5Turbo(gptMessages) // replyContent := "" // stream, _ := gpt.ChatGPT3Dot5TurboStream(gptMessages) // for { // response, err := stream.Recv() // if errors.Is(err, io.EOF) { // log.Println("\nStream finished") // break // } else if err != nil { // log.Printf("\nStream error: %v\n", err) // break // } else { // log.Println(response.Choices[0].Delta.Content, err) // replyContent += response.Choices[0].Delta.Content // } // } // stream.Close() // // //if err != nil { // // log.Println(err) // //} // return replyContent //}