153 lines
3.9 KiB
Go
153 lines
3.9 KiB
Go
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"`
|
|
}
|