store.go 819 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package openai
  2. import (
  3. "net/http"
  4. "github.com/0xJacky/Nginx-UI/model"
  5. "github.com/0xJacky/Nginx-UI/query"
  6. "github.com/gin-gonic/gin"
  7. "github.com/sashabaranov/go-openai"
  8. "github.com/uozi-tech/cosy"
  9. )
  10. func StoreChatGPTRecord(c *gin.Context) {
  11. var json struct {
  12. FileName string `json:"file_name"`
  13. Messages []openai.ChatCompletionMessage `json:"messages"`
  14. }
  15. if !cosy.BindAndValid(c, &json) {
  16. return
  17. }
  18. name := json.FileName
  19. g := query.ChatGPTLog
  20. _, err := g.Where(g.Name.Eq(name)).FirstOrCreate()
  21. if err != nil {
  22. cosy.ErrHandler(c, err)
  23. return
  24. }
  25. _, err = g.Where(g.Name.Eq(name)).Updates(&model.ChatGPTLog{
  26. Name: name,
  27. Content: json.Messages,
  28. })
  29. if err != nil {
  30. cosy.ErrHandler(c, err)
  31. return
  32. }
  33. c.JSON(http.StatusOK, gin.H{
  34. "message": "ok",
  35. })
  36. }