mirror of
https://github.com/coaidev/coai.git
synced 2025-05-19 21:10:18 +09:00
35 lines
932 B
Go
35 lines
932 B
Go
package manager
|
|
|
|
import (
|
|
"chat/globals"
|
|
"chat/utils"
|
|
"fmt"
|
|
"github.com/gin-gonic/gin"
|
|
"time"
|
|
)
|
|
|
|
type CacheProps struct {
|
|
Message []globals.Message `json:"message" required:"true"`
|
|
Model string `json:"model" required:"true"`
|
|
Reversible bool `json:"reversible"`
|
|
}
|
|
|
|
type CacheData struct {
|
|
Keyword string `json:"keyword"`
|
|
Message string `json:"message"`
|
|
}
|
|
|
|
func ExtractCacheData(c *gin.Context, props *CacheProps) *CacheData {
|
|
hash := utils.Md5Encrypt(utils.Marshal(props))
|
|
data, err := utils.GetCacheFromContext(c).Get(c, fmt.Sprintf(":niodata:%s", hash)).Result()
|
|
if err == nil && data != "" {
|
|
return utils.UnmarshalForm[CacheData](data)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func SaveCacheData(c *gin.Context, props *CacheProps, data *CacheData) {
|
|
hash := utils.Md5Encrypt(utils.Marshal(props))
|
|
utils.GetCacheFromContext(c).Set(c, fmt.Sprintf(":niodata:%s", hash), utils.Marshal(data), time.Hour*12)
|
|
}
|