hiagent-api 2.2.0__tar.gz → 2.3.0__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hiagent-api
3
- Version: 2.2.0
3
+ Version: 2.3.0
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.10
6
6
  Requires-Dist: aiofiles>=23.1.0
@@ -24,10 +24,9 @@ class CreateConversationRequest(BaseSchema):
24
24
  description="app key",
25
25
  serialization_alias="AppKey",
26
26
  )
27
- inputs: dict[str, str] | None = Field(
27
+ inputs: dict[str, str] = Field(
28
28
  description="inputs of variables",
29
29
  serialization_alias="Inputs",
30
- default={},
31
30
  )
32
31
  user_id: str = Field(
33
32
  description="user id",
@@ -64,7 +63,7 @@ class Conversation(BaseSchema):
64
63
 
65
64
 
66
65
  class CreateConversationResponse(BaseSchema):
67
- conversation: Conversation | None = Field(
66
+ conversation: Conversation = Field(
68
67
  description="conversation",
69
68
  validation_alias="Conversation",
70
69
  default=None,
@@ -125,7 +124,7 @@ class GetAppConfigPreviewResponse(BaseSchema):
125
124
  validation_alias="WorkspaceID",
126
125
  default="",
127
126
  )
128
- variable_configs: Optional[list[VariableConfig]] | None = Field(
127
+ variable_configs: Optional[list[VariableConfig]] = Field(
129
128
  description="variable_configs", validation_alias="VariableConfigs", default=[]
130
129
  )
131
130
  name: str = Field(
@@ -520,7 +519,6 @@ class LongTermMemoryRetrieveEndChatEvent(ChatEvent):
520
519
  )
521
520
  answer: str = Field(
522
521
  description="answer",
523
- default="",
524
522
  )
525
523
  latency: float = Field(
526
524
  description="latency",
@@ -820,13 +818,12 @@ class ConversationInfo(BaseSchema):
820
818
 
821
819
 
822
820
  class GetConversationListResponse(BaseSchema):
823
- conversation_list: list[ConversationInfo] | None = Field(
821
+ conversation_list: list[ConversationInfo] = Field(
824
822
  description="conversation list",
825
823
  validation_alias="ConversationList",
826
824
  default=[],
827
825
  )
828
826
 
829
-
830
827
  class GetConversationInputsRequest(BaseSchema):
831
828
  app_key: str = Field(
832
829
  description="app key",
@@ -843,7 +840,7 @@ class GetConversationInputsRequest(BaseSchema):
843
840
 
844
841
 
845
842
  class GetConversationInputsResponse(BaseSchema):
846
- inputs: dict[str, str] | None = Field(
843
+ inputs: dict[str, str] = Field(
847
844
  description="conversation inputs",
848
845
  validation_alias="Inputs",
849
846
  default={},
@@ -859,10 +856,9 @@ class UpdateConversationRequest(BaseSchema):
859
856
  description="user id",
860
857
  serialization_alias="UserID",
861
858
  )
862
- inputs: dict[str, str] | None = Field(
859
+ inputs: dict[str, str] = Field(
863
860
  description="inputs of variables",
864
861
  serialization_alias="Inputs",
865
- default={},
866
862
  )
867
863
  app_conversation_id: str = Field(
868
864
  description="conversation id",
@@ -1010,7 +1006,7 @@ class ChatMessageInfo(BaseSchema):
1010
1006
  validation_alias="AnswerInfo",
1011
1007
  default=None,
1012
1008
  )
1013
- other_answers: list[MessageAnswerInfo] | None = Field(
1009
+ other_answers: list[MessageAnswerInfo] = Field(
1014
1010
  description="other answers",
1015
1011
  validation_alias="OtherAnswers",
1016
1012
  default=[],
@@ -1023,7 +1019,7 @@ class ChatMessageInfo(BaseSchema):
1023
1019
 
1024
1020
 
1025
1021
  class GetConversationMessageResponse(BaseSchema):
1026
- messages: list[ChatMessageInfo] | None = Field(
1022
+ messages: list[ChatMessageInfo] = Field(
1027
1023
  description="messages",
1028
1024
  validation_alias="Messages",
1029
1025
  default=[],
@@ -1046,7 +1042,7 @@ class GetMessageInfoRequest(BaseSchema):
1046
1042
 
1047
1043
 
1048
1044
  class GetMessageInfoResponse(BaseSchema):
1049
- message_info: ChatMessageInfo | None = Field(
1045
+ message_info: ChatMessageInfo = Field(
1050
1046
  description="message info",
1051
1047
  validation_alias="MessageInfo",
1052
1048
  default=None,
@@ -1073,10 +1069,9 @@ class DeleteMessageRequest(BaseSchema):
1073
1069
 
1074
1070
 
1075
1071
  class FeedbackInfo(BaseSchema):
1076
- problem_categories: list[str] | None = Field(
1072
+ problem_categories: list[str] = Field(
1077
1073
  description="problem categories",
1078
1074
  serialization_alias="ProblemCategories",
1079
- default=[],
1080
1075
  )
1081
1076
  problem_detail: Optional[str] = Field(
1082
1077
  description="problem detail",
@@ -1138,7 +1133,7 @@ class GetSuggestedQuestionsRequest(BaseSchema):
1138
1133
 
1139
1134
 
1140
1135
  class GetSuggestedQuestionsResponse(BaseSchema):
1141
- suggested_questions: list[str] | None = Field(
1136
+ suggested_questions: list[str] = Field(
1142
1137
  description="suggested questions",
1143
1138
  validation_alias="SuggestedQuestions",
1144
1139
  default=[],
@@ -1202,7 +1197,7 @@ class BizCode(BaseSchema):
1202
1197
  validation_alias="Message",
1203
1198
  default="",
1204
1199
  )
1205
- data: dict[str, str] | None = Field(
1200
+ data: dict[str, str] = Field(
1206
1201
  description="biz data",
1207
1202
  validation_alias="Data",
1208
1203
  default={},
@@ -1210,12 +1205,12 @@ class BizCode(BaseSchema):
1210
1205
 
1211
1206
 
1212
1207
  class WorkflowLoopBlock(BaseSchema):
1213
- nodes: dict[str, "WorkflowNode"] | None = Field(
1208
+ nodes: dict[str, "WorkflowNode"] = Field(
1214
1209
  description="nodes",
1215
1210
  validation_alias="nodes",
1216
1211
  default={},
1217
1212
  )
1218
- steps: list[str] | None = Field(
1213
+ steps: list[str] = Field(
1219
1214
  description="steps",
1220
1215
  validation_alias="steps",
1221
1216
  default=[],
@@ -1286,12 +1281,12 @@ class SyncRunAppWorkflowResponse(BaseSchema):
1286
1281
  validation_alias="status",
1287
1282
  default="",
1288
1283
  )
1289
- nodes: dict[str, WorkflowNode] | None = Field(
1284
+ nodes: dict[str, WorkflowNode] = Field(
1290
1285
  description="nodes",
1291
1286
  validation_alias="nodes",
1292
1287
  default={},
1293
1288
  )
1294
- steps: list[str] | None = Field(
1289
+ steps: list[str] = Field(
1295
1290
  description="steps",
1296
1291
  validation_alias="steps",
1297
1292
  default=[],
@@ -1407,7 +1402,7 @@ class ListOauth2TokenResponse(BaseSchema):
1407
1402
  serialization_alias="Total",
1408
1403
  default=0,
1409
1404
  )
1410
- items: list[Oauth2TokenItem] | None = Field(
1405
+ items: list[Oauth2TokenItem] = Field(
1411
1406
  description="items",
1412
1407
  serialization_alias="Items",
1413
1408
  default=[],
@@ -1455,10 +1450,9 @@ class Sorter(BaseSchema):
1455
1450
 
1456
1451
 
1457
1452
  class ListOpt(BaseSchema):
1458
- sort: list[Sorter] | None = Field(
1453
+ sort: list[Sorter] = Field(
1459
1454
  description="sort list",
1460
1455
  serialization_alias="Sort",
1461
- default=[],
1462
1456
  )
1463
1457
  page_number: int = Field(
1464
1458
  description="page number",
@@ -1538,7 +1532,7 @@ class ListLongMemoryResponse(BaseSchema):
1538
1532
  validation_alias="Total",
1539
1533
  default=0,
1540
1534
  )
1541
- items: list[LongMemoryItem] | None = Field(
1535
+ items: list[LongMemoryItem] = Field(
1542
1536
  description="items",
1543
1537
  validation_alias="Items",
1544
1538
  default=[],
@@ -1599,24 +1593,21 @@ class AsyncResumeAppWorkflowRequest(BaseSchema):
1599
1593
  description="user id",
1600
1594
  serialization_alias="UserID",
1601
1595
  )
1602
- run_id: str = Field(
1603
- description="run id",
1604
- serialization_alias="RunID",
1605
- )
1606
1596
  user_type: str = Field(
1607
1597
  description="user type, App:openapi user;IAM:hiagent user;Visitor:web user;Lark:lark user;Wechat: wechat user",
1608
1598
  serialization_alias="UserType",
1609
- default=None,
1599
+ )
1600
+ run_id: str = Field(
1601
+ description="run id",
1602
+ serialization_alias="RunID",
1610
1603
  )
1611
1604
  input: str = Field(
1612
1605
  description="input json str",
1613
1606
  serialization_alias="Input",
1614
- default="",
1615
1607
  )
1616
1608
  debug: bool = Field(
1617
1609
  description="debug mode, if true will not output fully node info, but faster",
1618
1610
  serialization_alias="Debug",
1619
- default=False,
1620
1611
  )
1621
1612
 
1622
1613
 
@@ -1670,7 +1661,6 @@ class QueryAppSkillAsyncTaskRequest(BaseSchema):
1670
1661
  task_ids: list[str] = Field(
1671
1662
  description="task ids",
1672
1663
  serialization_alias="TaskIDs",
1673
- default=[],
1674
1664
  )
1675
1665
 
1676
1666
 
@@ -1695,7 +1685,7 @@ class AppSkillAsyncTaskInfo(BaseSchema):
1695
1685
  validation_alias="Reason",
1696
1686
  default="",
1697
1687
  )
1698
- message_id: str | None = Field(
1688
+ message_id: str = Field(
1699
1689
  description="message id",
1700
1690
  validation_alias="MessageID",
1701
1691
  default="",
@@ -1703,7 +1693,7 @@ class AppSkillAsyncTaskInfo(BaseSchema):
1703
1693
 
1704
1694
 
1705
1695
  class QueryAppSkillAsyncTaskResponse(BaseSchema):
1706
- infos: list[AppSkillAsyncTaskInfo] | None = Field(
1696
+ infos: list[AppSkillAsyncTaskInfo] = Field(
1707
1697
  description="infos",
1708
1698
  validation_alias="Infos",
1709
1699
  default=[],
@@ -1719,29 +1709,25 @@ class SyncResumeAppWorkflowRequest(BaseSchema):
1719
1709
  description="user id",
1720
1710
  serialization_alias="UserID",
1721
1711
  )
1722
- user_type: str = Field(
1712
+ user_type: Optional[str] = Field(
1723
1713
  description="user type, App:openapi user;IAM:hiagent user;Visitor:web user;Lark:lark user;Wechat: wechat user",
1724
1714
  serialization_alias="UserType",
1725
- default=None,
1726
1715
  )
1727
1716
  run_id: str = Field(
1728
1717
  description="run id",
1729
1718
  serialization_alias="RunID",
1730
1719
  )
1731
- input: str = Field(
1720
+ input: Optional[str] = Field(
1732
1721
  description="input json str",
1733
1722
  serialization_alias="Input",
1734
- default="",
1735
1723
  )
1736
- debug: bool = Field(
1724
+ debug: Optional[bool] = Field(
1737
1725
  description="debug mode, if true will not output fully node info, but faster",
1738
1726
  serialization_alias="Debug",
1739
- default=False,
1740
1727
  )
1741
- is_stream: bool = Field(
1728
+ is_stream: Optional[bool] = Field(
1742
1729
  description="is stream or not",
1743
1730
  serialization_alias="IsStream",
1744
- default=None,
1745
1731
  )
1746
1732
 
1747
1733
 
@@ -1783,13 +1769,13 @@ class UserVariables(BaseSchema):
1783
1769
  serialization_alias="Scope",
1784
1770
  default="",
1785
1771
  )
1786
- value: Optional[str] = Field(
1772
+ value: str = Field(
1787
1773
  description="user variable value",
1788
1774
  validation_alias="Value",
1789
1775
  serialization_alias="Value",
1790
1776
  default="",
1791
1777
  )
1792
- default: Optional[str] = Field(
1778
+ default: str = Field(
1793
1779
  description="default value",
1794
1780
  validation_alias="Default",
1795
1781
  serialization_alias="Default",
@@ -1804,34 +1790,13 @@ class UserVariables(BaseSchema):
1804
1790
 
1805
1791
 
1806
1792
  class GetAppUserVariablesResponse(BaseSchema):
1807
- user_variables: Optional[list[UserVariables]] = Field(
1793
+ user_variables: list[UserVariables] = Field(
1808
1794
  description="user variables",
1809
1795
  validation_alias="UserVariables",
1810
1796
  default=[],
1811
1797
  )
1812
1798
 
1813
1799
 
1814
- class UserVariableAction(BaseSchema):
1815
- name: str = Field(
1816
- description="user variable name",
1817
- validation_alias="Name",
1818
- serialization_alias="Name",
1819
- default="",
1820
- )
1821
- reset: Optional[bool] = Field(
1822
- description="is reset user variable",
1823
- validation_alias="Reset",
1824
- serialization_alias="Reset",
1825
- default=False,
1826
- )
1827
- value: str | None = Field(
1828
- description="user variable value",
1829
- validation_alias="Value",
1830
- serialization_alias="Value",
1831
- default=None,
1832
- )
1833
-
1834
-
1835
1800
  class SetAppUserVariablesRequest(BaseSchema):
1836
1801
  app_key: str = Field(
1837
1802
  description="app key",
@@ -1845,10 +1810,9 @@ class SetAppUserVariablesRequest(BaseSchema):
1845
1810
  description="conversation id",
1846
1811
  serialization_alias="ConversationID",
1847
1812
  )
1848
- user_variables: list[UserVariableAction] | None = Field(
1813
+ user_variables: list[UserVariables] = Field(
1849
1814
  description="user variables",
1850
1815
  serialization_alias="UserVariables",
1851
- default=[],
1852
1816
  )
1853
1817
 
1854
1818
 
@@ -1864,17 +1828,14 @@ class QueryTriggerRunRecordsRequest(BaseSchema):
1864
1828
  run_ids: list[str] = Field(
1865
1829
  description="run ids",
1866
1830
  serialization_alias="RunIDs",
1867
- default=[],
1868
1831
  )
1869
1832
  page: int = Field(
1870
1833
  description="page number",
1871
1834
  serialization_alias="Page",
1872
- default=None,
1873
1835
  )
1874
1836
  size: int = Field(
1875
1837
  description="page size",
1876
1838
  serialization_alias="Size",
1877
- default=None,
1878
1839
  )
1879
1840
 
1880
1841
 
@@ -1884,7 +1845,7 @@ class TriggerPromptConfig(BaseSchema):
1884
1845
  validation_alias="Content",
1885
1846
  default="",
1886
1847
  )
1887
- inputs: dict[str, str] | None = Field(
1848
+ inputs: dict[str, str] = Field(
1888
1849
  description="inputs",
1889
1850
  validation_alias="Inputs",
1890
1851
  default={},
@@ -1948,7 +1909,7 @@ class NodeParameters(BaseSchema):
1948
1909
  validation_alias="Type",
1949
1910
  default="",
1950
1911
  )
1951
- sub_parameters: list["NodeParameters"] | None = Field(
1912
+ sub_parameters: list["NodeParameters"] = Field(
1952
1913
  description="sub parameters",
1953
1914
  validation_alias="SubParameters",
1954
1915
  default=[],
@@ -2001,7 +1962,7 @@ class TriggerConfig(BaseSchema):
2001
1962
  validation_alias="Type",
2002
1963
  default="",
2003
1964
  )
2004
- cron_expr: Optional[str] | None = Field(
1965
+ cron_expr: Optional[str] = Field(
2005
1966
  description="cron expr",
2006
1967
  validation_alias="CronExpr",
2007
1968
  default="",
@@ -2016,38 +1977,37 @@ class TriggerConfig(BaseSchema):
2016
1977
  validation_alias="TaskType",
2017
1978
  default="",
2018
1979
  )
2019
- prompt_config: Optional[TriggerPromptConfig] | None = Field(
1980
+ prompt_config: Optional[TriggerPromptConfig] = Field(
2020
1981
  description="prompt config",
2021
1982
  validation_alias="PromptConfig",
2022
1983
  default=None,
2023
1984
  )
2024
- tool_config: Optional[TriggerToolConfig] | None = Field(
1985
+ tool_config: Optional[TriggerToolConfig] = Field(
2025
1986
  description="tool config",
2026
1987
  validation_alias="ToolConfig",
2027
1988
  default=None,
2028
1989
  )
2029
- workflow_config: Optional[TriggerWorkflowConfig] | None = Field(
1990
+ workflow_config: Optional[TriggerWorkflowConfig] = Field(
2030
1991
  description="workflow config",
2031
1992
  validation_alias="WorkflowConfig",
2032
1993
  default=None,
2033
1994
  )
2034
- webhook_key: Optional[str] | None = Field(
1995
+ webhook_key: Optional[str] = Field(
2035
1996
  description="webhook key",
2036
1997
  validation_alias="WebhookKey",
2037
1998
  default="",
2038
1999
  )
2039
- bearer_token: Optional[str] | None = Field(
2000
+ bearer_token: Optional[str] = Field(
2040
2001
  description="bearer token",
2041
2002
  validation_alias="BearerToken",
2042
2003
  default="",
2043
2004
  )
2044
- request_parameter_schema: list[NodeParameters] | None = Field(
2005
+ request_parameter_schema: list[NodeParameters] = Field(
2045
2006
  description="request parameters schema",
2046
2007
  validation_alias="RequestParameterSchema",
2047
2008
  default=[],
2048
2009
  )
2049
2010
 
2050
-
2051
2011
  class TriggerRunRecord(BaseSchema):
2052
2012
  run_id: str = Field(
2053
2013
  description="run id",
@@ -2059,7 +2019,7 @@ class TriggerRunRecord(BaseSchema):
2059
2019
  validation_alias="Name",
2060
2020
  default="",
2061
2021
  )
2062
- trigger_config: Optional[TriggerConfig] | None = Field(
2022
+ trigger_config: Optional[TriggerConfig] = Field(
2063
2023
  description="trigger config",
2064
2024
  validation_alias="TriggerConfig",
2065
2025
  default=None,
@@ -2069,17 +2029,17 @@ class TriggerRunRecord(BaseSchema):
2069
2029
  validation_alias="Scene",
2070
2030
  default="",
2071
2031
  )
2072
- query: Optional[str] | None = Field(
2032
+ query: Optional[str] = Field(
2073
2033
  description="query string",
2074
2034
  validation_alias="Query",
2075
2035
  default="",
2076
2036
  )
2077
- answer: Optional[str] | None = Field(
2037
+ answer: Optional[str] = Field(
2078
2038
  description="answer string",
2079
2039
  validation_alias="Answer",
2080
2040
  default="",
2081
2041
  )
2082
- user_id: Optional[str] | None = Field(
2042
+ user_id: Optional[str] = Field(
2083
2043
  description="user id",
2084
2044
  validation_alias="UserID",
2085
2045
  default="",
@@ -2089,7 +2049,7 @@ class TriggerRunRecord(BaseSchema):
2089
2049
  validation_alias="Status",
2090
2050
  default="",
2091
2051
  )
2092
- reason: Optional[str] | None = Field(
2052
+ reason: Optional[str] = Field(
2093
2053
  description="reason string",
2094
2054
  validation_alias="Reason",
2095
2055
  default="",
@@ -2102,7 +2062,7 @@ class QueryTriggerRunRecordsResponse(BaseSchema):
2102
2062
  validation_alias="total",
2103
2063
  default=0,
2104
2064
  )
2105
- records: list[TriggerRunRecord] | None = Field(
2065
+ records: list[TriggerRunRecord] = Field(
2106
2066
  description="trigger records",
2107
2067
  validation_alias="records",
2108
2068
  default=[],
@@ -62,21 +62,17 @@ class EvaService(Service):
62
62
  if not scheme:
63
63
  raise Exception(f"invalid endpoint format: {endpoint}")
64
64
 
65
- # Fix observe's port handling bug while maintaining consistent architecture
66
65
  hostname = parsed.hostname
67
66
  if not hostname:
68
67
  raise Exception(f"invalid endpoint format: {endpoint}")
69
68
 
70
- # Robust port handling: only add port when it actually exists
71
69
  if parsed.port:
72
70
  hostname = f"{hostname}:{parsed.port}"
73
- # Don't append ":None", this was observe's bug
74
71
 
75
- # Completely consistent with observe - use empty AK/SK to create Credentials
76
72
  service_info = ServiceInfo(
77
73
  hostname,
78
74
  {"Accept": "application/json"},
79
- Credentials("", "", service="eva", region=region), # Empty AK/SK!
75
+ Credentials("", "", service="eva", region=region),
80
76
  5,
81
77
  5,
82
78
  scheme=scheme,
@@ -93,17 +89,17 @@ class EvaService(Service):
93
89
  {},
94
90
  {},
95
91
  ),
96
- "ListEvaDatasetConversations": ApiInfo(
92
+ "ListDatasetCases": ApiInfo(
97
93
  "POST",
98
94
  "/",
99
- {"Action": "ListEvaDatasetConversations", "Version": "2025-02-01"},
95
+ {"Action": "ListDatasetCases", "Version": "2025-02-01"},
100
96
  {},
101
97
  {},
102
98
  ),
103
- "ListEvaDatasetColumns": ApiInfo(
99
+ "ListColumns": ApiInfo(
104
100
  "POST",
105
101
  "/",
106
- {"Action": "ListEvaDatasetColumns", "Version": "2025-02-01"},
102
+ {"Action": "ListColumns", "Version": "2025-02-01"},
107
103
  {},
108
104
  {},
109
105
  ),
@@ -146,34 +142,34 @@ class EvaService(Service):
146
142
  self.__request("CreateEvaTask", params.model_dump())
147
143
  )
148
144
 
149
- def ListEvaDatasetConversations(
150
- self, params: eva_types.ListEvaDatasetConversationsRequest
151
- ) -> eva_types.ListEvaDatasetConversationsResponse:
145
+ def ListDatasetCases(
146
+ self, params: eva_types.ListDatasetCasesRequest
147
+ ) -> eva_types.ListDatasetCasesResponse:
152
148
  """Get paginated evaluation dataset conversation list
153
149
 
154
150
  Args:
155
151
  params: Get dataset conversation list request parameters
156
152
 
157
153
  Returns:
158
- ListEvaDatasetConversationsResponse: Dataset conversation list response
154
+ ListDatasetCasesResponse: Dataset conversation list response
159
155
  """
160
- return eva_types.ListEvaDatasetConversationsResponse.model_validate(
161
- self.__request("ListEvaDatasetConversations", params.model_dump())
156
+ return eva_types.ListDatasetCasesResponse.model_validate(
157
+ self.__request("ListDatasetCases", params.model_dump())
162
158
  )
163
159
 
164
- def ListEvaDatasetColumns(
165
- self, params: eva_types.ListEvaDatasetColumnsRequest
166
- ) -> eva_types.ListEvaDatasetColumnsResponse:
160
+ def ListColumns(
161
+ self, params: eva_types.ListColumnsRequest
162
+ ) -> eva_types.ListColumnsResponse:
167
163
  """Get evaluation dataset column information
168
164
 
169
165
  Args:
170
166
  params: Get dataset column information request parameters
171
167
 
172
168
  Returns:
173
- ListEvaDatasetColumnsResponse: Dataset column information response
169
+ ListColumnsResponse: Dataset column information response
174
170
  """
175
- return eva_types.ListEvaDatasetColumnsResponse.model_validate(
176
- self.__request("ListEvaDatasetColumns", params.model_dump())
171
+ return eva_types.ListColumnsResponse.model_validate(
172
+ self.__request("ListColumns", params.model_dump())
177
173
  )
178
174
 
179
175
  def ExecEvaTaskRowGroup(
@@ -13,6 +13,7 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
  from enum import Enum
16
+ from token import OP
16
17
  from typing import Any, Dict, List, Optional
17
18
 
18
19
  from pydantic import BaseModel, Field
@@ -52,6 +53,13 @@ class CellContentPartType(str, Enum):
52
53
  VIDEO_URL = "video_url"
53
54
 
54
55
 
56
+ class ColumnSchemaType(str, Enum):
57
+ """Schema type"""
58
+
59
+ TEXT = "Text"
60
+ MULTI_CONTENT = "MultiContent"
61
+
62
+
55
63
  class ChatMessageImageURL(BaseModel):
56
64
  """Chat message image URL"""
57
65
 
@@ -68,6 +76,21 @@ class CellContentPart(BaseModel):
68
76
  """Cell content part"""
69
77
 
70
78
  Type: Optional[CellContentPartType] = Field(
79
+ default=None, description="Content part type"
80
+ )
81
+ Text: Optional[str] = Field(default=None, description="Text content")
82
+ ImageURL: Optional[ChatMessageImageURL] = Field(
83
+ default=None, description="Image URL"
84
+ )
85
+ VideoURL: Optional[ChatMessageVideoURL] = Field(
86
+ default=None, description="Video URL"
87
+ )
88
+
89
+
90
+ class CellContent(BaseModel):
91
+ """Cell content"""
92
+
93
+ Type: CellContentPartType = Field(
71
94
  default=None, alias="type", description="Content part type"
72
95
  )
73
96
  Text: Optional[str] = Field(default=None, alias="text", description="Text content")
@@ -79,8 +102,13 @@ class CellContentPart(BaseModel):
79
102
  )
80
103
 
81
104
 
82
- # CellContent is a list of CellContentPart
83
- CellContent = List[CellContentPart]
105
+ class Cell(BaseModel):
106
+ """Repeated data"""
107
+
108
+ CellContent: Optional[List[CellContentPart]] = Field(
109
+ default=None, description="Cell content"
110
+ )
111
+ Text: Optional[str] = Field(default=None, description="Text content")
84
112
 
85
113
 
86
114
  class ModelAgentConfig(BaseModel):
@@ -196,6 +224,10 @@ class CreateEvaTaskRequest(BaseModel):
196
224
  title="Dataset Task Configuration",
197
225
  description="Dataset task configuration",
198
226
  )
227
+ DatasetVersionID: str = Field(
228
+ title="Dataset Version ID",
229
+ description="Dataset version ID",
230
+ )
199
231
 
200
232
 
201
233
  class CreateEvaTaskResponse(BaseModel):
@@ -210,12 +242,18 @@ class CreateEvaTaskResponse(BaseModel):
210
242
  )
211
243
 
212
244
 
213
- class ListEvaDatasetConversationsRequest(BaseModel):
245
+ class ListDatasetCasesRequest(BaseModel):
214
246
  WorkspaceID: str = Field(
215
247
  title="Workspace ID",
216
248
  description="Workspace ID",
217
249
  )
218
250
  DatasetID: str = Field(title="Dataset ID", description="Dataset ID")
251
+ VersionID: str = Field(title="Dataset Version ID", description="Dataset version ID")
252
+ UseLatestPublishedVersion: bool = Field(
253
+ default=False,
254
+ title="Use Latest Published Version",
255
+ description="Whether to use the latest published version",
256
+ )
219
257
  PageNumber: Optional[int] = Field(
220
258
  default=1,
221
259
  title="Page Number",
@@ -298,7 +336,6 @@ class EvaDatasetConversationData(BaseModel):
298
336
  class EvaDatasetColumnCell(BaseModel):
299
337
  """Evaluation dataset column cell data"""
300
338
 
301
- ColumnID: str = Field(title="Column ID", description="Evaluation dataset column ID")
302
339
  ConversationGroup: List[EvaDatasetConversationData] = Field(
303
340
  title="Conversation Group",
304
341
  description="Evaluation dataset conversation round data",
@@ -310,23 +347,12 @@ class EvaDatasetColumn(BaseModel):
310
347
 
311
348
  ID: str = Field(title="Column ID", description="Column ID")
312
349
  Name: str = Field(title="Column Name", description="Column name")
313
- Description: Optional[str] = Field(
314
- default=None, title="Column Description", description="Column description"
315
- )
316
-
317
-
318
- class EvaDatasetConversationItem(BaseModel):
319
- """Evaluation dataset conversation item"""
320
-
321
- RowID: str = Field(
322
- title="Data Row ID", description="Evaluation dataset data row ID"
323
- )
324
- DataRow: List[EvaDatasetColumnCell] = Field(
325
- title="Data Row", description="Evaluation dataset conversation column data"
350
+ SchemaType: Optional[ColumnSchemaType] = Field(
351
+ title="Schema Type", description="Schema type"
326
352
  )
327
353
 
328
354
 
329
- class ListEvaDatasetColumnsRequest(BaseModel):
355
+ class ListColumnsRequest(BaseModel):
330
356
  """Get evaluation dataset column list request"""
331
357
 
332
358
  WorkspaceID: str = Field(
@@ -334,28 +360,7 @@ class ListEvaDatasetColumnsRequest(BaseModel):
334
360
  description="Workspace ID",
335
361
  )
336
362
  DatasetID: str = Field(title="Dataset ID", description="Dataset ID")
337
-
338
-
339
- class ListEvaDatasetColumnsResponse(BaseModel):
340
- """Get evaluation dataset column list response"""
341
-
342
- Columns: List[EvaDatasetColumn] = Field(
343
- title="Evaluation Dataset Column List",
344
- description="Evaluation dataset column list",
345
- )
346
-
347
-
348
- class ListEvaDatasetConversationsResponse(BaseModel):
349
- """Evaluation dataset conversation list response"""
350
-
351
- Items: List[EvaDatasetConversationItem] = Field(
352
- title="Conversation List", description="Evaluation dataset conversation list"
353
- )
354
- Total: int = Field(
355
- title="Total",
356
- description="Total number of evaluation dataset conversations",
357
- example=100,
358
- )
363
+ VersionID: str = Field(title="Dataset Version ID", description="Dataset version ID")
359
364
 
360
365
 
361
366
  class InferenceResult(BaseModel):
@@ -386,7 +391,7 @@ class CaseData(BaseModel):
386
391
 
387
392
  model_config = {"extra": "allow"} # Allow dynamic fields
388
393
 
389
- def get_column_data(self, column_name: str) -> Optional[CellContent]:
394
+ def get_column_data(self, column_name: str) -> Optional[Cell]:
390
395
  """
391
396
  Get data from specified column
392
397
 
@@ -401,21 +406,6 @@ class CaseData(BaseModel):
401
406
  return self.__pydantic_extra__.get(column_name)
402
407
  return None
403
408
 
404
- def get_column_text(self, column_name: str) -> Optional[str]:
405
- """
406
- Get text data from specified column
407
-
408
- Args:
409
- column_name: Column name
410
-
411
- Returns:
412
- Text content of the column, returns None if not exists or not text type
413
- """
414
- data = self.get_column_data(column_name)
415
- if data and hasattr(data, "TextData"):
416
- return data.TextData
417
- return None
418
-
419
409
  def list_columns(self) -> List[str]:
420
410
  """
421
411
  Get all column names included in current round
@@ -429,7 +419,7 @@ class CaseData(BaseModel):
429
419
  return []
430
420
 
431
421
  # Dictionary-style operation support
432
- def __getitem__(self, column_name: str) -> Optional[CellContent]:
422
+ def __getitem__(self, column_name: str) -> Optional[Cell]:
433
423
  """
434
424
  Support case_data[column_name] access pattern
435
425
 
@@ -441,7 +431,7 @@ class CaseData(BaseModel):
441
431
  """
442
432
  return self.get_column_data(column_name)
443
433
 
444
- def __setitem__(self, column_name: str, value: CellContent):
434
+ def __setitem__(self, column_name: str, value: Cell):
445
435
  """
446
436
  Support case_data[column_name] = value assignment pattern
447
437
 
@@ -493,16 +483,14 @@ class CaseData(BaseModel):
493
483
  """
494
484
  return self.list_columns()
495
485
 
496
- def values(self) -> List[Optional[CellContent]]:
486
+ def values(self) -> List[Optional[Cell]]:
497
487
  """
498
488
  Get data from all columns
499
489
 
500
490
  Returns:
501
491
  List of cell content
502
492
  """
503
- return [
504
- self.get_column_data(column_name) for column_name in self.list_columns()
505
- ]
493
+ return [self.get_column_data(column_id) for column_id in self.list_columns()]
506
494
 
507
495
  def get(self, column_name: str, default=None):
508
496
  """
@@ -519,6 +507,17 @@ class CaseData(BaseModel):
519
507
  return data if data is not None else default
520
508
 
521
509
 
510
+ class EvaDatasetConversationItem(BaseModel):
511
+ """Evaluation dataset conversation item"""
512
+
513
+ DatasetCaseID: str = Field(
514
+ title="Dataset Case ID", description="Evaluation dataset case ID"
515
+ )
516
+ RepeatedData: List[Dict[str, Cell]] = Field(
517
+ title="Repeated Data", description="Evaluation dataset case data"
518
+ )
519
+
520
+
522
521
  class EvaConversationStatus(str, Enum):
523
522
  """Evaluation conversation status"""
524
523
 
@@ -649,9 +648,13 @@ class EvaReportRuleTarget(BaseModel):
649
648
  TargetDetail: EvaReportTargetDetail = Field(
650
649
  title="Target Details", description="Target details"
651
650
  )
652
- AvgScore: float = Field(title="Average Score", description="Average score")
653
- Percent: float = Field(title="Percentage", description="Percentage")
654
- ScoreMap: Dict[str, Any] = Field(title="Score Map", description="Score mapping")
651
+ AvgScore: Optional[float] = Field(
652
+ title="Average Score", description="Average score"
653
+ )
654
+ Percent: Optional[float] = Field(title="Percentage", description="Percentage")
655
+ ScoreMap: Optional[Dict[str, Any]] = Field(
656
+ title="Score Map", description="Score mapping"
657
+ )
655
658
  Duration: int = Field(title="Duration", description="Duration in milliseconds")
656
659
  CostTokens: int = Field(
657
660
  title="Cost Tokens", description="Number of tokens consumed"
@@ -986,3 +989,23 @@ class GetEvaTaskRequest(BaseModel):
986
989
 
987
990
  # GetEvaTaskResponse 就是 EvaTaskItem
988
991
  GetEvaTaskResponse = EvaTaskItem
992
+
993
+
994
+ class ListColumnsResponse(BaseModel):
995
+ """Get evaluation dataset column list response"""
996
+
997
+ Columns: List[EvaDatasetColumn] = Field(
998
+ title="Evaluation Dataset Column List",
999
+ description="Evaluation dataset column list",
1000
+ )
1001
+
1002
+
1003
+ class ListDatasetCasesResponse(BaseModel):
1004
+ """Evaluation dataset conversation list response"""
1005
+
1006
+ Items: Optional[List[EvaDatasetConversationItem]] = Field(
1007
+ title="Conversation List", description="Evaluation dataset conversation list"
1008
+ )
1009
+ Total: int = Field(
1010
+ title="Total", description="Total number of evaluation dataset conversations"
1011
+ )
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "hiagent-api"
3
- version = "2.2.0"
3
+ version = "2.3.0"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
File without changes
File without changes