The retrieval component needs to support returning JSON data(#10170) (#10171)

### What problem does this PR solve?

### Type of change

- [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
Wilmer
2025-09-22 17:28:29 +08:00
committed by GitHub
parent da80fa40bc
commit c8b79dfed4
5 changed files with 23 additions and 0 deletions

View File

@ -163,9 +163,16 @@ class Retrieval(ToolBase, ABC):
self.set_output("formalized_content", self._param.empty_response)
return
# Format the chunks for JSON output (similar to how other tools do it)
json_output = kbinfos["chunks"].copy()
self._canvas.add_reference(kbinfos["chunks"], kbinfos["doc_aggs"])
form_cnt = "\n".join(kb_prompt(kbinfos, 200000, True))
# Set both formalized content and JSON output
self.set_output("formalized_content", form_cnt)
self.set_output("json", json_output)
return form_cnt
def thoughts(self) -> str:

View File

@ -263,6 +263,10 @@ export const initialRetrievalValues = {
type: 'string',
value: '',
},
json: {
type: 'Array<Object>',
value: [],
},
},
};

View File

@ -83,6 +83,10 @@ function RetrievalForm({ node }: INextOperatorForm) {
title: 'formalized_content',
type: initialRetrievalValues.outputs.formalized_content.type,
},
{
title: 'json',
type: initialRetrievalValues.outputs.json.type,
},
];
}, []);

View File

@ -133,6 +133,10 @@ export const initialRetrievalValues = {
type: 'string',
value: '',
},
json: {
type: 'Array<Object>',
value: [],
},
},
};

View File

@ -83,6 +83,10 @@ function RetrievalForm({ node }: INextOperatorForm) {
title: 'formalized_content',
type: initialRetrievalValues.outputs.formalized_content.type,
},
{
title: 'json',
type: initialRetrievalValues.outputs.json.type,
},
];
}, []);