Skip to content

Commit 236067d

Browse files
committed
feat(eva): support pause/retry/delete eva task
1 parent b000a26 commit 236067d

File tree

7 files changed

+673
-43
lines changed

7 files changed

+673
-43
lines changed

libs/api/hiagent_api/eva.py

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,34 @@ def get_api_info():
124124
{},
125125
{},
126126
),
127+
"PauseEvaTask": ApiInfo(
128+
"POST",
129+
"/",
130+
{"Action": "PauseEvaTask", "Version": "2025-02-01"},
131+
{},
132+
{},
133+
),
134+
"DeleteEvaTask": ApiInfo(
135+
"POST",
136+
"/",
137+
{"Action": "DeleteEvaTask", "Version": "2025-02-01"},
138+
{},
139+
{},
140+
),
141+
"RetryEvaTask": ApiInfo(
142+
"POST",
143+
"/",
144+
{"Action": "RetryEvaTask", "Version": "2025-02-01"},
145+
{},
146+
{},
147+
),
148+
"UpdateEvaTask": ApiInfo(
149+
"POST",
150+
"/",
151+
{"Action": "UpdateEvaTask", "Version": "2025-02-01"},
152+
{},
153+
{},
154+
),
127155
}
128156
return api_info
129157

@@ -217,6 +245,66 @@ def GetEvaTask(
217245
self.__request("GetEvaTask", request.model_dump())
218246
)
219247

248+
def PauseEvaTask(
249+
self, request: eva_types.PauseEvaTaskRequest
250+
) -> eva_types.EmptyResponse:
251+
"""Pause evaluation task
252+
253+
Args:
254+
request: Pause evaluation task request parameters
255+
256+
Returns:
257+
EmptyResponse: Operation response
258+
"""
259+
return eva_types.EmptyResponse.model_validate(
260+
self.__request("PauseEvaTask", request.model_dump())
261+
)
262+
263+
def DeleteEvaTask(
264+
self, request: eva_types.DeleteEvaTaskRequest
265+
) -> eva_types.EmptyResponse:
266+
"""Delete evaluation task
267+
268+
Args:
269+
request: Delete evaluation task request parameters
270+
271+
Returns:
272+
EmptyResponse: Operation response
273+
"""
274+
return eva_types.EmptyResponse.model_validate(
275+
self.__request("DeleteEvaTask", request.model_dump())
276+
)
277+
278+
def RetryEvaTask(
279+
self, request: eva_types.RetryEvaTaskRequest
280+
) -> eva_types.EmptyResponse:
281+
"""Retry evaluation task
282+
283+
Args:
284+
request: Retry evaluation task request parameters
285+
286+
Returns:
287+
EmptyResponse: Operation response
288+
"""
289+
return eva_types.EmptyResponse.model_validate(
290+
self.__request("RetryEvaTask", request.model_dump())
291+
)
292+
293+
def UpdateEvaTask(
294+
self, request: eva_types.UpdateEvaTaskRequest
295+
) -> eva_types.EmptyResponse:
296+
"""Update evaluation task
297+
298+
Args:
299+
request: Update evaluation task request parameters
300+
301+
Returns:
302+
EmptyResponse: Operation response
303+
"""
304+
return eva_types.EmptyResponse.model_validate(
305+
self.__request("UpdateEvaTask", request.model_dump())
306+
)
307+
220308
def CreateEvaRuleset(
221309
self, params: eva_types.CreateEvaRulesetRequest
222310
) -> eva_types.CreateEvaRulesetResponse:
@@ -305,6 +393,7 @@ def __request(self, action, params):
305393
logger.debug(
306394
f"Error code: {error_info.get('Code', 'N/A')}, Message: {error_info.get('Message', 'N/A')}"
307395
)
396+
Exception(f"Error code: {error_info.get('Code', 'N/A')}, Message: {error_info.get('Message', 'N/A')}")
308397
except Exception:
309398
pass
310399

libs/api/hiagent_api/eva_types.py

Lines changed: 68 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ class EvaTaskStatus(str, Enum):
4242
FAILED = "Failed" # Failed
4343
CANCELLING = "Cancelling" # Cancelling
4444
CANCELLED = "Cancelled" # Task cancelled
45+
PAUSED = "Paused" # Task paused
46+
PAUSING = "Pausing" # Task pausing
4547

4648

4749
# New CellContent related types
@@ -921,6 +923,36 @@ class EvaTaskItemTarget(BaseModel):
921923
title="Is Deleted", description="Whether it has been deleted"
922924
)
923925

926+
class EvaTaskStatusItem(BaseModel):
927+
"""Task status item"""
928+
StartedAt: Optional[str] = Field(
929+
default=None, title="Task Start Time", description="Task start time"
930+
)
931+
CompletedAt: Optional[str] = Field(
932+
default=None, title="Task End Time", description="Task end time"
933+
)
934+
Duration: int = Field(
935+
title="Task Execution Duration",
936+
description="Task execution duration in milliseconds",
937+
)
938+
CostTokens: Optional[int] = Field(
939+
default=None,
940+
title="Task Completion Token Cost",
941+
description="Tokens consumed for task completion",
942+
)
943+
Progress: Optional[EvaTaskItemProgress] = Field(
944+
default=None, title="Task Progress", description="Task progress"
945+
)
946+
Status: EvaTaskStatus = Field(title="Task Status", description="Task status")
947+
StatusMessage: Optional[str] = Field(
948+
default=None,
949+
title="Task Status Description",
950+
description="Task status description",
951+
)
952+
class EmptyResponse(BaseModel):
953+
"""EEmpty response"""
954+
955+
pass
924956

925957
class EvaTaskItem(BaseModel):
926958
"""Evaluation task details"""
@@ -947,30 +979,7 @@ class EvaTaskItem(BaseModel):
947979
title="Task Evaluation Targets",
948980
description="Task evaluation targets",
949981
)
950-
StartedAt: Optional[str] = Field(
951-
default=None, title="Task Start Time", description="Task start time"
952-
)
953-
CompletedAt: Optional[str] = Field(
954-
default=None, title="Task End Time", description="Task end time"
955-
)
956-
Duration: int = Field(
957-
title="Task Execution Duration",
958-
description="Task execution duration in milliseconds",
959-
)
960-
CostTokens: Optional[int] = Field(
961-
default=None,
962-
title="Task Completion Token Cost",
963-
description="Tokens consumed for task completion",
964-
)
965-
Progress: Optional[EvaTaskItemProgress] = Field(
966-
default=None, title="Task Progress", description="Task progress"
967-
)
968-
Status: EvaTaskStatus = Field(title="Task Status", description="Task status")
969-
StatusMessage: Optional[str] = Field(
970-
default=None,
971-
title="Task Status Description",
972-
description="Task status description",
973-
)
982+
ResultTaskStatus: EvaTaskStatusItem = Field(title="Task Result Status", description="Task Result Status")
974983
CreatedAt: str = Field(title="Created At", description="Creation time")
975984
UpdatedAt: str = Field(title="Updated At", description="Update time")
976985
CreatedBy: str = Field(title="Created By", description="Creator")
@@ -990,6 +999,41 @@ class GetEvaTaskRequest(BaseModel):
990999
# GetEvaTaskResponse 就是 EvaTaskItem
9911000
GetEvaTaskResponse = EvaTaskItem
9921001

1002+
class UpdateEvaTaskRequest(BaseModel):
1003+
"""Update evaluation task request"""
1004+
1005+
WorkspaceID: str = Field(title="Workspace ID", description="Workspace ID")
1006+
TaskID: str = Field(title="Task ID", description="Task ID")
1007+
Description: Optional[str] = Field(
1008+
default=None, title="Task Description", description="Task Description"
1009+
)
1010+
Status: Optional[EvaTaskStatus] = Field(
1011+
default=None, title="Task Status", description="Task Status"
1012+
)
1013+
1014+
class DeleteEvaTaskRequest(BaseModel):
1015+
"""Delete evaluation task request"""
1016+
1017+
WorkspaceID: str = Field(title="Workspace ID", description="Workspace ID")
1018+
TaskID: str = Field(title="Task ID", description="Task ID")
1019+
1020+
class PauseEvaTaskRequest(BaseModel):
1021+
"""Pause evaluation task request"""
1022+
1023+
WorkspaceID: str = Field(title="Workspace ID", description="Workspace ID")
1024+
TaskID: str = Field(title="Task ID", description="Task ID")
1025+
1026+
class RetryOption(BaseModel):
1027+
"""Retry evaluation task option"""
1028+
ResultEvaluate: bool = Field(title="Retry Rule Evaluate", description="Retry Rule Evaluate")
1029+
1030+
class RetryEvaTaskRequest(BaseModel):
1031+
"""Retry evaluation task request"""
1032+
1033+
WorkspaceID: str = Field(title="Workspace ID", description="Workspace ID")
1034+
TaskID: str = Field(title="Task ID", description="Task ID")
1035+
Option: RetryOption = Field(title="Retry Option", description="Retry Option")
1036+
9931037

9941038
class ListColumnsResponse(BaseModel):
9951039
"""Get evaluation dataset column list response"""

0 commit comments

Comments
 (0)