diff --git a/api/core/indexing_runner.py b/api/core/indexing_runner.py index cce96e36d3..130884679b 100644 --- a/api/core/indexing_runner.py +++ b/api/core/indexing_runner.py @@ -661,7 +661,7 @@ class IndexingRunner: # create keyword index create_keyword_thread = threading.Thread(target=self._process_keyword_index, args=(current_app._get_current_object(), - dataset, dataset_document, documents)) + dataset.id, dataset_document.id, documents)) create_keyword_thread.start() if dataset.indexing_technique == 'high_quality': with concurrent.futures.ThreadPoolExecutor(max_workers=10) as executor: @@ -690,14 +690,17 @@ class IndexingRunner: } ) - def _process_keyword_index(self, flask_app, dataset, dataset_document, documents): + def _process_keyword_index(self, flask_app, dataset_id, document_id, documents): with flask_app.app_context(): + dataset = Dataset.query.filter_by(id=dataset_id).first() + if not dataset: + raise ValueError("no dataset found") keyword = Keyword(dataset) keyword.create(documents) if dataset.indexing_technique != 'high_quality': document_ids = [document.metadata['doc_id'] for document in documents] db.session.query(DocumentSegment).filter( - DocumentSegment.document_id == dataset_document.id, + DocumentSegment.document_id == document_id, DocumentSegment.index_node_id.in_(document_ids), DocumentSegment.status == "indexing" ).update({ diff --git a/api/core/workflow/nodes/question_classifier/question_classifier_node.py b/api/core/workflow/nodes/question_classifier/question_classifier_node.py index 751aac011a..882a115acc 100644 --- a/api/core/workflow/nodes/question_classifier/question_classifier_node.py +++ b/api/core/workflow/nodes/question_classifier/question_classifier_node.py @@ -65,7 +65,9 @@ class QuestionClassifierNode(LLMNode): categories = [_class.name for _class in node_data.classes] try: result_text_json = json.loads(result_text.strip('```JSON\n')) - categories = result_text_json.get('categories', []) + categories_result = result_text_json.get('categories', []) + if categories_result: + categories = categories_result except Exception: logging.error(f"Failed to parse result text: {result_text}") try: