|
|
|
|
|
|
|
|
from werkzeug.exceptions import Forbidden, InternalServerError, NotFound |
|
|
from werkzeug.exceptions import Forbidden, InternalServerError, NotFound |
|
|
|
|
|
|
|
|
import services |
|
|
import services |
|
|
from controllers.console import api |
|
|
|
|
|
|
|
|
from controllers.console import console_ns |
|
|
from controllers.console.app.error import ( |
|
|
from controllers.console.app.error import ( |
|
|
ConversationCompletedError, |
|
|
ConversationCompletedError, |
|
|
DraftWorkflowNotExist, |
|
|
DraftWorkflowNotExist, |
|
|
|
|
|
|
|
|
logger = logging.getLogger(__name__) |
|
|
logger = logging.getLogger(__name__) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@console_ns.route("/rag/pipelines/<uuid:pipeline_id>/workflows/draft") |
|
|
class DraftRagPipelineApi(Resource): |
|
|
class DraftRagPipelineApi(Resource): |
|
|
@setup_required |
|
|
@setup_required |
|
|
@login_required |
|
|
@login_required |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@console_ns.route("/rag/pipelines/<uuid:pipeline_id>/workflows/draft/iteration/nodes/<string:node_id>/run") |
|
|
class RagPipelineDraftRunIterationNodeApi(Resource): |
|
|
class RagPipelineDraftRunIterationNodeApi(Resource): |
|
|
@setup_required |
|
|
@setup_required |
|
|
@login_required |
|
|
@login_required |
|
|
|
|
|
|
|
|
raise InternalServerError() |
|
|
raise InternalServerError() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@console_ns.route("/rag/pipelines/<uuid:pipeline_id>/workflows/draft/loop/nodes/<string:node_id>/run") |
|
|
class RagPipelineDraftRunLoopNodeApi(Resource): |
|
|
class RagPipelineDraftRunLoopNodeApi(Resource): |
|
|
@setup_required |
|
|
@setup_required |
|
|
@login_required |
|
|
@login_required |
|
|
|
|
|
|
|
|
raise InternalServerError() |
|
|
raise InternalServerError() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@console_ns.route("/rag/pipelines/<uuid:pipeline_id>/workflows/draft/run") |
|
|
class DraftRagPipelineRunApi(Resource): |
|
|
class DraftRagPipelineRunApi(Resource): |
|
|
@setup_required |
|
|
@setup_required |
|
|
@login_required |
|
|
@login_required |
|
|
|
|
|
|
|
|
raise InvokeRateLimitHttpError(ex.description) |
|
|
raise InvokeRateLimitHttpError(ex.description) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@console_ns.route("/rag/pipelines/<uuid:pipeline_id>/workflows/published/run") |
|
|
class PublishedRagPipelineRunApi(Resource): |
|
|
class PublishedRagPipelineRunApi(Resource): |
|
|
@setup_required |
|
|
@setup_required |
|
|
@login_required |
|
|
@login_required |
|
|
|
|
|
|
|
|
# |
|
|
# |
|
|
# return result |
|
|
# return result |
|
|
# |
|
|
# |
|
|
|
|
|
@console_ns.route("/rag/pipelines/<uuid:pipeline_id>/workflows/published/datasource/nodes/<string:node_id>/run") |
|
|
class RagPipelinePublishedDatasourceNodeRunApi(Resource): |
|
|
class RagPipelinePublishedDatasourceNodeRunApi(Resource): |
|
|
@setup_required |
|
|
@setup_required |
|
|
@login_required |
|
|
@login_required |
|
|
|
|
|
|
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@console_ns.route("/rag/pipelines/<uuid:pipeline_id>/workflows/draft/datasource/nodes/<string:node_id>/run") |
|
|
class RagPipelineDraftDatasourceNodeRunApi(Resource): |
|
|
class RagPipelineDraftDatasourceNodeRunApi(Resource): |
|
|
@setup_required |
|
|
@setup_required |
|
|
@login_required |
|
|
@login_required |
|
|
|
|
|
|
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@console_ns.route("/rag/pipelines/<uuid:pipeline_id>/workflows/draft/nodes/<string:node_id>/run") |
|
|
class RagPipelineDraftNodeRunApi(Resource): |
|
|
class RagPipelineDraftNodeRunApi(Resource): |
|
|
@setup_required |
|
|
@setup_required |
|
|
@login_required |
|
|
@login_required |
|
|
|
|
|
|
|
|
return workflow_node_execution |
|
|
return workflow_node_execution |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@console_ns.route("/rag/pipelines/<uuid:pipeline_id>/workflow-runs/tasks/<string:task_id>/stop") |
|
|
class RagPipelineTaskStopApi(Resource): |
|
|
class RagPipelineTaskStopApi(Resource): |
|
|
@setup_required |
|
|
@setup_required |
|
|
@login_required |
|
|
@login_required |
|
|
|
|
|
|
|
|
return {"result": "success"} |
|
|
return {"result": "success"} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@console_ns.route("/rag/pipelines/<uuid:pipeline_id>/workflows/publish") |
|
|
class PublishedRagPipelineApi(Resource): |
|
|
class PublishedRagPipelineApi(Resource): |
|
|
@setup_required |
|
|
@setup_required |
|
|
@login_required |
|
|
@login_required |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@console_ns.route("/rag/pipelines/<uuid:pipeline_id>/workflows/default-workflow-block-configs") |
|
|
class DefaultRagPipelineBlockConfigsApi(Resource): |
|
|
class DefaultRagPipelineBlockConfigsApi(Resource): |
|
|
@setup_required |
|
|
@setup_required |
|
|
@login_required |
|
|
@login_required |
|
|
|
|
|
|
|
|
return rag_pipeline_service.get_default_block_configs() |
|
|
return rag_pipeline_service.get_default_block_configs() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@console_ns.route("/rag/pipelines/<uuid:pipeline_id>/workflows/default-workflow-block-configs/<string:block_type>") |
|
|
class DefaultRagPipelineBlockConfigApi(Resource): |
|
|
class DefaultRagPipelineBlockConfigApi(Resource): |
|
|
@setup_required |
|
|
@setup_required |
|
|
@login_required |
|
|
@login_required |
|
|
|
|
|
|
|
|
return rag_pipeline_service.get_default_block_config(node_type=block_type, filters=filters) |
|
|
return rag_pipeline_service.get_default_block_config(node_type=block_type, filters=filters) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@console_ns.route("/rag/pipelines/<uuid:pipeline_id>/workflows") |
|
|
class PublishedAllRagPipelineApi(Resource): |
|
|
class PublishedAllRagPipelineApi(Resource): |
|
|
@setup_required |
|
|
@setup_required |
|
|
@login_required |
|
|
@login_required |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@console_ns.route("/rag/pipelines/<uuid:pipeline_id>/workflows/<string:workflow_id>") |
|
|
class RagPipelineByIdApi(Resource): |
|
|
class RagPipelineByIdApi(Resource): |
|
|
@setup_required |
|
|
@setup_required |
|
|
@login_required |
|
|
@login_required |
|
|
|
|
|
|
|
|
return workflow |
|
|
return workflow |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@console_ns.route("/rag/pipelines/<uuid:pipeline_id>/workflows/published/processing/parameters") |
|
|
class PublishedRagPipelineSecondStepApi(Resource): |
|
|
class PublishedRagPipelineSecondStepApi(Resource): |
|
|
@setup_required |
|
|
@setup_required |
|
|
@login_required |
|
|
@login_required |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@console_ns.route("/rag/pipelines/<uuid:pipeline_id>/workflows/published/pre-processing/parameters") |
|
|
class PublishedRagPipelineFirstStepApi(Resource): |
|
|
class PublishedRagPipelineFirstStepApi(Resource): |
|
|
@setup_required |
|
|
@setup_required |
|
|
@login_required |
|
|
@login_required |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@console_ns.route("/rag/pipelines/<uuid:pipeline_id>/workflows/draft/pre-processing/parameters") |
|
|
class DraftRagPipelineFirstStepApi(Resource): |
|
|
class DraftRagPipelineFirstStepApi(Resource): |
|
|
@setup_required |
|
|
@setup_required |
|
|
@login_required |
|
|
@login_required |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@console_ns.route("/rag/pipelines/<uuid:pipeline_id>/workflows/draft/processing/parameters") |
|
|
class DraftRagPipelineSecondStepApi(Resource): |
|
|
class DraftRagPipelineSecondStepApi(Resource): |
|
|
@setup_required |
|
|
@setup_required |
|
|
@login_required |
|
|
@login_required |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@console_ns.route("/rag/pipelines/<uuid:pipeline_id>/workflow-runs") |
|
|
class RagPipelineWorkflowRunListApi(Resource): |
|
|
class RagPipelineWorkflowRunListApi(Resource): |
|
|
@setup_required |
|
|
@setup_required |
|
|
@login_required |
|
|
@login_required |
|
|
|
|
|
|
|
|
return result |
|
|
return result |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@console_ns.route("/rag/pipelines/<uuid:pipeline_id>/workflow-runs/<uuid:run_id>") |
|
|
class RagPipelineWorkflowRunDetailApi(Resource): |
|
|
class RagPipelineWorkflowRunDetailApi(Resource): |
|
|
@setup_required |
|
|
@setup_required |
|
|
@login_required |
|
|
@login_required |
|
|
|
|
|
|
|
|
return workflow_run |
|
|
return workflow_run |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@console_ns.route("/rag/pipelines/<uuid:pipeline_id>/workflow-runs/<uuid:run_id>/node-executions") |
|
|
class RagPipelineWorkflowRunNodeExecutionListApi(Resource): |
|
|
class RagPipelineWorkflowRunNodeExecutionListApi(Resource): |
|
|
@setup_required |
|
|
@setup_required |
|
|
@login_required |
|
|
@login_required |
|
|
|
|
|
|
|
|
return {"data": node_executions} |
|
|
return {"data": node_executions} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@console_ns.route("/rag/pipelines/datasource-plugins") |
|
|
class DatasourceListApi(Resource): |
|
|
class DatasourceListApi(Resource): |
|
|
@setup_required |
|
|
@setup_required |
|
|
@login_required |
|
|
@login_required |
|
|
|
|
|
|
|
|
return jsonable_encoder(RagPipelineManageService.list_rag_pipeline_datasources(tenant_id)) |
|
|
return jsonable_encoder(RagPipelineManageService.list_rag_pipeline_datasources(tenant_id)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@console_ns.route("/rag/pipelines/<uuid:pipeline_id>/workflows/draft/nodes/<string:node_id>/last-run") |
|
|
class RagPipelineWorkflowLastRunApi(Resource): |
|
|
class RagPipelineWorkflowLastRunApi(Resource): |
|
|
@setup_required |
|
|
@setup_required |
|
|
@login_required |
|
|
@login_required |
|
|
|
|
|
|
|
|
return node_exec |
|
|
return node_exec |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@console_ns.route("/rag/pipelines/transform/datasets/<uuid:dataset_id>") |
|
|
class RagPipelineTransformApi(Resource): |
|
|
class RagPipelineTransformApi(Resource): |
|
|
@setup_required |
|
|
@setup_required |
|
|
@login_required |
|
|
@login_required |
|
|
|
|
|
|
|
|
return result |
|
|
return result |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@console_ns.route("/rag/pipelines/<uuid:pipeline_id>/workflows/draft/datasource/variables-inspect") |
|
|
class RagPipelineDatasourceVariableApi(Resource): |
|
|
class RagPipelineDatasourceVariableApi(Resource): |
|
|
@setup_required |
|
|
@setup_required |
|
|
@login_required |
|
|
@login_required |
|
|
|
|
|
|
|
|
return workflow_node_execution |
|
|
return workflow_node_execution |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@console_ns.route("/rag/pipelines/recommended-plugins") |
|
|
class RagPipelineRecommendedPluginApi(Resource): |
|
|
class RagPipelineRecommendedPluginApi(Resource): |
|
|
@setup_required |
|
|
@setup_required |
|
|
@login_required |
|
|
@login_required |
|
|
|
|
|
|
|
|
rag_pipeline_service = RagPipelineService() |
|
|
rag_pipeline_service = RagPipelineService() |
|
|
recommended_plugins = rag_pipeline_service.get_recommended_plugins() |
|
|
recommended_plugins = rag_pipeline_service.get_recommended_plugins() |
|
|
return recommended_plugins |
|
|
return recommended_plugins |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
api.add_resource( |
|
|
|
|
|
DraftRagPipelineApi, |
|
|
|
|
|
"/rag/pipelines/<uuid:pipeline_id>/workflows/draft", |
|
|
|
|
|
) |
|
|
|
|
|
api.add_resource( |
|
|
|
|
|
DraftRagPipelineRunApi, |
|
|
|
|
|
"/rag/pipelines/<uuid:pipeline_id>/workflows/draft/run", |
|
|
|
|
|
) |
|
|
|
|
|
api.add_resource( |
|
|
|
|
|
PublishedRagPipelineRunApi, |
|
|
|
|
|
"/rag/pipelines/<uuid:pipeline_id>/workflows/published/run", |
|
|
|
|
|
) |
|
|
|
|
|
api.add_resource( |
|
|
|
|
|
RagPipelineTaskStopApi, |
|
|
|
|
|
"/rag/pipelines/<uuid:pipeline_id>/workflow-runs/tasks/<string:task_id>/stop", |
|
|
|
|
|
) |
|
|
|
|
|
api.add_resource( |
|
|
|
|
|
RagPipelineDraftNodeRunApi, |
|
|
|
|
|
"/rag/pipelines/<uuid:pipeline_id>/workflows/draft/nodes/<string:node_id>/run", |
|
|
|
|
|
) |
|
|
|
|
|
api.add_resource( |
|
|
|
|
|
RagPipelinePublishedDatasourceNodeRunApi, |
|
|
|
|
|
"/rag/pipelines/<uuid:pipeline_id>/workflows/published/datasource/nodes/<string:node_id>/run", |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
api.add_resource( |
|
|
|
|
|
RagPipelineDraftDatasourceNodeRunApi, |
|
|
|
|
|
"/rag/pipelines/<uuid:pipeline_id>/workflows/draft/datasource/nodes/<string:node_id>/run", |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
api.add_resource( |
|
|
|
|
|
RagPipelineDraftRunIterationNodeApi, |
|
|
|
|
|
"/rag/pipelines/<uuid:pipeline_id>/workflows/draft/iteration/nodes/<string:node_id>/run", |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
api.add_resource( |
|
|
|
|
|
RagPipelineDraftRunLoopNodeApi, |
|
|
|
|
|
"/rag/pipelines/<uuid:pipeline_id>/workflows/draft/loop/nodes/<string:node_id>/run", |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
api.add_resource( |
|
|
|
|
|
PublishedRagPipelineApi, |
|
|
|
|
|
"/rag/pipelines/<uuid:pipeline_id>/workflows/publish", |
|
|
|
|
|
) |
|
|
|
|
|
api.add_resource( |
|
|
|
|
|
PublishedAllRagPipelineApi, |
|
|
|
|
|
"/rag/pipelines/<uuid:pipeline_id>/workflows", |
|
|
|
|
|
) |
|
|
|
|
|
api.add_resource( |
|
|
|
|
|
DefaultRagPipelineBlockConfigsApi, |
|
|
|
|
|
"/rag/pipelines/<uuid:pipeline_id>/workflows/default-workflow-block-configs", |
|
|
|
|
|
) |
|
|
|
|
|
api.add_resource( |
|
|
|
|
|
DefaultRagPipelineBlockConfigApi, |
|
|
|
|
|
"/rag/pipelines/<uuid:pipeline_id>/workflows/default-workflow-block-configs/<string:block_type>", |
|
|
|
|
|
) |
|
|
|
|
|
api.add_resource( |
|
|
|
|
|
RagPipelineByIdApi, |
|
|
|
|
|
"/rag/pipelines/<uuid:pipeline_id>/workflows/<string:workflow_id>", |
|
|
|
|
|
) |
|
|
|
|
|
api.add_resource( |
|
|
|
|
|
RagPipelineWorkflowRunListApi, |
|
|
|
|
|
"/rag/pipelines/<uuid:pipeline_id>/workflow-runs", |
|
|
|
|
|
) |
|
|
|
|
|
api.add_resource( |
|
|
|
|
|
RagPipelineWorkflowRunDetailApi, |
|
|
|
|
|
"/rag/pipelines/<uuid:pipeline_id>/workflow-runs/<uuid:run_id>", |
|
|
|
|
|
) |
|
|
|
|
|
api.add_resource( |
|
|
|
|
|
RagPipelineWorkflowRunNodeExecutionListApi, |
|
|
|
|
|
"/rag/pipelines/<uuid:pipeline_id>/workflow-runs/<uuid:run_id>/node-executions", |
|
|
|
|
|
) |
|
|
|
|
|
api.add_resource( |
|
|
|
|
|
DatasourceListApi, |
|
|
|
|
|
"/rag/pipelines/datasource-plugins", |
|
|
|
|
|
) |
|
|
|
|
|
api.add_resource( |
|
|
|
|
|
PublishedRagPipelineSecondStepApi, |
|
|
|
|
|
"/rag/pipelines/<uuid:pipeline_id>/workflows/published/processing/parameters", |
|
|
|
|
|
) |
|
|
|
|
|
api.add_resource( |
|
|
|
|
|
PublishedRagPipelineFirstStepApi, |
|
|
|
|
|
"/rag/pipelines/<uuid:pipeline_id>/workflows/published/pre-processing/parameters", |
|
|
|
|
|
) |
|
|
|
|
|
api.add_resource( |
|
|
|
|
|
DraftRagPipelineSecondStepApi, |
|
|
|
|
|
"/rag/pipelines/<uuid:pipeline_id>/workflows/draft/processing/parameters", |
|
|
|
|
|
) |
|
|
|
|
|
api.add_resource( |
|
|
|
|
|
DraftRagPipelineFirstStepApi, |
|
|
|
|
|
"/rag/pipelines/<uuid:pipeline_id>/workflows/draft/pre-processing/parameters", |
|
|
|
|
|
) |
|
|
|
|
|
api.add_resource( |
|
|
|
|
|
RagPipelineWorkflowLastRunApi, |
|
|
|
|
|
"/rag/pipelines/<uuid:pipeline_id>/workflows/draft/nodes/<string:node_id>/last-run", |
|
|
|
|
|
) |
|
|
|
|
|
api.add_resource( |
|
|
|
|
|
RagPipelineTransformApi, |
|
|
|
|
|
"/rag/pipelines/transform/datasets/<uuid:dataset_id>", |
|
|
|
|
|
) |
|
|
|
|
|
api.add_resource( |
|
|
|
|
|
RagPipelineDatasourceVariableApi, |
|
|
|
|
|
"/rag/pipelines/<uuid:pipeline_id>/workflows/draft/datasource/variables-inspect", |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
api.add_resource( |
|
|
|
|
|
RagPipelineRecommendedPluginApi, |
|
|
|
|
|
"/rag/pipelines/recommended-plugins", |
|
|
|
|
|
) |
|
|
|