ai_scheduler/internal/entitys/chat_history.go

65 lines
2.1 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package entitys
import (
"ai_scheduler/internal/data/constants"
"ai_scheduler/internal/data/model"
"encoding/json"
)
type ChatHistory struct {
SessionID string `json:"session_id"`
Role constants.Caller `json:"role"`
Content string `json:"content"`
Prologue string `json:"prologue"`
}
type ChatHisLog struct {
HisId int64 `json:"his_id"`
}
type ChatHistQuery struct {
SessionID string `json:"session_id"`
Page int `json:"page"`
PageSize int `json:"page_size"`
}
type ChatHisQueryResponse struct {
HisID int64 `gorm:"column:his_id;primaryKey;autoIncrement:true" json:"his_id"`
SessionID string `gorm:"column:session_id;not null" json:"session_id"`
Ques string `gorm:"column:ques;not null" json:"ques"`
Ans string `gorm:"column:ans;not null" json:"ans"`
Files string `gorm:"column:files;not null" json:"files"`
Useful int32 `gorm:"column:useful;not null;comment:0不评价,1有用其他为无用" json:"useful"` // 0不评价,1有用其他为无用
CreateAt string `gorm:"column:create_at;default:CURRENT_TIMESTAMP" json:"create_at"`
TaskID int32 `gorm:"column:task_id;not null" json:"task_id"` // 任务ID
TaskName string `gorm:"column:task_name;not null" json:"task_name"` // 任务名称
Content []string `gorm:"column:content" json:"content"` // 前端回传数据
}
func (c *ChatHisQueryResponse) FromModel(chat model.AiChatHi, task model.AiTask) {
c.HisID = chat.HisID
c.SessionID = chat.SessionID
c.Ques = chat.Ques
c.Ans = chat.Ans
c.Files = chat.Files
c.Useful = chat.Useful
c.CreateAt = chat.CreateAt.Format("2006-01-02 15:04:05")
c.TaskID = chat.TaskID
c.TaskName = task.Name
c.Content = make([]string, 0)
// 解析Content
if "" != chat.Content {
var contents []string
if err := json.Unmarshal([]byte(chat.Content), &contents); err != nil {
c.Content = contents
}
c.Content = append(c.Content, chat.Content)
}
}
type UpdateContentRequest struct {
HisID int64 `json:"his_id" validate:"required"`
Content string `json:"content" validate:"required"`
}