kefu/service/gpt3dot5.go

101 lines
2.6 KiB
Go
Raw Normal View History

2024-12-10 02:50:12 +00:00
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
//}