diff --git a/internal/ai/runtime/internal/impl/callbacks/runlog_callback.go b/internal/ai/runtime/internal/impl/callbacks/runlog_callback.go index ee01ac3..7a45a88 100644 --- a/internal/ai/runtime/internal/impl/callbacks/runlog_callback.go +++ b/internal/ai/runtime/internal/impl/callbacks/runlog_callback.go @@ -106,6 +106,19 @@ func (c *RuntimeTraceCollector) SetRetrieverSummary(summary RetrieverTraceSummar c.Data.Retriever.Policies = append([]RetrieverPolicyTraceItem(nil), summary.Policies...) } +func (c *RuntimeTraceCollector) SetAnswerability(data AnswerabilityTraceData) { + c.mu.Lock() + defer c.mu.Unlock() + c.Data.Answerability = AnswerabilityTraceData{ + Status: data.Status, + Reason: data.Reason, + SupportingChunkIDs: append([]string(nil), data.SupportingChunkIDs...), + MissingInfo: append([]string(nil), data.MissingInfo...), + LatencyMs: data.LatencyMs, + ErrorMessage: data.ErrorMessage, + } +} + func (c *RuntimeTraceCollector) AddToolItem(item ToolTraceItem) { c.mu.Lock() defer c.mu.Unlock() diff --git a/internal/ai/runtime/internal/impl/callbacks/trace_callback.go b/internal/ai/runtime/internal/impl/callbacks/trace_callback.go index 660f1bc..3ff7701 100644 --- a/internal/ai/runtime/internal/impl/callbacks/trace_callback.go +++ b/internal/ai/runtime/internal/impl/callbacks/trace_callback.go @@ -65,6 +65,15 @@ type RetrieverTraceSummary struct { Policies []RetrieverPolicyTraceItem } +type AnswerabilityTraceData struct { + Status string `json:"status,omitempty"` + Reason string `json:"reason,omitempty"` + SupportingChunkIDs []string `json:"supportingChunkIds,omitempty"` + MissingInfo []string `json:"missingInfo,omitempty"` + LatencyMs int64 `json:"latencyMs,omitempty"` + ErrorMessage string `json:"errorMessage,omitempty"` +} + type RetrieverPolicyTraceItem struct { KnowledgeBaseID int64 `json:"knowledgeBaseId,omitempty"` TopK int `json:"topK,omitempty"` @@ -119,7 +128,8 @@ type RuntimeTraceData struct { Policies []RetrieverPolicyTraceItem `json:"policies,omitempty"` Items []RetrieverTraceItem `json:"items,omitempty"` } `json:"retriever"` - Tools struct { + Answerability AnswerabilityTraceData `json:"answerability,omitempty"` + Tools struct { Count int `json:"count,omitempty"` Items []ToolTraceItem `json:"items,omitempty"` } `json:"tools"`