superb-ai-onprem 0.6.2__py3-none-any.whl → 0.7.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of superb-ai-onprem might be problematic. Click here for more details.
- spb_onprem/_version.py +2 -2
- spb_onprem/activities/entities/activity.py +24 -17
- spb_onprem/activities/entities/activity_history.py +15 -12
- spb_onprem/data/entities/annotation.py +16 -13
- spb_onprem/data/entities/data.py +31 -17
- spb_onprem/data/entities/data_meta.py +1 -1
- spb_onprem/data/entities/data_slice.py +12 -9
- spb_onprem/data/entities/frame.py +12 -9
- spb_onprem/data/entities/prediction.py +7 -5
- spb_onprem/data/entities/scene.py +9 -7
- spb_onprem/data/enums/data_meta_type.py +0 -1
- spb_onprem/data/params/data_list.py +240 -49
- spb_onprem/data/params/update_data.py +5 -6
- spb_onprem/data/params/update_data_slice.py +17 -6
- spb_onprem/data/queries.py +10 -41
- spb_onprem/data/service.py +7 -37
- spb_onprem/datasets/entities/dataset.py +13 -7
- spb_onprem/exports/entities/export.py +18 -15
- spb_onprem/slices/entities/slice.py +13 -10
- superb_ai_onprem-0.7.0.dist-info/METADATA +285 -0
- {superb_ai_onprem-0.6.2.dist-info → superb_ai_onprem-0.7.0.dist-info}/RECORD +24 -24
- superb_ai_onprem-0.6.2.dist-info/METADATA +0 -246
- {superb_ai_onprem-0.6.2.dist-info → superb_ai_onprem-0.7.0.dist-info}/WHEEL +0 -0
- {superb_ai_onprem-0.6.2.dist-info → superb_ai_onprem-0.7.0.dist-info}/licenses/LICENSE +0 -0
- {superb_ai_onprem-0.6.2.dist-info → superb_ai_onprem-0.7.0.dist-info}/top_level.txt +0 -0
spb_onprem/_version.py
CHANGED
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '0.
|
|
32
|
-
__version_tuple__ = version_tuple = (0,
|
|
31
|
+
__version__ = version = '0.7.0'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 7, 0)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
|
@@ -12,28 +12,35 @@ class SchemaType(str, Enum):
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
class ActivitySchema(CustomBaseModel):
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
"""액티비티 스키마 정의"""
|
|
16
|
+
key: Optional[str] = Field(None, description="스키마 키")
|
|
17
|
+
schema_type: Optional[SchemaType] = Field(None, description="데이터 타입 (String, Number, Boolean 등)")
|
|
18
|
+
required: Optional[bool] = Field(None, description="필수 필드 여부")
|
|
19
|
+
default: Optional[Any] = Field(None, description="기본값")
|
|
19
20
|
|
|
20
21
|
|
|
21
22
|
class Activity(CustomBaseModel):
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
"""
|
|
24
|
+
액티비티 엔터티
|
|
24
25
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
데이터 처리 작업의 워크플로우를 정의합니다.
|
|
27
|
+
라벨링, 리뷰, 검증 등의 작업 프로세스를 관리합니다.
|
|
28
|
+
"""
|
|
29
|
+
id: Optional[str] = Field(None, alias="id", description="액티비티 고유 식별자")
|
|
30
|
+
dataset_id: Optional[str] = Field(None, alias="datasetId", description="상위 데이터셋 ID")
|
|
28
31
|
|
|
29
|
-
|
|
30
|
-
|
|
32
|
+
name: Optional[str] = Field(None, alias="name", description="액티비티 이름")
|
|
33
|
+
description: Optional[str] = Field(None, alias="description", description="액티비티 설명")
|
|
34
|
+
activity_type: Optional[str] = Field(None, alias="type", description="액티비티 타입 (labeling, review 등)")
|
|
31
35
|
|
|
32
|
-
|
|
36
|
+
progress_schema: Optional[List[ActivitySchema]] = Field(None, alias="progressSchema", description="진행상태 스키마 정의")
|
|
37
|
+
parameter_schema: Optional[List[ActivitySchema]] = Field(None, alias="parameterSchema", description="파라미터 스키마 정의")
|
|
33
38
|
|
|
34
|
-
|
|
39
|
+
settings: Optional[dict] = Field(None, alias="settings", description="액티비티 설정 정보")
|
|
35
40
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
41
|
+
meta: Optional[dict] = Field(None, alias="meta", description="액티비티 메타데이터")
|
|
42
|
+
|
|
43
|
+
created_at: Optional[str] = Field(None, alias="createdAt", description="생성일시 (ISO 8601)")
|
|
44
|
+
created_by: Optional[str] = Field(None, alias="createdBy", description="생성자")
|
|
45
|
+
updated_at: Optional[str] = Field(None, alias="updatedAt", description="수정일시 (ISO 8601)")
|
|
46
|
+
updated_by: Optional[str] = Field(None, alias="updatedBy", description="수정자")
|
|
@@ -13,19 +13,22 @@ class ActivityStatus(str, Enum):
|
|
|
13
13
|
|
|
14
14
|
class ActivityHistory(CustomBaseModel):
|
|
15
15
|
"""
|
|
16
|
-
|
|
16
|
+
액티비티 실행 히스토리 엔터티
|
|
17
|
+
|
|
18
|
+
액티비티의 개별 실행 기록을 관리합니다.
|
|
19
|
+
작업 진행 상태, 파라미터, 결과를 추적하는 데 사용됩니다.
|
|
17
20
|
"""
|
|
18
|
-
id: Optional[str] = Field(None, alias="id")
|
|
19
|
-
dataset_id: Optional[str] = Field(None, alias="datasetId")
|
|
20
|
-
activity_id: Optional[str] = Field(None, alias="jobId")
|
|
21
|
-
status: Optional[ActivityStatus] = Field(None, alias="status")
|
|
21
|
+
id: Optional[str] = Field(None, alias="id", description="액티비티 히스토리 고유 식별자")
|
|
22
|
+
dataset_id: Optional[str] = Field(None, alias="datasetId", description="상위 데이터셋 ID")
|
|
23
|
+
activity_id: Optional[str] = Field(None, alias="jobId", description="실행된 액티비티 ID")
|
|
24
|
+
status: Optional[ActivityStatus] = Field(None, alias="status", description="실행 상태 (PENDING, RUNNING, SUCCESS, FAILED, CANCELLED)")
|
|
22
25
|
|
|
23
|
-
parameters: Optional[dict] = Field(None, alias="parameters")
|
|
24
|
-
progress: Optional[dict] = Field(None, alias="progress")
|
|
26
|
+
parameters: Optional[dict] = Field(None, alias="parameters", description="실행 파라미터")
|
|
27
|
+
progress: Optional[dict] = Field(None, alias="progress", description="진행 상황 정보")
|
|
25
28
|
|
|
26
|
-
meta: Optional[dict] = Field(None, alias="meta")
|
|
29
|
+
meta: Optional[dict] = Field(None, alias="meta", description="실행 메타데이터")
|
|
27
30
|
|
|
28
|
-
created_at: Optional[str] = Field(None, alias="createdAt")
|
|
29
|
-
created_by: Optional[str] = Field(None, alias="createdBy")
|
|
30
|
-
updated_at: Optional[str] = Field(None, alias="updatedAt")
|
|
31
|
-
updated_by: Optional[str] = Field(None, alias="updatedBy")
|
|
31
|
+
created_at: Optional[str] = Field(None, alias="createdAt", description="생성일시 (ISO 8601)")
|
|
32
|
+
created_by: Optional[str] = Field(None, alias="createdBy", description="생성자")
|
|
33
|
+
updated_at: Optional[str] = Field(None, alias="updatedAt", description="수정일시 (ISO 8601)")
|
|
34
|
+
updated_by: Optional[str] = Field(None, alias="updatedBy", description="수정자")
|
|
@@ -1,27 +1,30 @@
|
|
|
1
1
|
from typing import Optional, List
|
|
2
2
|
|
|
3
|
-
from spb_onprem.base_model import CustomBaseModel
|
|
3
|
+
from spb_onprem.base_model import CustomBaseModel, Field
|
|
4
4
|
from spb_onprem.contents.entities import BaseContent
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
class AnnotationVersion(CustomBaseModel):
|
|
8
8
|
"""
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
어노테이션 버전 엔터티
|
|
10
|
+
|
|
11
|
+
어노테이션의 특정 버전을 나타내며, 실제 어노테이션 파일 내용과
|
|
12
|
+
버전별 메타데이터를 포함합니다.
|
|
12
13
|
"""
|
|
13
|
-
id: Optional[str] = None
|
|
14
|
-
channels: Optional[List[str]] = None
|
|
15
|
-
version: Optional[str] = None
|
|
16
|
-
content: Optional[BaseContent] = None
|
|
17
|
-
meta: Optional[dict] = None
|
|
14
|
+
id: Optional[str] = Field(None, description="버전 고유 식별자")
|
|
15
|
+
channels: Optional[List[str]] = Field(None, description="데이터 채널 목록 (rgb, depth 등)")
|
|
16
|
+
version: Optional[str] = Field(None, description="버전 문자열 (v1.0, v2.1 등)")
|
|
17
|
+
content: Optional[BaseContent] = Field(None, description="어노테이션 파일 컨텐츠")
|
|
18
|
+
meta: Optional[dict] = Field(None, description="버전별 메타데이터")
|
|
18
19
|
|
|
19
20
|
|
|
20
21
|
class Annotation(CustomBaseModel):
|
|
21
22
|
"""
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
어노테이션 엔터티
|
|
24
|
+
|
|
25
|
+
데이터의 어노테이션 정보를 관리하며, 여러 버전의 어노테이션을
|
|
26
|
+
포함할 수 있습니다.
|
|
24
27
|
"""
|
|
25
|
-
versions: Optional[List[AnnotationVersion]] = None
|
|
26
|
-
meta: Optional[dict] = None
|
|
28
|
+
versions: Optional[List[AnnotationVersion]] = Field(None, description="어노테이션 버전 목록")
|
|
29
|
+
meta: Optional[dict] = Field(None, description="메인 어노테이션 메타데이터")
|
|
27
30
|
|
spb_onprem/data/entities/data.py
CHANGED
|
@@ -11,21 +11,35 @@ from spb_onprem.contents.entities import BaseContent
|
|
|
11
11
|
|
|
12
12
|
class Data(CustomBaseModel):
|
|
13
13
|
"""
|
|
14
|
-
|
|
14
|
+
메인 데이터 엔터티 - 데이터셋 내의 개별 데이터 항목
|
|
15
|
+
|
|
16
|
+
데이터는 이미지, 비디오, 텍스트 등 다양한 형태의 컨텐츠를 나타내며,
|
|
17
|
+
어노테이션, 메타데이터, 슬라이스 정보 등을 포함합니다.
|
|
15
18
|
"""
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
19
|
+
# 식별자
|
|
20
|
+
id: Optional[str] = Field(None, description="데이터 고유 식별자")
|
|
21
|
+
dataset_id: Optional[str] = Field(None, alias="datasetId", description="상위 데이터셋 ID")
|
|
22
|
+
slice_ids: Optional[List[str]] = Field(None, alias="sliceIds", description="소속된 슬라이스 ID 목록")
|
|
23
|
+
key: Optional[str] = Field(None, description="사용자 정의 고유 키")
|
|
24
|
+
|
|
25
|
+
# 데이터 타입 및 내용
|
|
26
|
+
type: Optional[DataType] = Field(None, description="데이터 타입 (IMAGE, VIDEO 등)")
|
|
27
|
+
scene: Optional[List[Scene]] = Field(None, description="컨텐츠/파일 정보")
|
|
28
|
+
frames: Optional[List[Frame]] = Field(None, description="프레임 정보 (비디오 데이터용)")
|
|
29
|
+
thumbnail: Optional[BaseContent] = Field(None, description="썸네일 이미지")
|
|
30
|
+
|
|
31
|
+
# 어노테이션 및 예측
|
|
32
|
+
annotation: Optional[Annotation] = Field(None, description="어노테이션 데이터")
|
|
33
|
+
predictions: Optional[List[Prediction]] = Field(None, description="ML 모델 예측 결과")
|
|
34
|
+
|
|
35
|
+
# 메타데이터
|
|
36
|
+
meta: Optional[List[DataMeta]] = Field(None, description="커스텀 메타데이터 목록")
|
|
37
|
+
|
|
38
|
+
# 시간 정보
|
|
39
|
+
created_at: Optional[str] = Field(None, alias="createdAt", description="생성일시 (ISO 8601)")
|
|
40
|
+
created_by: Optional[str] = Field(None, alias="createdBy", description="생성자")
|
|
41
|
+
updated_at: Optional[str] = Field(None, alias="updatedAt", description="수정일시 (ISO 8601)")
|
|
42
|
+
updated_by: Optional[str] = Field(None, alias="updatedBy", description="수정자")
|
|
43
|
+
|
|
44
|
+
# 슬라이스 정보
|
|
45
|
+
slices: Optional[List[DataSlice]] = Field(None, description="슬라이스 멤버십 정보")
|
|
@@ -24,7 +24,7 @@ class DataMeta(CustomBaseModel):
|
|
|
24
24
|
DataMetaTypes.NUMBER if isinstance(val, (int, float)) else
|
|
25
25
|
DataMetaTypes.DATETIME if isinstance(val, datetime) else
|
|
26
26
|
DataMetaTypes.STRING if isinstance(val, str) else
|
|
27
|
-
DataMetaTypes.
|
|
27
|
+
DataMetaTypes.STRING
|
|
28
28
|
),
|
|
29
29
|
)
|
|
30
30
|
for key, val in meta.items()
|
|
@@ -5,13 +5,16 @@ from .annotation import Annotation
|
|
|
5
5
|
|
|
6
6
|
class DataSlice(CustomBaseModel):
|
|
7
7
|
"""
|
|
8
|
-
데이터 슬라이스
|
|
8
|
+
데이터 슬라이스 멤버십 엔터티
|
|
9
|
+
|
|
10
|
+
특정 슬라이스 내에서의 데이터 상태와 워크플로 정보를 나타냅니다.
|
|
11
|
+
라벨링, 리뷰 등의 작업 진행 상황을 추적합니다.
|
|
9
12
|
"""
|
|
10
|
-
id: Optional[str] = None
|
|
11
|
-
status: Optional[DataStatus] = DataStatus.PENDING
|
|
12
|
-
labeler: Optional[str] = None
|
|
13
|
-
reviewer: Optional[str] = None
|
|
14
|
-
tags: Optional[List[str]] = None
|
|
15
|
-
status_changed_at: Optional[str] = Field(None, alias="statusChangedAt")
|
|
16
|
-
annotation: Optional[Annotation] = None
|
|
17
|
-
meta: Optional[
|
|
13
|
+
id: Optional[str] = Field(None, description="슬라이스 고유 식별자")
|
|
14
|
+
status: Optional[DataStatus] = Field(DataStatus.PENDING, description="워크플로 상태 (UNLABELED, LABELED, REVIEWED 등)")
|
|
15
|
+
labeler: Optional[str] = Field(None, description="할당된 라벨러")
|
|
16
|
+
reviewer: Optional[str] = Field(None, description="할당된 리뷰어")
|
|
17
|
+
tags: Optional[List[str]] = Field(None, description="슬라이스 태그 목록")
|
|
18
|
+
status_changed_at: Optional[str] = Field(None, alias="statusChangedAt", description="상태 변경일시")
|
|
19
|
+
annotation: Optional[Annotation] = Field(None, description="슬라이스별 어노테이션")
|
|
20
|
+
meta: Optional[dict] = Field(None, description="슬라이스별 메타데이터")
|
|
@@ -3,17 +3,20 @@ from spb_onprem.base_model import CustomBaseModel, Field
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
class GeoLocation(CustomBaseModel):
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
"""지리적 위치 정보"""
|
|
7
|
+
lat: float = Field(description="위도")
|
|
8
|
+
lon: float = Field(description="경도")
|
|
8
9
|
|
|
9
10
|
|
|
10
11
|
class Frame(CustomBaseModel):
|
|
11
12
|
"""
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
비디오/시계열 데이터의 프레임 엔터티
|
|
14
|
+
|
|
15
|
+
비디오나 시계열 데이터의 개별 프레임을 나타냅니다.
|
|
16
|
+
타임스탬프, 지리적 위치, 메타데이터를 포함합니다.
|
|
14
17
|
"""
|
|
15
|
-
id: Optional[str] = None
|
|
16
|
-
index: Optional[int] = None
|
|
17
|
-
captured_at: Optional[str] = Field(None, alias="capturedAt")
|
|
18
|
-
geo_location: Optional[GeoLocation] = Field(None, alias="geoLocation")
|
|
19
|
-
meta: Optional[dict] = None
|
|
18
|
+
id: Optional[str] = Field(None, description="프레임 고유 식별자")
|
|
19
|
+
index: Optional[int] = Field(None, description="프레임 인덱스 (시퀀스 내 순서)")
|
|
20
|
+
captured_at: Optional[str] = Field(None, alias="capturedAt", description="촬영/캡처 시간 (ISO 8601)")
|
|
21
|
+
geo_location: Optional[GeoLocation] = Field(None, alias="geoLocation", description="촬영 위치 정보")
|
|
22
|
+
meta: Optional[dict] = Field(None, description="프레임별 메타데이터")
|
|
@@ -5,9 +5,11 @@ from spb_onprem.contents.entities import BaseContent
|
|
|
5
5
|
|
|
6
6
|
class Prediction(CustomBaseModel):
|
|
7
7
|
"""
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
ML 모델 예측 결과 엔터티
|
|
9
|
+
|
|
10
|
+
기계학습 모델이 생성한 예측 결과를 나타냅니다.
|
|
11
|
+
어노테이션과 비교하여 모델 성능을 평가하는 데 사용됩니다.
|
|
10
12
|
"""
|
|
11
|
-
set_id: Optional[str] = Field(None, alias="setId")
|
|
12
|
-
content: Optional[BaseContent] = None
|
|
13
|
-
meta: Optional[dict] = None
|
|
13
|
+
set_id: Optional[str] = Field(None, alias="setId", description="예측 세트 식별자 - 같은 모델/버전의 예측들을 그룹화")
|
|
14
|
+
content: Optional[BaseContent] = Field(None, description="예측 결과 파일 (JSON, XML 등)")
|
|
15
|
+
meta: Optional[dict] = Field(None, description="예측 관련 메타데이터 (모델 버전, 신뢰도 점수 등)")
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
from typing import Optional
|
|
2
|
-
from spb_onprem.base_model import CustomBaseModel
|
|
2
|
+
from spb_onprem.base_model import CustomBaseModel, Field
|
|
3
3
|
from spb_onprem.data.enums import SceneType
|
|
4
4
|
from spb_onprem.contents.entities import BaseContent
|
|
5
5
|
|
|
6
6
|
class Scene(CustomBaseModel):
|
|
7
7
|
"""
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
데이터의 씬(Scene) 엔터티
|
|
9
|
+
|
|
10
|
+
데이터의 실제 파일 표현을 나타냅니다.
|
|
11
|
+
이미지, 비디오, 텍스트 파일 등의 컨텐츠 정보를 포함합니다.
|
|
10
12
|
"""
|
|
11
|
-
id: Optional[str] = None
|
|
12
|
-
type: Optional[SceneType] = None
|
|
13
|
-
content: Optional[BaseContent] = None
|
|
14
|
-
meta: Optional[dict] = None
|
|
13
|
+
id: Optional[str] = Field(None, description="씬 고유 식별자")
|
|
14
|
+
type: Optional[SceneType] = Field(None, description="씬 타입 (IMAGE, VIDEO, TEXT 등)")
|
|
15
|
+
content: Optional[BaseContent] = Field(None, description="실제 파일 컨텐츠 정보")
|
|
16
|
+
meta: Optional[dict] = Field(None, description="씬별 메타데이터")
|