package gateway import ( "context" "encoding/json" "fmt" "prompts-core/common/util" commonHttp "gitea.com/red-future/common/http" "github.com/gogf/gf/v2/os/gtime" ) // CreateTaskReq 创建任务请求 type CreateTaskReq struct { TaskId string `json:"task_id"` State int `json:"state"` OssFile string `json:"oss_file"` FileType string `json:"file_type"` Text string `json:"text"` ErrorMsg string `json:"error_msg"` } // CreateGatewayTask 创建网关异步任务 func CreateGatewayTask(ctx context.Context, payload map[string]any) (string, error) { fullURL := "model-gateway/task/createTask" headers := util.ForwardHeaders(ctx) var req CreateTaskReq body, err := json.Marshal(payload) if err != nil { return "", err } if err := commonHttp.Post(ctx, fullURL, headers, &req, body); err != nil { return "", err } return req.TaskId, nil } // GetTaskResultRes 任务结果响应 type GetTaskResultRes struct { OssFile string `json:"ossFile" dc:"结果文件OSS地址"` State int `json:"state" dc:"任务状态"` } // QueryGatewayTaskState 查询网关任务状态 func QueryGatewayTaskState(ctx context.Context, taskID string) (int, error) { fullURL := fmt.Sprintf("model-gateway/task/getTaskResult?taskId=%s", taskID) headers := util.ForwardHeaders(ctx) var req GetTaskResultRes if err := commonHttp.Get(ctx, fullURL, headers, &req, nil); err != nil { return 0, err } return req.State, nil } // SkillUserVO 技能用户视图对象 type SkillUserVO struct { Id int64 `json:"id,string"` Name string `json:"name"` Description string `json:"description"` FileName string `json:"fileName"` FileUrl string `json:"fileUrl"` CreatedAt *gtime.Time `json:"createdAt"` UpdatedAt *gtime.Time `json:"updatedAt"` ImgAddressPrefix string `json:"imgAddressPrefix"` } // GetSkillUser 获取技能用户信息 func GetSkillUser(ctx context.Context, name string) (*SkillUserVO, error) { fullURL := fmt.Sprintf("ai-agent/skill/user/getUserOrTemplate?name=%s", name) headers := util.ForwardHeaders(ctx) var resp SkillUserVO var req struct{} if err := commonHttp.Get(ctx, fullURL, headers, &resp, req); err != nil { return nil, err } return &resp, nil }