package entitys import ( "sdk-generator/internal/data/model" "sdk-generator/internal/pkg/call" "sdk-generator/internal/pkg/extractor" ) type TaskStatus string const ( StatusPending TaskStatus = "pending" StatusProcessing TaskStatus = "processing" StatusMkdir TaskStatus = "mkdir" StatusAnaMd TaskStatus = "anaMd" StatusGenerateCode TaskStatus = "generateCode" StatusCreatFile TaskStatus = "creatFile" StatusValid TaskStatus = "valid" StatusProcess TaskStatus = "process" StatusFix TaskStatus = "fix" StatusSendToGit TaskStatus = "sendToGit " StatusMsgSend TaskStatus = "msgSend" StatusCompleted TaskStatus = "completed" StatusFailed TaskStatus = "failed" ) func (s TaskStatus) Desc() string { return StatusName[s] } func (s TaskStatus) String() string { return string(s) } func (s TaskStatus) Percent() int { return StatusPercent[s] } var StatusPercent = map[TaskStatus]int{ StatusPending: 0, StatusProcessing: 1, StatusMkdir: 10, StatusAnaMd: 20, StatusGenerateCode: 60, StatusCreatFile: 50, StatusValid: 70, StatusProcess: 62, StatusFix: 80, StatusSendToGit: 85, StatusMsgSend: 95, StatusCompleted: 100, StatusFailed: 100, } var StatusName = map[TaskStatus]string{ StatusPending: "准备中", StatusProcessing: "开始创建", StatusMkdir: "新建项目文件夹", StatusAnaMd: "分析文档", StatusGenerateCode: "生成代码", StatusCreatFile: "创建代码目录", StatusValid: "验证功能", StatusProcess: "编译检测", StatusFix: "问题修复", StatusSendToGit: "上传代码仓库", StatusMsgSend: "发送钉钉消息", StatusCompleted: "任务完成", StatusFailed: "任务失败", } type DocType int32 const ( DocTypeSdk DocType = 1 DocTypeServerBoilerplate DocType = 2 DocTypeUnKnown DocType = 0 ) func (s DocType) String() string { return string(s) } //type Task struct { // ID string `json:"id"` // Status TaskStatus `json:"status"` // StatusName string `json:"status_name"` // Percent int `json:"percent"` // SdkName string `json:"sdk_name"` // OutputDir string `json:"output_dir"` // Error string `json:"error,omitempty"` // CreatedAt time.Time `json:"created_at"` // UpdatedAt time.Time `json:"updated_at"` // CompletedAt *time.Time `json:"completed_at,omitempty"` // CallLLM *call.CallLLM // SdkPackage string // MarkdownContent string // DocType DocType // Refine string // Resp string // Valid string // Files []extractor.File // RepoURL string //} type Task struct { TasKModel *model.AiGenerateTask RefinedDoc string Generate string CallLLM *call.CallLLM OutputDir string Valid string Package string Name string Files []extractor.File } type TaskResponse struct { Task *model.AiGenerateTask Percent int `json:"percent"` StatusDesc string `json:"status_desc"` } type ListTasksResponse struct { Data []model.AiGenerateTask `json:"data"` Total int64 `json:"total"` Page int `json:"page"` Size int `json:"size"` } type Usage struct { StateName string `json:"state_name"` PromptTokens int `json:"prompt_tokens"` CompletionTokens int `json:"completion_tokens"` TotalTokens int `json:"total_tokens"` } type UsageTask struct { PromptTokens int `json:"prompt_tokens"` CompletionTokens int `json:"completion_tokens"` TotalTokens int `json:"total_tokens"` Detail []*Usage `json:"detail"` } type ToolRes struct { RefinedDoc string `json:"refined_doc"` Interfaces []Interface `json:"interfaces"` } type Interface struct { Method string `json:"method"` Summary string `json:"summary"` }