kefu/middleware/kefu_collect.go

44 lines
1.2 KiB
Go
Raw Permalink Normal View History

2024-12-10 02:50:12 +00:00
package middleware
import (
"github.com/gin-gonic/gin"
"github.com/tidwall/gjson"
"kefu/lib"
"kefu/models"
"kefu/types"
)
//获取个人设置的OpenAI KEY中间件
func GetCollectByKefuName(c *gin.Context) {
entId, _ := c.Get("ent_id")
configs := models.GetEntConfigsMap(entId.(string), "QdrantAICollect", "chatGPTUrl", "chatGPTSecret")
collectName := configs["QdrantAICollect"]
chatGPTUrl := configs["chatGPTUrl"]
chatGPTSecret := configs["chatGPTSecret"]
if collectName == "" || chatGPTUrl == "" || chatGPTSecret == "" {
c.JSON(200, gin.H{
"code": types.ApiCode.COLLECT_NOT_EXIST,
"msg": types.ApiCode.GetMessage(types.ApiCode.COLLECT_NOT_EXIST),
})
c.Abort()
return
}
lib.QdrantBase = models.FindConfig("QdrantBase")
lib.QdrantPort = models.FindConfig("QdrantPort")
c.Set("collect_name", collectName)
c.Set("openai_url", chatGPTUrl)
c.Set("openai_key", chatGPTSecret)
collectInfo, err := lib.GetCollection(collectName)
if err != nil {
c.Writer.Write([]byte(err.Error()))
c.Abort()
return
}
collectInfoStatus := gjson.Get(string(collectInfo), "status").String()
if collectInfoStatus != "ok" {
c.Writer.Write(collectInfo)
c.Abort()
return
}
}