46 lines
851 B
Go
46 lines
851 B
Go
|
package openai
|
||
|
|
||
|
import (
|
||
|
"github.com/0xJacky/Nginx-UI/api"
|
||
|
"github.com/0xJacky/Nginx-UI/model"
|
||
|
"github.com/0xJacky/Nginx-UI/query"
|
||
|
"github.com/gin-gonic/gin"
|
||
|
"github.com/sashabaranov/go-openai"
|
||
|
"github.com/uozi-tech/cosy"
|
||
|
"net/http"
|
||
|
)
|
||
|
|
||
|
func StoreChatGPTRecord(c *gin.Context) {
|
||
|
var json struct {
|
||
|
FileName string `json:"file_name"`
|
||
|
Messages []openai.ChatCompletionMessage `json:"messages"`
|
||
|
}
|
||
|
|
||
|
if !cosy.BindAndValid(c, &json) {
|
||
|
return
|
||
|
}
|
||
|
|
||
|
name := json.FileName
|
||
|
g := query.ChatGPTLog
|
||
|
_, err := g.Where(g.Name.Eq(name)).FirstOrCreate()
|
||
|
|
||
|
if err != nil {
|
||
|
api.ErrHandler(c, err)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
_, err = g.Where(g.Name.Eq(name)).Updates(&model.ChatGPTLog{
|
||
|
Name: name,
|
||
|
Content: json.Messages,
|
||
|
})
|
||
|
|
||
|
if err != nil {
|
||
|
api.ErrHandler(c, err)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
c.JSON(http.StatusOK, gin.H{
|
||
|
"message": "ok",
|
||
|
})
|
||
|
}
|