package entitys import ( "ai_scheduler/internal/data/constants" "ai_scheduler/internal/data/model" "encoding/json" ) type Recognize struct { SystemPrompt string // 系统提示内容 UserContent *RecognizeUserContent // 用户输入内容 ChatHis ChatHis // 会话历史记录 Tasks []RegistrationTask Ch chan Response Match *Match Ext []byte } type TaskExt struct { Auth string `json:"auth"` Session string `json:"session"` Key string `json:"key"` SessionInfo model.AiSession Sys model.AiSy KnowledgeConf KnowledgeBaseRequest } type RegistrationTask struct { Name string Desc string Index string TaskConfigDetail TaskConfigDetail } type RecognizeUserContent struct { Text string // 用户输入的文本内容 File []*RecognizeFile // 文件内容 ActionCardUrl string // 操作卡片链接 Tag string // 工具标签 } type FileData []byte type RecognizeFile struct { FileRec string //文件识别内容 FileData FileData // 文件数据(二进制格式) FileType constants.FileType // 文件类型(文件类型,能填最好填,可以跳过一层判断) FileRealMime string // 文件真实MIME类型 FileUrl string // 文件下载链接 } func (r *Recognize) GetTaskExt() *TaskExt { var ext TaskExt if err := json.Unmarshal(r.Ext, &ext); err != nil { return nil } return &ext } func (r *Recognize) GetSession() string { ext := r.GetTaskExt() if ext == nil { return "" } return ext.Session }