diff --git a/api/services/rag_pipeline/rag_pipeline_transform_service.py b/api/services/rag_pipeline/rag_pipeline_transform_service.py index 08a5d5658b..6b0a7b36bb 100644 --- a/api/services/rag_pipeline/rag_pipeline_transform_service.py +++ b/api/services/rag_pipeline/rag_pipeline_transform_service.py @@ -32,9 +32,11 @@ class RagPipelineTransformService: indexing_technique = dataset.indexing_technique if not datasource_type and not indexing_technique: + self._transfrom_to_empty_pipeline(dataset) return doc_form = dataset.doc_form if not doc_form: + self._transfrom_to_empty_pipeline(dataset) return retrieval_model = dataset.retrieval_model pipeline_yaml = self._get_transform_yaml(doc_form, datasource_type, indexing_technique) @@ -262,3 +264,21 @@ class RagPipelineTransformService: for identifier in need_install_plugin_unique_identifiers ], ) + + def _transfrom_to_empty_pipeline(self, dataset: Dataset): + + pipeline = Pipeline( + tenant_id=dataset.tenant_id, + name=dataset.name, + description=dataset.description, + created_by=current_user.id, + ) + db.session.add(pipeline) + db.session.flush() + + dataset.pipeline_id = pipeline.id + dataset.runtime_mode = "rag_pipeline" + dataset.updated_by = current_user.id + dataset.updated_at = datetime.now(UTC).replace(tzinfo=None) + db.session.add(dataset) + db.session.commit() \ No newline at end of file