fix: harden rag answerability gate
This commit is contained in:
@@ -106,6 +106,15 @@ func (c *RuntimeTraceCollector) SetRetrieverSummary(summary RetrieverTraceSummar
|
||||
c.Data.Retriever.Policies = append([]RetrieverPolicyTraceItem(nil), summary.Policies...)
|
||||
}
|
||||
|
||||
func (c *RuntimeTraceCollector) AddRetrieverItems(items []RetrieverTraceItem) {
|
||||
if len(items) == 0 {
|
||||
return
|
||||
}
|
||||
c.mu.Lock()
|
||||
defer c.mu.Unlock()
|
||||
c.Data.Retriever.Items = append(c.Data.Retriever.Items, items...)
|
||||
}
|
||||
|
||||
func (c *RuntimeTraceCollector) SetAnswerability(data AnswerabilityTraceData) {
|
||||
c.mu.Lock()
|
||||
defer c.mu.Unlock()
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
package callbacks
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestRuntimeTraceCollectorAddRetrieverItems(t *testing.T) {
|
||||
collector := NewRuntimeTraceCollector()
|
||||
|
||||
collector.AddRetrieverItems([]RetrieverTraceItem{
|
||||
{KnowledgeBaseID: 1, DocumentID: 10, DocumentTitle: "doc-1"},
|
||||
{KnowledgeBaseID: 2, DocumentID: 20, DocumentTitle: "doc-2"},
|
||||
})
|
||||
collector.AddRetrieverItems(nil)
|
||||
|
||||
if got := len(collector.Data.Retriever.Items); got != 2 {
|
||||
t.Fatalf("expected two retriever items, got %d", got)
|
||||
}
|
||||
if collector.Data.Retriever.Items[0].DocumentTitle != "doc-1" || collector.Data.Retriever.Items[1].DocumentTitle != "doc-2" {
|
||||
t.Fatalf("unexpected retriever items: %#v", collector.Data.Retriever.Items)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user