Files
ai-agent/workflow/model/entity/node_execution.go
qhd 03c95c3601 feat: 新增主动拉取与多类型回调功能
- 新增 ActivePull 实体、DAO、DTO 及 Service,支持主动拉取任务管理
- 新增 ComposeCallback、VideoCallback、HttpNodeCallback 多类型回调接口
- FlowExecution 增加 NodeGroupId 和 TotalTokens 字段,支持节点组追踪与 Token 统计
- ExecutedNodes 结构由字符串列表改为包含执行状态的节点对象列表
- 重构回调通知机制,统一 Notify 函数调用
- 优化输出项类型判断逻辑,新增文件类型标识
2026-06-10 14:23:55 +08:00

59 lines
2.6 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package entity
import (
"ai-agent/workflow/consts/node"
"gitea.com/red-future/common/beans"
)
// NodeExecution 节点执行记录
// 记录每个节点的入参、出参、token消耗、执行状态等信息
type NodeExecution struct {
beans.SQLBaseDO `orm:",inherit"` // 嵌入基础字段Id, TenantId, Creator, CreatedAt, Updater, UpdatedAt, DeletedAt
FlowExecutionId int64 `orm:"flow_execution_id" json:"flowExecutionId" description:"流程执行ID"`
NodeId string `orm:"node_id" json:"nodeId" description:"节点ID"`
NodeName string `orm:"node_name" json:"nodeName" description:"节点名称"`
NodeGroupId string `orm:"node_group_id" json:"nodeGroupId" description:"节点组ID"`
InputParams map[string]interface{} `orm:"input_params" json:"inputParams" description:"节点输入参数"`
OutputParams map[string]interface{} `orm:"output_params" json:"outputParams" description:"节点输出参数"`
PromptTokens int `orm:"prompt_tokens" json:"promptTokens" description:"提示词token消耗"`
CompletionTokens int `orm:"completion_tokens" json:"completionTokens" description:"补全token消耗"`
TotalTokens int `orm:"total_tokens" json:"totalTokens" description:"总token消耗"`
Status node.NodeExecutionStatus `orm:"status" json:"status" description:"执行状态:1-运行中,2-成功,3-失败,4-暂停,5-等待执行"`
DurationMs int64 `orm:"duration_ms" json:"durationMs" description:"执行时长(毫秒)"`
ErrorMessage string `orm:"error_message" json:"errorMessage" description:"错误信息"`
}
type nodeExecutionCol struct {
beans.SQLBaseCol
FlowExecutionId string
NodeId string
NodeName string
NodeGroupId string
InputParams string
OutputParams string
PromptTokens string
CompletionTokens string
TotalTokens string
Status string
DurationMs string
ErrorMessage string
}
var NodeExecutionCol = nodeExecutionCol{
SQLBaseCol: beans.DefSQLBaseCol,
FlowExecutionId: "flow_execution_id",
NodeId: "node_id",
NodeName: "node_name",
NodeGroupId: "node_group_id",
InputParams: "input_params",
OutputParams: "output_params",
PromptTokens: "prompt_tokens",
CompletionTokens: "completion_tokens",
TotalTokens: "total_tokens",
Status: "status",
DurationMs: "duration_ms",
ErrorMessage: "error_message",
}