diff --git a/api/controllers/console/datasets/datasets_document.py b/api/controllers/console/datasets/datasets_document.py index 242ce9e3ee..f36573ebd1 100644 --- a/api/controllers/console/datasets/datasets_document.py +++ b/api/controllers/console/datasets/datasets_document.py @@ -1462,9 +1462,6 @@ class DocumentSummaryStatusApi(DocumentResource): dataset_id = str(dataset_id) document_id = str(document_id) - # Get document - document = self.get_document(dataset_id, document_id) - # Get dataset dataset = DatasetService.get_dataset(dataset_id) if not dataset: diff --git a/api/controllers/console/datasets/datasets_segments.py b/api/controllers/console/datasets/datasets_segments.py index 77d0c94be1..c88cf1f71d 100644 --- a/api/controllers/console/datasets/datasets_segments.py +++ b/api/controllers/console/datasets/datasets_segments.py @@ -43,7 +43,7 @@ from tasks.batch_create_segment_to_index_task import batch_create_segment_to_ind def _get_segment_with_summary(segment, dataset_id): """Helper function to marshal segment and add summary information.""" - segment_dict = marshal(segment, segment_fields) + segment_dict = dict(marshal(segment, segment_fields)) # Query summary for this segment (only enabled summaries) summary = ( db.session.query(DocumentSegmentSummary) @@ -219,7 +219,7 @@ class DatasetDocumentSegmentListApi(Resource): # Add summary to each segment segments_with_summary = [] for segment in segments.items: - segment_dict = marshal(segment, segment_fields) + segment_dict = dict(marshal(segment, segment_fields)) segment_dict["summary"] = summaries.get(segment.id) segments_with_summary.append(segment_dict) diff --git a/api/core/workflow/nodes/knowledge_index/knowledge_index_node.py b/api/core/workflow/nodes/knowledge_index/knowledge_index_node.py index abc2575600..b88c2d510f 100644 --- a/api/core/workflow/nodes/knowledge_index/knowledge_index_node.py +++ b/api/core/workflow/nodes/knowledge_index/knowledge_index_node.py @@ -229,9 +229,6 @@ class KnowledgeIndexNode(Node[KnowledgeIndexNodeData]): invoke_from = variable_pool.get(["sys", SystemVariableKey.INVOKE_FROM]) is_preview = invoke_from and invoke_from.value == InvokeFrom.DEBUGGER - # Determine if only parent chunks should be processed - only_parent_chunks = dataset.chunk_structure == "parent_child_index" - if is_preview: try: # Query segments that need summary generation diff --git a/api/services/summary_index_service.py b/api/services/summary_index_service.py index e59ba4c378..2ac6f10d29 100644 --- a/api/services/summary_index_service.py +++ b/api/services/summary_index_service.py @@ -216,7 +216,7 @@ class SummaryIndexService: db.session.add(summary_record) db.session.flush() # Success, exit function - return + return except (ConnectionError, Exception) as e: error_str = str(e).lower() @@ -333,7 +333,9 @@ class SummaryIndexService: error: Error message """ summary_record = ( - db.session.query(DocumentSegmentSummary).filter_by(chunk_id=segment.id, dataset_id=dataset.id).first() + db.session.query(DocumentSegmentSummary) + .filter_by(chunk_id=segment.id, dataset_id=dataset.id) + .first() ) if summary_record: @@ -342,7 +344,9 @@ class SummaryIndexService: db.session.add(summary_record) db.session.flush() else: - logger.warning("Summary record not found for segment %s when updating error", segment.id) + logger.warning( + "Summary record not found for segment %s when updating error", segment.id + ) @staticmethod def generate_and_vectorize_summary( @@ -367,12 +371,16 @@ class SummaryIndexService: """ # Get existing summary record (should have been created by batch_create_summary_records) summary_record = ( - db.session.query(DocumentSegmentSummary).filter_by(chunk_id=segment.id, dataset_id=dataset.id).first() + db.session.query(DocumentSegmentSummary) + .filter_by(chunk_id=segment.id, dataset_id=dataset.id) + .first() ) if not summary_record: # If not found (shouldn't happen), create one - logger.warning("Summary record not found for segment %s, creating one", segment.id) + logger.warning( + "Summary record not found for segment %s, creating one", segment.id + ) summary_record = SummaryIndexService.create_summary_record( segment, dataset, summary_content="", status="generating" ) @@ -804,7 +812,7 @@ class SummaryIndexService: logger.info("Successfully created and vectorized summary for segment %s", segment.id) return summary_record - except Exception: + except Exception as e: logger.exception("Failed to update summary for segment %s", segment.id) # Update summary record with error status if it exists summary_record = ( diff --git a/api/tasks/generate_summary_index_task.py b/api/tasks/generate_summary_index_task.py index 99f957abaa..b0efd1d976 100644 --- a/api/tasks/generate_summary_index_task.py +++ b/api/tasks/generate_summary_index_task.py @@ -94,7 +94,7 @@ def generate_summary_index_task(dataset_id: str, document_id: str, segment_ids: ) ) - except Exception: + except Exception as e: logger.exception("Failed to generate summary index for document %s", document_id) # Update document segments with error status if needed if segment_ids: diff --git a/api/tasks/regenerate_summary_index_task.py b/api/tasks/regenerate_summary_index_task.py index 2c688652d2..f746036404 100644 --- a/api/tasks/regenerate_summary_index_task.py +++ b/api/tasks/regenerate_summary_index_task.py @@ -245,6 +245,7 @@ def regenerate_summary_index_task( ) for segment in segments: + summary_record = None try: # Get existing summary record summary_record = (