Merge branch 'feat/r2' into deploy/rag-dev

This commit is contained in:
jyong 2025-06-11 11:21:37 +08:00
commit be92122f17

View File

@ -13,6 +13,7 @@ from sqlalchemy.orm import Session
import contexts import contexts
from configs import dify_config from configs import dify_config
from core.app.entities.app_invoke_entities import InvokeFrom
from core.datasource.entities.datasource_entities import ( from core.datasource.entities.datasource_entities import (
DatasourceProviderType, DatasourceProviderType,
GetOnlineDocumentPagesResponse, GetOnlineDocumentPagesResponse,
@ -28,6 +29,7 @@ from core.workflow.entities.workflow_node_execution import (
WorkflowNodeExecution, WorkflowNodeExecution,
WorkflowNodeExecutionStatus, WorkflowNodeExecutionStatus,
) )
from core.workflow.enums import SystemVariableKey
from core.workflow.errors import WorkflowNodeRunFailedError from core.workflow.errors import WorkflowNodeRunFailedError
from core.workflow.graph_engine.entities.event import InNodeEvent from core.workflow.graph_engine.entities.event import InNodeEvent
from core.workflow.nodes.base.node import BaseNode from core.workflow.nodes.base.node import BaseNode
@ -40,7 +42,7 @@ from core.workflow.workflow_entry import WorkflowEntry
from extensions.ext_database import db from extensions.ext_database import db
from libs.infinite_scroll_pagination import InfiniteScrollPagination from libs.infinite_scroll_pagination import InfiniteScrollPagination
from models.account import Account from models.account import Account
from models.dataset import Pipeline, PipelineCustomizedTemplate # type: ignore from models.dataset import Document, Pipeline, PipelineCustomizedTemplate # type: ignore
from models.enums import CreatorUserRole, WorkflowRunTriggeredFrom from models.enums import CreatorUserRole, WorkflowRunTriggeredFrom
from models.model import EndUser from models.model import EndUser
from models.oauth import DatasourceProvider from models.oauth import DatasourceProvider
@ -102,7 +104,7 @@ class RagPipelineService:
:param template_info: template info :param template_info: template info
""" """
customized_template: PipelineCustomizedTemplate | None = ( customized_template: PipelineCustomizedTemplate | None = (
db.query(PipelineCustomizedTemplate) db.session.query(PipelineCustomizedTemplate)
.filter( .filter(
PipelineCustomizedTemplate.id == template_id, PipelineCustomizedTemplate.id == template_id,
PipelineCustomizedTemplate.tenant_id == current_user.current_tenant_id, PipelineCustomizedTemplate.tenant_id == current_user.current_tenant_id,
@ -114,7 +116,7 @@ class RagPipelineService:
customized_template.name = template_info.name customized_template.name = template_info.name
customized_template.description = template_info.description customized_template.description = template_info.description
customized_template.icon = template_info.icon_info.model_dump() customized_template.icon = template_info.icon_info.model_dump()
db.commit() db.session.commit()
return customized_template return customized_template
@classmethod @classmethod
@ -678,6 +680,20 @@ class RagPipelineService:
# create workflow node execution # create workflow node execution
workflow_node_execution.status = WorkflowNodeExecutionStatus.FAILED workflow_node_execution.status = WorkflowNodeExecutionStatus.FAILED
workflow_node_execution.error = error workflow_node_execution.error = error
# update document status
variable_pool = node_instance.graph_runtime_state.variable_pool
invoke_from = variable_pool.get(["sys", SystemVariableKey.INVOKE_FROM])
if invoke_from:
if invoke_from.value == InvokeFrom.PUBLISHED.value:
document_id = variable_pool.get(["sys", SystemVariableKey.DOCUMENT_ID])
if document_id:
document = db.session.query(Document).filter(Document.id == document_id.value).first()
if document:
document.indexing_status = "error"
document.error = error
db.session.add(document)
db.session.commit()
return workflow_node_execution return workflow_node_execution