INNER CODE UNIT · Python
simple_format_response_and_sources
wzdavid/ThinkRAG · frontend/Document_QA.py:24
def simple_format_response_and_sources(response):
primary_response = getattr(response, 'response', '')
output = {"response": primary_response}
sources = []
if hasattr(response, 'source_nodes'):
for node in response.source_nodes:
node_data = getattr(node, 'node', None)
if node_data:
metadata = getattr(node_data, 'metadata', {})
text = getattr(node_data, 'text', '')
text = re.sub(r'\n\n|\n|\u2028', lambda m: {'\n\n': '\u2028', '\n': ' ', '\u2028': '\n\n'}[m.group()], text)
source_info = {
"file": metadata.get('file_name', 'N/A'),
"page": metadata.get('page_label', 'N/A'),
"text": text
}
sources.append(source_info)
output['sources'] = sources