|
|
|
|
@ -16,6 +16,7 @@ from factories import variable_factory
|
|
|
|
|
from models.dataset import Dataset, Pipeline
|
|
|
|
|
from models.workflow import Workflow, WorkflowType
|
|
|
|
|
from services.entities.knowledge_entities.rag_pipeline_entities import KnowledgeConfiguration, RetrievalSetting
|
|
|
|
|
from services.plugin.plugin_migration import PluginMigration
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class RagPipelineTransformService:
|
|
|
|
|
@ -234,6 +235,8 @@ class RagPipelineTransformService:
|
|
|
|
|
|
|
|
|
|
datasource_manager = PluginDatasourceManager()
|
|
|
|
|
|
|
|
|
|
plugin_migration = PluginMigration()
|
|
|
|
|
|
|
|
|
|
tool_manager = ToolManager()
|
|
|
|
|
|
|
|
|
|
installed_plugins_ids = [plugin.plugin_id for plugin in installed_plugins]
|
|
|
|
|
@ -244,25 +247,28 @@ class RagPipelineTransformService:
|
|
|
|
|
plugin_unique_identifier = dependency.get("value", {}).get("plugin_unique_identifier")
|
|
|
|
|
plugin_id = plugin_unique_identifier.split(":")[0]
|
|
|
|
|
if plugin_id not in installed_plugins_ids:
|
|
|
|
|
if plugin_id == "langgenius/notion_datasource":
|
|
|
|
|
datasource = datasource_manager.fetch_datasource_provider(tenant_id, f"{plugin_id}/notion")
|
|
|
|
|
need_install_plugin_unique_identifiers.append(datasource.plugin_unique_identifier)
|
|
|
|
|
elif plugin_id == "langgenius/firecrawl_datasource":
|
|
|
|
|
datasource = datasource_manager.fetch_datasource_provider(tenant_id, f"{plugin_id}/firecrawl")
|
|
|
|
|
need_install_plugin_unique_identifiers.append(datasource.plugin_unique_identifier)
|
|
|
|
|
elif plugin_id == "langgenius/jina_datasource":
|
|
|
|
|
datasource = datasource_manager.fetch_datasource_provider(tenant_id, f"{plugin_id}/jina")
|
|
|
|
|
need_install_plugin_unique_identifiers.append(datasource.plugin_unique_identifier)
|
|
|
|
|
elif plugin_id == "langgenius/dify_extractor":
|
|
|
|
|
tool = tool_manager.get_plugin_provider(f"{plugin_id}/dify_extractor", tenant_id)
|
|
|
|
|
need_install_plugin_unique_identifiers.append(tool.plugin_unique_identifier)
|
|
|
|
|
elif plugin_id == "langgenius/general_chunk":
|
|
|
|
|
tool = tool_manager.get_plugin_provider(f"{plugin_id}/general_chunk", tenant_id)
|
|
|
|
|
need_install_plugin_unique_identifiers.append(tool.plugin_unique_identifier)
|
|
|
|
|
elif plugin_id == "langgenius/parent_child_chunk":
|
|
|
|
|
tool = tool_manager.get_plugin_provider(f"{plugin_id}/parent_child_chunk", tenant_id)
|
|
|
|
|
need_install_plugin_unique_identifiers.append(tool.plugin_unique_identifier)
|
|
|
|
|
dependency["value"]["current_identifier"] = plugin_unique_identifier
|
|
|
|
|
# if plugin_id == "langgenius/notion_datasource":
|
|
|
|
|
# datasource = plugin_migration._fetch_plugin_unique_identifier(f"{plugin_id}/notion")
|
|
|
|
|
# need_install_plugin_unique_identifiers.append(datasource.plugin_unique_identifier)
|
|
|
|
|
# elif plugin_id == "langgenius/firecrawl_datasource":
|
|
|
|
|
# datasource = datasource_manager.fetch_datasource_provider(tenant_id, f"{plugin_id}/firecrawl")
|
|
|
|
|
# need_install_plugin_unique_identifiers.append(datasource.plugin_unique_identifier)
|
|
|
|
|
# elif plugin_id == "langgenius/jina_datasource":
|
|
|
|
|
# datasource = datasource_manager.fetch_datasource_provider(tenant_id, f"{plugin_id}/jina")
|
|
|
|
|
# need_install_plugin_unique_identifiers.append(datasource.plugin_unique_identifier)
|
|
|
|
|
# elif plugin_id == "langgenius/dify_extractor":
|
|
|
|
|
# tool = tool_manager.get_plugin_provider(f"{plugin_id}/dify_extractor", tenant_id)
|
|
|
|
|
# need_install_plugin_unique_identifiers.append(tool.plugin_unique_identifier)
|
|
|
|
|
# elif plugin_id == "langgenius/general_chunker":
|
|
|
|
|
# tool = tool_manager.get_plugin_provider(f"{plugin_id}/general_chunker", tenant_id)
|
|
|
|
|
# need_install_plugin_unique_identifiers.append(tool.plugin_unique_identifier)
|
|
|
|
|
# elif plugin_id == "langgenius/parentchild_chunker":
|
|
|
|
|
# tool = tool_manager.get_plugin_provider(f"{plugin_id}/parentchild_chunker", tenant_id)
|
|
|
|
|
# need_install_plugin_unique_identifiers.append(tool.plugin_unique_identifier)
|
|
|
|
|
# dependency["value"]["current_identifier"] = plugin_unique_identifier
|
|
|
|
|
plugin_unique_identifier = plugin_migration._fetch_plugin_unique_identifier(plugin_id)
|
|
|
|
|
if plugin_unique_identifier:
|
|
|
|
|
need_install_plugin_unique_identifiers.append(plugin_unique_identifier)
|
|
|
|
|
if need_install_plugin_unique_identifiers:
|
|
|
|
|
installer_manager.install_from_identifiers(
|
|
|
|
|
tenant_id,
|
|
|
|
|
|