67 lines
2.1 KiB
Go
67 lines
2.1 KiB
Go
package entitys
|
||
|
||
import (
|
||
"ai_scheduler/internal/data/constants"
|
||
"ai_scheduler/internal/data/model"
|
||
"encoding/json"
|
||
"log"
|
||
)
|
||
|
||
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 {
|
||
HisID int64 `json:"his_id"`
|
||
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"` // 任务名称
|
||
Contents []string `gorm:"column:contents" json:"contents"` // 前端回传数据
|
||
}
|
||
|
||
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.Contents = make([]string, 0)
|
||
|
||
// 解析Content
|
||
if "" != chat.Content {
|
||
err := json.Unmarshal([]byte(chat.Content), &c.Contents)
|
||
if err != nil {
|
||
c.Contents = append(c.Contents, chat.Content)
|
||
log.Println("解析Content失败 error: ", err)
|
||
}
|
||
}
|
||
}
|
||
|
||
type UpdateContentRequest struct {
|
||
HisID int64 `json:"his_id" validate:"required"`
|
||
Content string `json:"content" validate:"required"`
|
||
}
|