sendOutputFilesStep 向客户端发送 AI 上传文件信息的 process.step 事件
(c *gin.Context, ctx context.Context, requestId string, files []*model.UploadFile, messageStatus *MessageStatsInfo, emitToClient bool)
| 4374 | |
| 4375 | // sendOutputFilesStep 向客户端发送 AI 上传文件信息的 process.step 事件 |
| 4376 | func sendOutputFilesStep(c *gin.Context, ctx context.Context, requestId string, files []*model.UploadFile, messageStatus *MessageStatsInfo, emitToClient bool) { |
| 4377 | if len(files) == 0 { |
| 4378 | return |
| 4379 | } |
| 4380 | fileItems := buildOutputFileItems(files) |
| 4381 | mediaItems := buildMediaAttachmentItems(files) |
| 4382 | fileStep := ProcessStep{ |
| 4383 | StepCode: "output_files", |
| 4384 | Name: "生成文件", |
| 4385 | Status: "completed", |
| 4386 | Message: fmt.Sprintf("生成了 %d 个文件", len(files)), |
| 4387 | Data: map[string]interface{}{ |
| 4388 | "files": fileItems, |
| 4389 | "contract_version": outputFilesContractVersion, |
| 4390 | "media_attachments": mediaItems, |
| 4391 | "media_contract_version": mediaAttachmentsContractVersion, |
| 4392 | }, |
| 4393 | Timestamp: time.Now().Unix(), |
| 4394 | } |
| 4395 | fileNames := make([]string, 0, len(files)) |
| 4396 | for _, f := range files { |
| 4397 | fileNames = append(fileNames, f.FileName) |
| 4398 | } |
| 4399 | if messageStatus != nil { |
| 4400 | recordProcessStepForHistory(ctx, config.GetEID(c), messageStatus, requestId, fileStep) |
| 4401 | } |
| 4402 | if !emitToClient { |
| 4403 | return |
| 4404 | } |
| 4405 | logger.Debugf(ctx, "【技能运行】发送输出文件步骤: request_id=%s, file_count=%d, file_names=%v", requestId, len(files), fileNames) |
| 4406 | if err := sendProcessStep(c, requestId, fileStep); err != nil { |
| 4407 | logger.Warnf(ctx, "Failed to send output files step: %v", err) |
| 4408 | } |
| 4409 | } |
no test coverage detected