record full request body

This commit is contained in:
2023-07-11 14:51:19 +08:00
parent 4c2f1d4244
commit 8889da73ab
2 changed files with 11 additions and 43 deletions

View File

@@ -1,51 +1,19 @@
package main
import (
"encoding/json"
"log"
"strings"
"github.com/gin-gonic/gin"
"gorm.io/gorm"
)
type UserMessage struct {
type RequestRecord struct {
gorm.Model
ModelName string
Content string
}
// sturcture to parse request
type ChatRequest struct {
Model string `json:"model"`
Messages []Message `json:"messages"`
}
type Message struct {
Content string `json:"content"`
Body string
}
func recordUserMessage(c *gin.Context, db *gorm.DB, body []byte) {
bodyJson := ChatRequest{}
err := json.Unmarshal(body, &bodyJson)
if err != nil {
c.AbortWithError(502, err)
return
bodyStr := string(body)
requestRecord := RequestRecord{
Body: bodyStr,
}
model := bodyJson.Model
if !strings.HasPrefix(model, "gpt-") {
return
}
// get message content
if len(bodyJson.Messages) == 0 {
return
}
content := bodyJson.Messages[len(bodyJson.Messages)-1].Content
log.Println("Record user message", model, content)
userMessage := UserMessage{
ModelName: model,
Content: content,
}
db.Create(&userMessage)
db.Create(&requestRecord)
}