mirror of
https://github.com/langgenius/dify.git
synced 2026-05-03 08:58:09 +08:00
refactor: reorganize asset-related classes into entities module and remove unused skill and asset files
This commit is contained in:
@ -1,8 +1,6 @@
|
||||
from .assets import AssetItem, FileAsset
|
||||
from .packager import AssetPackager, ZipPackager
|
||||
from .parser import AssetItemParser, AssetParser, FileAssetParser, SkillAssetParser
|
||||
from .paths import AssetPaths
|
||||
from .skill import (
|
||||
from .entities import (
|
||||
AssetItem,
|
||||
FileAsset,
|
||||
FileReference,
|
||||
SkillAsset,
|
||||
SkillMetadata,
|
||||
@ -12,6 +10,9 @@ from .skill import (
|
||||
ToolReference,
|
||||
ToolType,
|
||||
)
|
||||
from .packager import AssetPackager, ZipPackager
|
||||
from .parser import AssetItemParser, AssetParser, FileAssetParser, SkillAssetParser
|
||||
from .paths import AssetPaths
|
||||
|
||||
__all__ = [
|
||||
"AssetItem",
|
||||
|
||||
24
api/core/app_assets/entities/__init__.py
Normal file
24
api/core/app_assets/entities/__init__.py
Normal file
@ -0,0 +1,24 @@
|
||||
from .assets import AssetItem, FileAsset
|
||||
from .skill import (
|
||||
FileReference,
|
||||
SkillAsset,
|
||||
SkillMetadata,
|
||||
ToolConfiguration,
|
||||
ToolDefinition,
|
||||
ToolFieldConfig,
|
||||
ToolReference,
|
||||
ToolType,
|
||||
)
|
||||
|
||||
__all__ = [
|
||||
"AssetItem",
|
||||
"FileAsset",
|
||||
"FileReference",
|
||||
"SkillAsset",
|
||||
"SkillMetadata",
|
||||
"ToolConfiguration",
|
||||
"ToolDefinition",
|
||||
"ToolFieldConfig",
|
||||
"ToolReference",
|
||||
"ToolType",
|
||||
]
|
||||
@ -1,6 +1,6 @@
|
||||
from abc import ABC, abstractmethod
|
||||
|
||||
from core.app_assets.assets import AssetItem
|
||||
from core.app_assets.entities import AssetItem
|
||||
|
||||
|
||||
class AssetPackager(ABC):
|
||||
|
||||
@ -2,7 +2,7 @@ import io
|
||||
import zipfile
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from core.app_assets.assets import AssetItem
|
||||
from core.app_assets.entities import AssetItem
|
||||
|
||||
from .base import AssetPackager
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from core.app.entities.app_asset_entities import AppAssetFileTree
|
||||
from core.app_assets.assets import AssetItem
|
||||
from core.app_assets.entities import AssetItem
|
||||
from core.app_assets.paths import AssetPaths
|
||||
|
||||
from .base import AssetItemParser, FileAssetParser
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
from abc import ABC, abstractmethod
|
||||
|
||||
from core.app_assets.assets import AssetItem, FileAsset
|
||||
from core.app_assets.entities import AssetItem, FileAsset
|
||||
|
||||
|
||||
class AssetItemParser(ABC):
|
||||
|
||||
@ -2,13 +2,13 @@ import json
|
||||
import re
|
||||
from typing import TYPE_CHECKING, Any
|
||||
|
||||
from core.app_assets.paths import AssetPaths
|
||||
from core.app_assets.skill import (
|
||||
from core.app_assets.entities import (
|
||||
FileReference,
|
||||
SkillAsset,
|
||||
SkillMetadata,
|
||||
ToolReference,
|
||||
)
|
||||
from core.app_assets.paths import AssetPaths
|
||||
|
||||
from .base import AssetItemParser
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@ from typing import Any
|
||||
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
|
||||
from core.app_assets.skill import ToolType
|
||||
from core.app_assets.entities import ToolType
|
||||
|
||||
|
||||
class ToolManifestEntry(BaseModel):
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
from core.app_assets.entities import SkillAsset
|
||||
from core.app_assets.paths import AssetPaths
|
||||
from core.app_assets.skill import SkillAsset
|
||||
from extensions.ext_storage import storage
|
||||
|
||||
from .entities import ToolManifest, ToolManifestEntry
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
import hashlib
|
||||
import io
|
||||
import logging
|
||||
import zipfile
|
||||
from uuid import uuid4
|
||||
|
||||
from sqlalchemy.orm import Session
|
||||
@ -14,11 +12,11 @@ from core.app.entities.app_asset_entities import (
|
||||
TreeParentNotFoundError,
|
||||
TreePathConflictError,
|
||||
)
|
||||
from core.app_assets.entities import SkillAsset
|
||||
from core.app_assets.packager.zip_packager import ZipPackager
|
||||
from core.app_assets.parser.asset_parser import AssetParser
|
||||
from core.app_assets.parser.skill_parser import SkillAssetParser
|
||||
from core.app_assets.paths import AssetPaths
|
||||
from core.app_assets.skill import SkillAsset
|
||||
from core.skill.skill_manager import SkillManager
|
||||
from extensions.ext_database import db
|
||||
from extensions.ext_storage import storage
|
||||
@ -315,34 +313,6 @@ class AppAssetService:
|
||||
|
||||
return published
|
||||
|
||||
@staticmethod
|
||||
def get_published_file_content(
|
||||
app_model: App,
|
||||
assets_id: str,
|
||||
file_path: str,
|
||||
) -> bytes:
|
||||
with Session(db.engine) as session:
|
||||
published = (
|
||||
session.query(AppAssets)
|
||||
.filter(
|
||||
AppAssets.tenant_id == app_model.tenant_id,
|
||||
AppAssets.app_id == app_model.id,
|
||||
AppAssets.id == assets_id,
|
||||
)
|
||||
.first()
|
||||
)
|
||||
if not published or published.version == AppAssets.VERSION_DRAFT:
|
||||
raise AppAssetNodeNotFoundError(f"Published version {assets_id} not found")
|
||||
|
||||
zip_key = AssetPaths.published_zip(app_model.tenant_id, app_model.id, assets_id)
|
||||
zip_data = storage.load_once(zip_key)
|
||||
|
||||
archive_path = file_path.lstrip("/")
|
||||
with zipfile.ZipFile(io.BytesIO(zip_data), "r") as zf:
|
||||
if archive_path not in zf.namelist():
|
||||
raise AppAssetNodeNotFoundError(f"File {file_path} not found in published version")
|
||||
return zf.read(archive_path)
|
||||
|
||||
@staticmethod
|
||||
def get_file_download_url(
|
||||
app_model: App,
|
||||
|
||||
Reference in New Issue
Block a user