feat: add answerability runtime trace fields

This commit is contained in:
mlogclub
2026-05-02 13:51:26 +08:00
parent 866663f0dc
commit 28913ad440
2 changed files with 24 additions and 1 deletions
@@ -106,6 +106,19 @@ func (c *RuntimeTraceCollector) SetRetrieverSummary(summary RetrieverTraceSummar
c.Data.Retriever.Policies = append([]RetrieverPolicyTraceItem(nil), summary.Policies...) 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) { func (c *RuntimeTraceCollector) AddToolItem(item ToolTraceItem) {
c.mu.Lock() c.mu.Lock()
defer c.mu.Unlock() defer c.mu.Unlock()
@@ -65,6 +65,15 @@ type RetrieverTraceSummary struct {
Policies []RetrieverPolicyTraceItem 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 { type RetrieverPolicyTraceItem struct {
KnowledgeBaseID int64 `json:"knowledgeBaseId,omitempty"` KnowledgeBaseID int64 `json:"knowledgeBaseId,omitempty"`
TopK int `json:"topK,omitempty"` TopK int `json:"topK,omitempty"`
@@ -119,7 +128,8 @@ type RuntimeTraceData struct {
Policies []RetrieverPolicyTraceItem `json:"policies,omitempty"` Policies []RetrieverPolicyTraceItem `json:"policies,omitempty"`
Items []RetrieverTraceItem `json:"items,omitempty"` Items []RetrieverTraceItem `json:"items,omitempty"`
} `json:"retriever"` } `json:"retriever"`
Tools struct { Answerability AnswerabilityTraceData `json:"answerability,omitempty"`
Tools struct {
Count int `json:"count,omitempty"` Count int `json:"count,omitempty"`
Items []ToolTraceItem `json:"items,omitempty"` Items []ToolTraceItem `json:"items,omitempty"`
} `json:"tools"` } `json:"tools"`