Files
dify/api/services/knowledge_fs/service_api_source_payloads.py
fd2db63184 feat: KnowledgeFS and New Knowledge (#44165)
Co-authored-by: Jyong <76649700+JohnJyong@users.noreply.github.com>
Co-authored-by: hjlarry <hjlarry@163.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: zhaohao1004 <zhaohao1004@gmail.com>
Co-authored-by: yyh <yuanyouhuilyz@gmail.com>
Co-authored-by: FFXN <lizy@dify.ai>
2026-10-23 03:34:59 +00:00

44 lines
1.7 KiB
Python

"""Adapt legacy public import coordinates to the durable Source workflow contract."""
import json
from services.knowledge_fs.product_dto import (
KnowledgeFSOnlineDocumentWorkflowImportItemPayload,
KnowledgeFSOnlineDocumentWorkflowImportPayload,
KnowledgeFSOnlineDriveWorkflowImportItemPayload,
KnowledgeFSOnlineDriveWorkflowImportPayload,
KnowledgeFSSourceImportFilesPayload,
KnowledgeFSSourceImportPagesPayload,
KnowledgeFSSourceWorkflowImportPayload,
)
def durable_page_import(payload: KnowledgeFSSourceImportPagesPayload) -> KnowledgeFSSourceWorkflowImportPayload:
return KnowledgeFSSourceWorkflowImportPayload(
KnowledgeFSOnlineDocumentWorkflowImportPayload(
kind="online-document-import",
items=[
KnowledgeFSOnlineDocumentWorkflowImportItemPayload(
**page.model_dump(mode="json", by_alias=True, exclude_none=True),
providerItemId=json.dumps([page.workspace_id, page.page_id], separators=(",", ":")),
)
for page in payload.pages
],
)
)
def durable_file_import(payload: KnowledgeFSSourceImportFilesPayload) -> KnowledgeFSSourceWorkflowImportPayload:
return KnowledgeFSSourceWorkflowImportPayload(
KnowledgeFSOnlineDriveWorkflowImportPayload(
kind="online-drive-import",
items=[
KnowledgeFSOnlineDriveWorkflowImportItemPayload(
**file.model_dump(mode="json", by_alias=True, exclude_none=True),
providerItemId=json.dumps([file.bucket or "", file.id], separators=(",", ":")),
)
for file in payload.files
],
)
)