intellif-aihub 0.1.5__tar.gz → 0.1.7__tar.gz

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 intellif-aihub might be problematic. Click here for more details.

Files changed (71) hide show
  1. {intellif_aihub-0.1.5/src/intellif_aihub.egg-info → intellif_aihub-0.1.7}/PKG-INFO +4 -4
  2. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/README.md +1 -1
  3. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/pyproject.toml +3 -3
  4. intellif_aihub-0.1.7/src/aihub/__init__.py +1 -0
  5. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/src/aihub/client.py +35 -12
  6. intellif_aihub-0.1.7/src/aihub/models/data_warehouse.py +95 -0
  7. intellif_aihub-0.1.7/src/aihub/models/dataset_management.py +137 -0
  8. intellif_aihub-0.1.7/src/aihub/models/document_center.py +36 -0
  9. intellif_aihub-0.1.7/src/aihub/models/eval.py +26 -0
  10. intellif_aihub-0.1.7/src/aihub/models/labelfree.py +27 -0
  11. intellif_aihub-0.1.7/src/aihub/models/model_center.py +141 -0
  12. intellif_aihub-0.1.7/src/aihub/models/model_training_platform.py +267 -0
  13. intellif_aihub-0.1.7/src/aihub/models/quota_schedule_management.py +285 -0
  14. intellif_aihub-0.1.7/src/aihub/models/tag_resource_management.py +56 -0
  15. intellif_aihub-0.1.7/src/aihub/models/task_center.py +122 -0
  16. intellif_aihub-0.1.7/src/aihub/models/user_system.py +296 -0
  17. intellif_aihub-0.1.7/src/aihub/models/workflow_center.py +461 -0
  18. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/src/aihub/services/artifact.py +22 -15
  19. intellif_aihub-0.1.7/src/aihub/services/data_warehouse.py +97 -0
  20. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/src/aihub/services/dataset_management.py +142 -23
  21. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/src/aihub/services/document_center.py +24 -5
  22. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/src/aihub/services/eval.py +14 -7
  23. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/src/aihub/services/labelfree.py +11 -0
  24. intellif_aihub-0.1.7/src/aihub/services/model_center.py +183 -0
  25. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/src/aihub/services/model_training_platform.py +132 -59
  26. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/src/aihub/services/quota_schedule_management.py +104 -7
  27. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/src/aihub/services/tag_resource_management.py +33 -2
  28. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/src/aihub/services/task_center.py +23 -9
  29. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/src/aihub/services/user_system.py +237 -2
  30. intellif_aihub-0.1.7/src/aihub/services/workflow_center.py +522 -0
  31. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/src/aihub/utils/download.py +19 -3
  32. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7/src/intellif_aihub.egg-info}/PKG-INFO +4 -4
  33. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/src/intellif_aihub.egg-info/SOURCES.txt +10 -1
  34. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/src/intellif_aihub.egg-info/requires.txt +1 -1
  35. intellif_aihub-0.1.7/tests/test_data_warehouse.py +31 -0
  36. intellif_aihub-0.1.7/tests/test_dataset_management.py +54 -0
  37. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/tests/test_labelfree.py +1 -1
  38. intellif_aihub-0.1.7/tests/test_model_center.py +62 -0
  39. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/tests/test_model_training_platform.py +4 -1
  40. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/tests/test_quota_schedule_management.py +1 -1
  41. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/tests/test_tag_resource_management.py +1 -1
  42. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/tests/test_task_center.py +1 -1
  43. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/tests/test_user_system.py +1 -1
  44. intellif_aihub-0.1.7/tests/test_workflow_center.py +209 -0
  45. intellif_aihub-0.1.5/src/aihub/__init__.py +0 -1
  46. intellif_aihub-0.1.5/src/aihub/models/dataset_management.py +0 -99
  47. intellif_aihub-0.1.5/src/aihub/models/document_center.py +0 -28
  48. intellif_aihub-0.1.5/src/aihub/models/eval.py +0 -17
  49. intellif_aihub-0.1.5/src/aihub/models/labelfree.py +0 -53
  50. intellif_aihub-0.1.5/src/aihub/models/model_training_platform.py +0 -234
  51. intellif_aihub-0.1.5/src/aihub/models/quota_schedule_management.py +0 -239
  52. intellif_aihub-0.1.5/src/aihub/models/tag_resource_management.py +0 -50
  53. intellif_aihub-0.1.5/src/aihub/models/task_center.py +0 -117
  54. intellif_aihub-0.1.5/src/aihub/models/user_system.py +0 -262
  55. intellif_aihub-0.1.5/tests/test_dataset_management.py +0 -30
  56. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/LICENSE +0 -0
  57. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/setup.cfg +0 -0
  58. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/src/aihub/exceptions.py +0 -0
  59. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/src/aihub/models/__init__.py +0 -0
  60. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/src/aihub/models/artifact.py +0 -0
  61. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/src/aihub/models/common.py +0 -0
  62. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/src/aihub/services/__init__.py +0 -0
  63. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/src/aihub/services/reporter.py +0 -0
  64. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/src/aihub/utils/__init__.py +0 -0
  65. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/src/aihub/utils/http.py +0 -0
  66. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/src/aihub/utils/s3.py +0 -0
  67. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/src/intellif_aihub.egg-info/dependency_links.txt +0 -0
  68. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/src/intellif_aihub.egg-info/top_level.txt +0 -0
  69. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/tests/test_artifact.py +0 -0
  70. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/tests/test_document_center.py +0 -0
  71. {intellif_aihub-0.1.5 → intellif_aihub-0.1.7}/tests/test_s3.py +0 -0
@@ -1,19 +1,19 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: intellif-aihub
3
- Version: 0.1.5
3
+ Version: 0.1.7
4
4
  Summary: Intellif AI-hub SDK.
5
5
  Author-email: Platform Team <aihub@example.com>
6
6
  License-Expression: Apache-2.0
7
7
  Keywords: AI-hub,sdk,intellif
8
8
  Classifier: Programming Language :: Python :: 3
9
9
  Classifier: Operating System :: OS Independent
10
- Requires-Python: >=3.8
10
+ Requires-Python: >=3.9
11
11
  Description-Content-Type: text/markdown
12
12
  License-File: LICENSE
13
13
  Requires-Dist: httpx<0.28,>=0.27
14
14
  Requires-Dist: pydantic<3.0,>=2.5.3
15
15
  Requires-Dist: typing-extensions<5.0,>=4.13.2
16
- Requires-Dist: pyarrow<16.0,>=15.0.2
16
+ Requires-Dist: pyarrow>=21.0.0
17
17
  Requires-Dist: tqdm<5.0,>=4.66
18
18
  Requires-Dist: loguru>=0.7.3
19
19
  Requires-Dist: minio>=7.2.7
@@ -44,7 +44,7 @@ aihub_sdk/
44
44
  ```bash
45
45
  # PyPI 安装
46
46
  pip install intellif-aihub
47
- # 运行环境:Python ≥ 3.8
47
+ # 运行环境:Python ≥ 3.9
48
48
  ```
49
49
 
50
50
  ---
@@ -23,7 +23,7 @@ aihub_sdk/
23
23
  ```bash
24
24
  # PyPI 安装
25
25
  pip install intellif-aihub
26
- # 运行环境:Python ≥ 3.8
26
+ # 运行环境:Python ≥ 3.9
27
27
  ```
28
28
 
29
29
  ---
@@ -1,9 +1,9 @@
1
1
  [project]
2
2
  name = "intellif-aihub"
3
- version = "0.1.5"
3
+ version = "0.1.7"
4
4
  description = "Intellif AI-hub SDK."
5
5
  readme = {file = "README.md", content-type = "text/markdown"}
6
- requires-python = ">=3.8"
6
+ requires-python = ">=3.9"
7
7
  license = "Apache-2.0"
8
8
  authors = [{name="Platform Team", email="aihub@example.com"}]
9
9
  keywords = ["AI-hub", "sdk", "intellif"]
@@ -15,7 +15,7 @@ dependencies = [
15
15
  "httpx>=0.27,<0.28",
16
16
  "pydantic>=2.5.3,<3.0",
17
17
  "typing-extensions>=4.13.2,<5.0",
18
- "pyarrow>=15.0.2,<16.0",
18
+ "pyarrow>=21.0.0",
19
19
  "tqdm>=4.66,<5.0",
20
20
  "loguru>=0.7.3",
21
21
  "minio>=7.2.7",
@@ -0,0 +1 @@
1
+ __version__ = "0.1.7"
@@ -6,45 +6,64 @@ import httpx
6
6
 
7
7
  from .exceptions import APIError
8
8
  from .services import artifact
9
+ from .services import data_warehouse
9
10
  from .services import dataset_management
10
11
  from .services import document_center
12
+ from .services import eval
11
13
  from .services import labelfree
14
+ from .services import model_center
12
15
  from .services import model_training_platform
13
16
  from .services import quota_schedule_management
14
17
  from .services import tag_resource_management
15
18
  from .services import task_center
16
19
  from .services import user_system
20
+ from .services import workflow_center
17
21
  from .services.artifact import ArtifactService
22
+ from .services.data_warehouse import DataWarehouseService
18
23
  from .services.dataset_management import DatasetManagementService
19
24
  from .services.document_center import DocumentCenterService
25
+ from .services.eval import EvalService
20
26
  from .services.labelfree import LabelfreeService
27
+ from .services.model_center import ModelCenterService
21
28
  from .services.model_training_platform import ModelTrainingPlatformService
22
29
  from .services.quota_schedule_management import QuotaScheduleManagementService
23
30
  from .services.tag_resource_management import TagResourceManagementService
24
31
  from .services.task_center import TaskCenterService
25
32
  from .services.user_system import UserSystemService
33
+ from .services.workflow_center import WorkflowCenterService
26
34
 
27
35
 
28
36
  class Client:
29
37
  """AI-HUB python SDK 客户端
30
38
 
31
39
  Attributes:
40
+ artifact (ArtifactService): 制品管理服务
41
+ data_warehouse (DataWarehouseService): 数据仓库服务
32
42
  dataset_management (DatasetManagementService): 数据集管理服务
43
+ document_center (DocumentCenterService): 文档中心服务
44
+ eval (EvalService): 评测服务
33
45
  labelfree (LabelfreeService): 标注服务
34
- task_center (TaskCenterService): 任务中心
35
- artifact (ArtifactService): 制品管理
36
-
46
+ model_center (ModelCenterService): 模型中心服务
47
+ model_training_platform (ModelTrainingPlatformService): 模型训练服务
48
+ quota_schedule_management (QuotaScheduleManagementService): 配额调度服务
49
+ tag_resource_management (TagResourceManagementService): 标签管理服务
50
+ task_center (TaskCenterService): 任务中心服务
51
+ workflow_center (WorkflowCenterService): 工作流服务
37
52
  """
38
53
 
54
+ artifact: ArtifactService = None
55
+ data_warehouse: DataWarehouseService = None
56
+ dataset_management: DatasetManagementService = None
57
+ document_center: DocumentCenterService = None
58
+ eval: EvalService = None
39
59
  labelfree: LabelfreeService = None
60
+ model_center: ModelCenterService = None
61
+ model_training_platform: ModelTrainingPlatformService = None
62
+ quota_schedule_management: QuotaScheduleManagementService = None
40
63
  tag_resource_management: TagResourceManagementService = None
41
- document_center: DocumentCenterService = None
42
64
  task_center: TaskCenterService = None
43
- dataset_management: DatasetManagementService = None
44
- artifact: ArtifactService = None
45
65
  user_system: UserSystemService = None
46
- model_training_platform: ModelTrainingPlatformService = None
47
- quota_schedule_management: QuotaScheduleManagementService = None
66
+ workflow_center: WorkflowCenterService = None
48
67
 
49
68
  def __init__(self, *, base_url: str, token: str | None = None, timeout: float = 60.0):
50
69
  """AI-HUB python SDK 客户端
@@ -71,15 +90,19 @@ class Client:
71
90
  headers={"Authorization": f"Bearer {token}"},
72
91
  # event_hooks={"response": [self._raise_for_status]},
73
92
  )
93
+ self.artifact = artifact.ArtifactService(self._http)
94
+ self.data_warehouse = data_warehouse.DataWarehouseService(self._http)
74
95
  self.dataset_management = dataset_management.DatasetManagementService(self._http)
96
+ self.document_center = document_center.DocumentCenterService(self._http)
97
+ self.eval = eval.EvalService(self._http)
75
98
  self.labelfree = labelfree.LabelfreeService(self._http)
99
+ self.model_center = model_center.ModelCenterService(self._http)
100
+ self.model_training_platform = model_training_platform.ModelTrainingPlatformService(self._http)
101
+ self.quota_schedule_management = quota_schedule_management.QuotaScheduleManagementService(self._http)
76
102
  self.tag_resource_management = tag_resource_management.TagResourceManagementService(self._http)
77
- self.document_center = document_center.DocumentCenterService(self._http)
78
103
  self.task_center = task_center.TaskCenterService(self._http)
79
- self.artifact = artifact.ArtifactService(self._http)
80
104
  self.user_system = user_system.UserSystemService(self._http)
81
- self.model_training_platform = model_training_platform.ModelTrainingPlatformService(self._http)
82
- self.quota_schedule_management = quota_schedule_management.QuotaScheduleManagementService(self._http)
105
+ self.workflow_center = workflow_center.WorkflowCenterService(self._http)
83
106
 
84
107
  @staticmethod
85
108
  def _raise_for_status(r: httpx.Response):
@@ -0,0 +1,95 @@
1
+ from __future__ import annotations
2
+
3
+ from enum import IntEnum
4
+ from typing import List, Optional
5
+
6
+ from pydantic import BaseModel, Field
7
+
8
+
9
+ class SearchType(IntEnum):
10
+ """搜索类型"""
11
+ SQL = 1 # SQL
12
+ IMAGE = 2 # 图片
13
+ TEXT = 3 # 文本
14
+
15
+
16
+ class SearchStatus(IntEnum):
17
+ """搜索任务状态"""
18
+ WAITING = 1 # 等待中
19
+ RUNNING = 2 # 运行中
20
+ SUCCESS = 3 # 成功
21
+ FAIL = 4 # 失败
22
+
23
+
24
+ class Image(BaseModel):
25
+ """检索图片对象"""
26
+ url: str = Field(alias="url", description="URL")
27
+ box: Optional[List[int]] = Field(default_factory=list, description="检测框坐标 [x1, y1, x2, y2]")
28
+
29
+
30
+ class SearchResult(BaseModel):
31
+ """单条检索结果"""
32
+ image_url: str = Field(alias="image_url", description="图片URL")
33
+ label: str = Field(description="标签")
34
+ box: List[int] = Field(description="检测框坐标 [x1, y1, x2, y2]")
35
+ score: float = Field(description="分数")
36
+
37
+
38
+ class Search(BaseModel):
39
+ """搜索任务完整信息"""
40
+ id: int = Field(description="任务ID")
41
+ type: SearchType = Field(description="搜索类型")
42
+ name: str = Field(description="任务名称")
43
+ description: str = Field(description="任务描述")
44
+ sql: str = Field(description="SQL语句")
45
+ feature_lib_id: int = Field(alias="feature_lib_id", description="特征库ID")
46
+ feature_lib_name: str = Field(alias="feature_lib_name", description="特征库名称")
47
+ images: Optional[List[Image]] = Field(default_factory=list, description="搜索图片列表")
48
+ keywords: str = Field(description="关键词")
49
+ top_k: int = Field(alias="top_k", description="返回前K个候选")
50
+ status: SearchStatus = Field(description="任务状态")
51
+ message: str = Field(description="信息")
52
+ result_url: str = Field(alias="result_url", description="结果地址")
53
+ results: Optional[List[SearchResult]] = Field(default_factory=list, description="检索结果列表")
54
+ created_at: int = Field(alias="created_at", description="创建时间戳 (ms)")
55
+ username: str = Field(description="创建人用户名")
56
+
57
+ model_config = {"use_enum_values": True}
58
+
59
+
60
+ class ListSearchRequest(BaseModel):
61
+ """分页搜索任务请求"""
62
+ page_size: int = Field(20, alias="page_size", description="每页数量")
63
+ page_num: int = Field(1, alias="page_num", description="当前页码,从1开始")
64
+ name: Optional[str] = Field(None, description="名称过滤")
65
+ status: Optional[SearchStatus] = Field(None, description="状态过滤")
66
+ user_id: Optional[int] = Field(None, alias="user_id", description="用户ID过滤")
67
+
68
+ model_config = {"use_enum_values": True}
69
+
70
+
71
+ class ListSearchResponse(BaseModel):
72
+ """分页搜索任务返回"""
73
+ total: int = Field(description="总条数")
74
+ page_size: int = Field(alias="page_size", description="每页数量")
75
+ page_num: int = Field(alias="page_num", description="当前页码")
76
+ data: Optional[List[Search]] = Field(default_factory=list, description="搜索任务列表")
77
+
78
+
79
+ class CreateSearchRequest(BaseModel):
80
+ """创建搜索任务请求"""
81
+ type: SearchType = Field(description="搜索类型")
82
+ name: str = Field(description="名称")
83
+ description: Optional[str] = Field(None, description="描述")
84
+ sql: Optional[str] = Field(None, description="SQL语句")
85
+ feature_lib_id: Optional[int] = Field(None, alias="feature_lib_id", description="特征库ID")
86
+ images: Optional[List[Image]] = Field(default_factory=list, description="搜索图片列表")
87
+ keywords: Optional[str] = Field(None, description="关键词")
88
+ top_k: Optional[int] = Field(None, alias="top_k", description="返回前K条")
89
+
90
+ model_config = {"use_enum_values": True}
91
+
92
+
93
+ class CreateSearchResponse(BaseModel):
94
+ """创建搜索任务返回"""
95
+ id: int = Field(description="任务ID")
@@ -0,0 +1,137 @@
1
+ from __future__ import annotations
2
+
3
+ from enum import IntEnum
4
+ from typing import List, Optional
5
+
6
+ from pydantic import BaseModel, Field
7
+
8
+
9
+ class DatasetVersionStatus(IntEnum):
10
+ """数据集版本状态"""
11
+ Waiting = 1 # 等待中
12
+ Running = 2 # 运行中
13
+ Success = 3 # 成功
14
+ Fail = 4 # 失败
15
+ MetaDB = 5 # 加载meta
16
+ BuildIndex = 6 # 构建index
17
+
18
+
19
+ class UploadType(IntEnum):
20
+ """上传类型"""
21
+ LOCAL = 1 # 本地上传
22
+ SERVER_PATH = 3 # 服务器路径上传
23
+ LABELFREE = 4 # Labelfree
24
+ DATA_INGEST = 5 # 数据接入
25
+
26
+
27
+ class CreateDatasetRequest(BaseModel):
28
+ """创建数据集请求"""
29
+ name: str = Field(description="数据集名称")
30
+ description: str = Field(description="数据集描述")
31
+ tags: List[int] = Field(description="标签ID列表")
32
+ cover_img: Optional[str] = Field(None, alias="cover_img", description="封面图片URL")
33
+ create_by: Optional[int] = Field(None, alias="create_by", description="创建人")
34
+ is_private: Optional[bool] = Field(None, alias="is_private", description="是否私有")
35
+ access_user_ids: Optional[List[int]] = Field(None, alias="access_user_ids", description="具有访问权限的用户ID列表")
36
+
37
+
38
+ class CreateDatasetResponse(BaseModel):
39
+ """创建数据集返回"""
40
+ id: int = Field(alias="id", description="数据集ID")
41
+
42
+
43
+ class DatasetVersionBase(BaseModel):
44
+ """数据集版本概要"""
45
+ id: int = Field(description="版本ID")
46
+ version: int = Field(description="版本号")
47
+ status: DatasetVersionStatus = Field(description="版本状态")
48
+ parquet_index_path: Optional[str] = Field(None, alias="parquet_index_path", description="parquet索引文件路径")
49
+ data_count: int = Field(alias="data_count", description="数量")
50
+
51
+ model_config = {"use_enum_values": True}
52
+
53
+
54
+ class DatasetDetail(BaseModel):
55
+ """数据集详情"""
56
+ id: int = Field(description="数据集 ID")
57
+ name: str = Field(description="名称")
58
+ description: str = Field(description="描述")
59
+ cover_img: Optional[str] = Field(None, alias="cover_img", description="封面图片URL")
60
+ created_at: int = Field(alias="created_at", description="创建时间戳 (ms)")
61
+ updated_at: int = Field(alias="update_at", description="更新时间戳 (ms)")
62
+ user_id: int = Field(alias="user_id", description="创建人ID")
63
+ username: str = Field(description="创建人用户名")
64
+ tags: List[int] = Field(description="标签ID列表")
65
+ access_user_ids: Optional[List[int]] = Field(None, alias="access_user_ids", description="可访问的用户ID列表")
66
+ is_private: Optional[bool] = Field(None, alias="is_private", description="是否私有")
67
+ versions: List[DatasetVersionBase] = Field(description="版本列表")
68
+
69
+
70
+ class ExtInfo(BaseModel):
71
+ """扩展信息"""
72
+ rec_file_path: Optional[str] = Field(None, alias="rec_file_path", description="rec文件路径")
73
+ idx_file_path: Optional[str] = Field(None, alias="idx_file_path", description="idx文件路径")
74
+ json_file_path: Optional[str] = Field(None, alias="json_file_path", description="json文件路径")
75
+ image_dir_path: Optional[str] = Field(None, alias="image_dir_path", description="图片目录路径")
76
+
77
+
78
+ class CreateDatasetVersionRequest(BaseModel):
79
+ """创建版本请求"""
80
+ upload_path: str = Field(alias="upload_path", description="上传路径")
81
+ description: Optional[str] = Field(None, description="版本描述")
82
+ dataset_id: int = Field(alias="dataset_id", description="数据集ID")
83
+ object_cnt: Optional[int] = Field(None, alias="object_cnt", description="对象数")
84
+ data_size: Optional[int] = Field(None, alias="data_size", description="数据大小")
85
+ create_by: Optional[int] = Field(None, alias="create_by", description="创建人")
86
+ upload_type: Optional[UploadType] = Field(alias="upload_type", description="上传类型")
87
+ ext_info: Optional[ExtInfo] = Field(None, alias="ext_info", description="扩展文件信息")
88
+
89
+ model_config = {"use_enum_values": True}
90
+
91
+
92
+ class CreateDatasetVersionResponse(BaseModel):
93
+ """创建版本返回"""
94
+ id: int = Field(alias="id", description="版本ID")
95
+
96
+
97
+ class UploadDatasetVersionRequest(BaseModel):
98
+ """上传数据集版本请求"""
99
+ upload_path: str = Field(alias="upload_path", description="上传目录")
100
+ upload_type: UploadType = Field(alias="upload_type", description="上传类型")
101
+ dataset_id: int = Field(alias="dataset_id", description="数据集ID")
102
+ parent_version_id: Optional[int] = Field(None, alias="parent_version_id", description="父版本ID")
103
+ description: Optional[str] = Field(None, alias="description", description="版本描述")
104
+
105
+ model_config = {"use_enum_values": True}
106
+
107
+
108
+ class UploadDatasetVersionResponse(BaseModel):
109
+ """上传数据集版本返回"""
110
+ id: int = Field(alias="id", description="版本ID")
111
+
112
+
113
+ class DatasetVersionDetail(BaseModel):
114
+ """数据集版本详情"""
115
+ id: int = Field(description="版本ID")
116
+ version: int = Field(description="版本号")
117
+ dataset_id: int = Field(alias="dataset_id", description="数据集ID")
118
+ upload_path: str = Field(alias="upload_path", description="上传路径")
119
+ upload_type: UploadType = Field(alias="upload_type", description="上传类型")
120
+ parent_version_id: Optional[int] = Field(None, alias="parent_version_id", description="父版本ID")
121
+ description: Optional[str] = Field(None, description="版本描述")
122
+ status: DatasetVersionStatus = Field(description="状态")
123
+ message: Optional[str] = Field(None, description="信息")
124
+ created_at: int = Field(alias="created_at", description="创建时间戳 (ms)")
125
+ user_id: int = Field(alias="user_id", description="创建人ID")
126
+ data_size: Optional[int] = Field(None, alias="data_size", description="数据大小")
127
+ data_count: Optional[int] = Field(None, alias="data_count", description="条数")
128
+ parquet_index_path: Optional[str] = Field(None, alias="parquet_index_path", description="parquet索引文件路径")
129
+ ext_info: Optional[ExtInfo] = Field(None, alias="ext_info", description="扩展信息")
130
+
131
+ model_config = {"use_enum_values": True}
132
+
133
+
134
+ class FileUploadData(BaseModel):
135
+ """文件上传数据"""
136
+ path: str = Field(description="路径")
137
+ url: str = Field(description="URL")
@@ -0,0 +1,36 @@
1
+ from __future__ import annotations
2
+
3
+ from enum import IntEnum
4
+ from typing import List, Optional, Any
5
+
6
+ from pydantic import BaseModel, Field
7
+
8
+
9
+ class DocumentType(IntEnum):
10
+ """文档类型"""
11
+ MARKDOWN = 0 # Markdown
12
+ PDF = 1 # 飞书文档生成的pdf
13
+
14
+
15
+ class Document(BaseModel):
16
+ """文档"""
17
+ id: int = Field(description="文档ID")
18
+ title: str = Field(description="标题")
19
+ type: DocumentType = Field(description="文档类型")
20
+ edit_time: int = Field(alias="edit_time", description="编辑时间")
21
+ need_update: bool = Field(alias="need_update", description="是否需要更新")
22
+ content: str = Field(description="内容")
23
+ username: str = Field(description="用户名")
24
+ user_id: int = Field(alias="user_id", description="作者ID")
25
+ created_at: int = Field(alias="created_at", description="创建时间戳 (ms)")
26
+ comments: Optional[Any] = Field(None, description="评论")
27
+
28
+ model_config = {"use_enum_values": True}
29
+
30
+
31
+ class GetDocumentsResponse(BaseModel):
32
+ """分页文档返回"""
33
+ total: int = Field(description="总条数")
34
+ page_size: int = Field(alias="page_size", description="每页数量")
35
+ page_num: int = Field(alias="page_num", description="当前页码")
36
+ data: List[Document] = Field(description="文档列表")
@@ -0,0 +1,26 @@
1
+ # !/usr/bin/env python
2
+ # -*-coding:utf-8 -*-
3
+ from typing import Dict
4
+
5
+ from pydantic import BaseModel, Field
6
+
7
+
8
+ class CreateEvalReq(BaseModel):
9
+ """创建评测任务"""
10
+ dataset_id: int = Field(description="数据集ID")
11
+ dataset_version_id: int = Field(description="数据集版本ID")
12
+ prediction_artifact_path: str = Field(description="推理产物的路径")
13
+ evaled_artifact_path: str = Field(description="评测结果产物的路径")
14
+ run_id: str = Field(description="运行ID")
15
+ user_id: int = Field(0, description="用户ID")
16
+ report: Dict = Field(default_factory=dict, description="评测报告")
17
+
18
+
19
+ class EvalRun(BaseModel):
20
+ """评测任务的运行实体"""
21
+ id: int = Field(description="评测的运行ID")
22
+
23
+
24
+ class CreateEvalResp(BaseModel):
25
+ """创建评测任务的返回结果"""
26
+ eval_run: EvalRun = Field(alias="eval_run", description="评测运行信息")
@@ -0,0 +1,27 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import Optional
4
+
5
+ from pydantic import BaseModel, Field
6
+
7
+
8
+ class Stats(BaseModel):
9
+ """标注统计信息"""
10
+ total_annotations: int = Field(alias="total_annotations", description="总数据量")
11
+ labeled_annotations: int = Field(alias="labeled_annotations", description="已标注数据量")
12
+ total_labels: int = Field(alias="total_labels", description="总标签量")
13
+ total_reviews: Optional[int] = Field(None, alias="total_reviews", description="总质检量")
14
+ unlabeled_reviews: Optional[int] = Field(None, alias="unlabeled_reviews", description="未质检量")
15
+ labeled_reviews: Optional[int] = Field(None, alias="labeled_reviews", description="已质检量")
16
+ accepted_count: Optional[int] = Field(None, alias="accepted_count", description="质检通过量")
17
+ rejected_count: Optional[int] = Field(None, alias="rejected_count", description="质检打回量")
18
+
19
+
20
+ class GetGlobalStatsResponse(BaseModel):
21
+ """标注统计概况"""
22
+ global_stats: Stats = Field(alias="global_stats")
23
+ valid_ten_percent: bool = Field(alias="valid_ten_percent", description="是否完成验收10%")
24
+ valid_fifty_percent: bool = Field(alias="valid_fifty_percent", description="是否完成验收50%")
25
+ valid_hundred_percent: bool = Field(alias="valid_hundred_percent", description="是否完成验收100%")
26
+ data_exported_count: int = Field(alias="data_exported_count", description="已导出数据次数")
27
+ exported_dataset_name: str = Field(alias="exported_dataset_name", description="最新数据集名称")
@@ -0,0 +1,141 @@
1
+ from __future__ import annotations
2
+
3
+ from enum import IntEnum
4
+ from typing import List, Optional
5
+
6
+ from pydantic import BaseModel, Field
7
+
8
+
9
+ class User(BaseModel):
10
+ """用户"""
11
+ id: int = Field(description="用户ID")
12
+ name: str = Field(description="用户名")
13
+
14
+
15
+ class ModelType(BaseModel):
16
+ """模型类型"""
17
+ id: int = Field(description="类型ID")
18
+ name: str = Field(description="类型名称")
19
+
20
+
21
+ class DeployPlatform(BaseModel):
22
+ """部署平台"""
23
+ id: int = Field(description="部署平台ID")
24
+ name: str = Field(description="部署平台名称")
25
+
26
+
27
+ class QuantLevel(BaseModel):
28
+ """量化等级"""
29
+ id: int = Field(description="量化等级ID")
30
+ name: str = Field(description="量化等级名称")
31
+
32
+
33
+ class ModelStatus(IntEnum):
34
+ """模型状态"""
35
+ Waiting = 1
36
+ Creating = 2
37
+ Success = 3
38
+ Fail = 4
39
+
40
+
41
+ class Model(BaseModel):
42
+ """模型详情"""
43
+ id: int = Field(description="模型ID")
44
+ name: str = Field(description="模型名称")
45
+ description: str = Field(description="描述")
46
+ model_type: ModelType = Field(alias="model_type", description="模型类型")
47
+ model_path: str = Field(alias="model_path", description="模型路径")
48
+ deploy_platform: DeployPlatform = Field(alias="deploy_platform", description="部署平台")
49
+ param_cnt: str = Field(alias="param_cnt", description="参数量")
50
+ quant_level: QuantLevel = Field(alias="quant_level", description="量化等级")
51
+ creator: User = Field(description="创建人")
52
+ status: ModelStatus = Field(description="模型状态")
53
+ created_at: int = Field(alias="created_at", description="创建时间戳 (ms)")
54
+ updated_at: int = Field(alias="updated_at", description="更新时间戳 (ms)")
55
+
56
+ model_config = {"use_enum_values": True}
57
+
58
+
59
+ class ListModelTypesRequest(BaseModel):
60
+ """查询模型类型列表请求"""
61
+ page_size: int = Field(999, alias="page_size", description="每页数量")
62
+ page_num: int = Field(1, alias="page_num", description="当前页码")
63
+
64
+
65
+ class ListModelTypesResponse(BaseModel):
66
+ """查询模型类型列表返回"""
67
+ total: int = Field(description="总条数")
68
+ page_size: int = Field(alias="page_size", description="每页数量")
69
+ page_num: int = Field(alias="page_num", description="当前页码")
70
+ data: List[ModelType] = Field(default_factory=list, description="类型列表")
71
+
72
+
73
+ class ListDeployPlatformsRequest(BaseModel):
74
+ """查询部署平台列表请求"""
75
+ page_size: int = Field(999, alias="page_size", description="每页数量")
76
+ page_num: int = Field(1, alias="page_num", description="当前页码")
77
+
78
+
79
+ class ListDeployPlatformsResponse(BaseModel):
80
+ """查询部署平台列表返回"""
81
+ total: int = Field(description="总条数")
82
+ page_size: int = Field(alias="page_size", description="每页数量")
83
+ page_num: int = Field(alias="page_num", description="当前页码")
84
+ data: List[DeployPlatform] = Field(default_factory=list, description="平台列表")
85
+
86
+
87
+ class ListQuantLevelsRequest(BaseModel):
88
+ """查询量化等级列表请求"""
89
+ page_size: int = Field(999, alias="page_size", description="每页数量")
90
+ page_num: int = Field(1, alias="page_num", description="当前页码")
91
+
92
+
93
+ class ListQuantLevelsResponse(BaseModel):
94
+ """查询量化等级列表返回"""
95
+ total: int = Field(description="总条数")
96
+ page_size: int = Field(alias="page_size", description="每页数量")
97
+ page_num: int = Field(alias="page_num", description="当前页码")
98
+ data: List[QuantLevel] = Field(default_factory=list, description="量化等级列表")
99
+
100
+
101
+ class ListModelsRequest(BaseModel):
102
+ """查询模型列表请求"""
103
+ page_size: int = Field(20, alias="page_size", description="每页数量")
104
+ page_num: int = Field(1, alias="page_num", description="当前页码")
105
+ name: Optional[str] = Field(None, description="名称过滤")
106
+
107
+
108
+ class ListModelsResponse(BaseModel):
109
+ """查询模型列表返回"""
110
+ total: int = Field(description="总条数")
111
+ page_size: int = Field(alias="page_size", description="每页数量")
112
+ page_num: int = Field(alias="page_num", description="当前页码")
113
+ data: List[Model] = Field(default_factory=list, description="模型列表")
114
+
115
+
116
+ class CreateModelRequest(BaseModel):
117
+ """创建模型请求"""
118
+ name: str = Field(description="模型名称")
119
+ description: Optional[str] = Field(None, description="描述")
120
+ model_type_id: int = Field(alias="model_type_id", description="模型类型ID")
121
+ model_path: Optional[str] = Field(None, alias="model_path", description="模型路径")
122
+ deploy_platform_id: Optional[int] = Field(None, alias="deploy_platform_id", description="部署平台ID")
123
+ param_cnt: Optional[str] = Field(None, alias="param_cnt", description="参数量")
124
+ quant_level_id: Optional[int] = Field(None, alias="quant_level_id", description="量化等级ID")
125
+
126
+
127
+ class CreateModelResponse(BaseModel):
128
+ """创建模型返回"""
129
+ id: int = Field(description="模型ID")
130
+
131
+
132
+ class EditModelRequest(BaseModel):
133
+ """编辑模型请求"""
134
+ id: int = Field(description="模型ID")
135
+ name: str = Field(description="模型名称")
136
+ description: Optional[str] = Field(None, description="描述")
137
+ model_type_id: int = Field(alias="model_type_id", description="模型类型ID")
138
+ model_path: Optional[str] = Field(None, alias="model_path", description="模型路径")
139
+ deploy_platform_id: Optional[int] = Field(None, alias="deploy_platform_id", description="部署平台ID")
140
+ param_cnt: Optional[str] = Field(None, alias="param_cnt", description="参数量")
141
+ quant_level_id: Optional[int] = Field(None, alias="quant_level_id", description="量化等级ID")