eval-studio-client 1.0.0a1__py3-none-any.whl → 1.0.1__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.
Files changed (180) hide show
  1. eval_studio_client/api/__init__.py +43 -0
  2. eval_studio_client/api/api/__init__.py +5 -0
  3. eval_studio_client/api/api/human_calibration_service_api.py +304 -0
  4. eval_studio_client/api/api/perturbator_service_api.py +268 -1
  5. eval_studio_client/api/api/prompt_library_service_api.py +669 -0
  6. eval_studio_client/api/api/test_service_api.py +568 -0
  7. eval_studio_client/api/api/workflow_edge_service_api.py +296 -0
  8. eval_studio_client/api/api/workflow_node_service_api.py +1634 -0
  9. eval_studio_client/api/api/workflow_service_api.py +1609 -0
  10. eval_studio_client/api/docs/HumanCalibrationServiceApi.md +77 -0
  11. eval_studio_client/api/docs/PerturbationServiceCreatePerturbationRequest.md +1 -0
  12. eval_studio_client/api/docs/PerturbatorServiceApi.md +33 -3
  13. eval_studio_client/api/docs/PromptGenerationServiceAutoGeneratePromptsRequest.md +2 -1
  14. eval_studio_client/api/docs/PromptLibraryServiceApi.md +155 -0
  15. eval_studio_client/api/docs/ProtobufNullValue.md +12 -0
  16. eval_studio_client/api/docs/RequiredTheTestCaseToUpdate.md +1 -0
  17. eval_studio_client/api/docs/RequiredTheUpdatedWorkflow.md +44 -0
  18. eval_studio_client/api/docs/RequiredTheUpdatedWorkflowNode.md +44 -0
  19. eval_studio_client/api/docs/TestServiceApi.md +140 -0
  20. eval_studio_client/api/docs/TestServiceGenerateTestCasesRequest.md +1 -0
  21. eval_studio_client/api/docs/TestServiceImportTestCasesFromLibraryRequest.md +32 -0
  22. eval_studio_client/api/docs/TestServiceListTestCaseLibraryItemsRequest.md +35 -0
  23. eval_studio_client/api/docs/TestServicePerturbTestRequest.md +1 -0
  24. eval_studio_client/api/docs/V1BatchDeleteWorkflowsRequest.md +29 -0
  25. eval_studio_client/api/docs/V1BatchDeleteWorkflowsResponse.md +29 -0
  26. eval_studio_client/api/docs/V1BatchGetWorkflowEdgesResponse.md +29 -0
  27. eval_studio_client/api/docs/V1BatchGetWorkflowNodesResponse.md +29 -0
  28. eval_studio_client/api/docs/V1CreateEvaluationRequest.md +1 -0
  29. eval_studio_client/api/docs/V1CreateWorkflowResponse.md +29 -0
  30. eval_studio_client/api/docs/V1DeleteWorkflowNodeResponse.md +29 -0
  31. eval_studio_client/api/docs/V1DeleteWorkflowResponse.md +29 -0
  32. eval_studio_client/api/docs/V1EstimateThresholdRequest.md +33 -0
  33. eval_studio_client/api/docs/V1GetWorkflowNodePrerequisitesResponse.md +30 -0
  34. eval_studio_client/api/docs/V1GetWorkflowNodeResponse.md +29 -0
  35. eval_studio_client/api/docs/V1GetWorkflowResponse.md +29 -0
  36. eval_studio_client/api/docs/V1ImportEvaluationRequest.md +1 -0
  37. eval_studio_client/api/docs/V1ImportTestCasesFromLibraryResponse.md +29 -0
  38. eval_studio_client/api/docs/V1ImportTestCasesRequest.md +33 -0
  39. eval_studio_client/api/docs/V1LabeledTestCase.md +31 -0
  40. eval_studio_client/api/docs/V1ListPromptLibraryItemsResponse.md +29 -0
  41. eval_studio_client/api/docs/V1ListTestCaseLibraryItemsResponse.md +29 -0
  42. eval_studio_client/api/docs/V1ListWorkflowsResponse.md +29 -0
  43. eval_studio_client/api/docs/V1ProcessWorkflowNodeResponse.md +29 -0
  44. eval_studio_client/api/docs/V1PromptLibraryItem.md +42 -0
  45. eval_studio_client/api/docs/V1TestCase.md +1 -0
  46. eval_studio_client/api/docs/V1TestSuiteEvaluates.md +11 -0
  47. eval_studio_client/api/docs/V1UpdateWorkflowNodeResponse.md +29 -0
  48. eval_studio_client/api/docs/V1UpdateWorkflowResponse.md +29 -0
  49. eval_studio_client/api/docs/V1Workflow.md +46 -0
  50. eval_studio_client/api/docs/V1WorkflowEdge.md +40 -0
  51. eval_studio_client/api/docs/V1WorkflowEdgeType.md +12 -0
  52. eval_studio_client/api/docs/V1WorkflowNode.md +46 -0
  53. eval_studio_client/api/docs/V1WorkflowNodeArtifact.md +40 -0
  54. eval_studio_client/api/docs/V1WorkflowNodeArtifacts.md +29 -0
  55. eval_studio_client/api/docs/V1WorkflowNodeAttributes.md +30 -0
  56. eval_studio_client/api/docs/V1WorkflowNodeStatus.md +12 -0
  57. eval_studio_client/api/docs/V1WorkflowNodeType.md +12 -0
  58. eval_studio_client/api/docs/V1WorkflowNodeView.md +12 -0
  59. eval_studio_client/api/docs/V1WorkflowType.md +12 -0
  60. eval_studio_client/api/docs/WorkflowEdgeServiceApi.md +76 -0
  61. eval_studio_client/api/docs/WorkflowNodeServiceApi.md +423 -0
  62. eval_studio_client/api/docs/WorkflowServiceApi.md +417 -0
  63. eval_studio_client/api/models/__init__.py +38 -0
  64. eval_studio_client/api/models/perturbation_service_create_perturbation_request.py +8 -2
  65. eval_studio_client/api/models/prompt_generation_service_auto_generate_prompts_request.py +5 -3
  66. eval_studio_client/api/models/protobuf_null_value.py +36 -0
  67. eval_studio_client/api/models/required_the_test_case_to_update.py +6 -2
  68. eval_studio_client/api/models/required_the_updated_workflow.py +152 -0
  69. eval_studio_client/api/models/required_the_updated_workflow_node.py +152 -0
  70. eval_studio_client/api/models/test_service_generate_test_cases_request.py +4 -2
  71. eval_studio_client/api/models/test_service_import_test_cases_from_library_request.py +93 -0
  72. eval_studio_client/api/models/test_service_list_test_case_library_items_request.py +99 -0
  73. eval_studio_client/api/models/test_service_perturb_test_request.py +4 -2
  74. eval_studio_client/api/models/v1_batch_delete_workflows_request.py +87 -0
  75. eval_studio_client/api/models/v1_batch_delete_workflows_response.py +95 -0
  76. eval_studio_client/api/models/v1_batch_get_workflow_edges_response.py +95 -0
  77. eval_studio_client/api/models/v1_batch_get_workflow_nodes_response.py +95 -0
  78. eval_studio_client/api/models/v1_create_evaluation_request.py +7 -2
  79. eval_studio_client/api/models/v1_create_workflow_response.py +91 -0
  80. eval_studio_client/api/models/v1_delete_workflow_node_response.py +91 -0
  81. eval_studio_client/api/models/v1_delete_workflow_response.py +91 -0
  82. eval_studio_client/api/models/v1_estimate_threshold_request.py +103 -0
  83. eval_studio_client/api/models/v1_get_workflow_node_prerequisites_response.py +89 -0
  84. eval_studio_client/api/models/v1_get_workflow_node_response.py +91 -0
  85. eval_studio_client/api/models/v1_get_workflow_response.py +91 -0
  86. eval_studio_client/api/models/v1_import_evaluation_request.py +7 -2
  87. eval_studio_client/api/models/v1_import_test_cases_from_library_response.py +91 -0
  88. eval_studio_client/api/models/v1_import_test_cases_request.py +95 -0
  89. eval_studio_client/api/models/v1_labeled_test_case.py +91 -0
  90. eval_studio_client/api/models/v1_list_prompt_library_items_response.py +95 -0
  91. eval_studio_client/api/models/v1_list_test_case_library_items_response.py +95 -0
  92. eval_studio_client/api/models/v1_list_workflows_response.py +95 -0
  93. eval_studio_client/api/models/v1_process_workflow_node_response.py +91 -0
  94. eval_studio_client/api/models/v1_prompt_library_item.py +129 -0
  95. eval_studio_client/api/models/v1_test_case.py +6 -2
  96. eval_studio_client/api/models/v1_test_suite_evaluates.py +39 -0
  97. eval_studio_client/api/models/v1_update_workflow_node_response.py +91 -0
  98. eval_studio_client/api/models/v1_update_workflow_response.py +91 -0
  99. eval_studio_client/api/models/v1_workflow.py +156 -0
  100. eval_studio_client/api/models/v1_workflow_edge.py +123 -0
  101. eval_studio_client/api/models/v1_workflow_edge_type.py +37 -0
  102. eval_studio_client/api/models/v1_workflow_node.py +156 -0
  103. eval_studio_client/api/models/v1_workflow_node_artifact.py +122 -0
  104. eval_studio_client/api/models/v1_workflow_node_artifacts.py +97 -0
  105. eval_studio_client/api/models/v1_workflow_node_attributes.py +87 -0
  106. eval_studio_client/api/models/v1_workflow_node_status.py +40 -0
  107. eval_studio_client/api/models/v1_workflow_node_type.py +41 -0
  108. eval_studio_client/api/models/v1_workflow_node_view.py +38 -0
  109. eval_studio_client/api/models/v1_workflow_type.py +37 -0
  110. eval_studio_client/api/test/test_human_calibration_service_api.py +38 -0
  111. eval_studio_client/api/test/test_perturbation_service_create_perturbation_request.py +20 -2
  112. eval_studio_client/api/test/test_prompt_generation_service_auto_generate_prompts_request.py +4 -1
  113. eval_studio_client/api/test/test_prompt_library_service_api.py +43 -0
  114. eval_studio_client/api/test/test_protobuf_null_value.py +33 -0
  115. eval_studio_client/api/test/test_required_the_test_case_to_update.py +4 -1
  116. eval_studio_client/api/test/test_required_the_updated_workflow.py +88 -0
  117. eval_studio_client/api/test/test_required_the_updated_workflow_node.py +80 -0
  118. eval_studio_client/api/test/test_test_service_api.py +12 -0
  119. eval_studio_client/api/test/test_test_service_generate_test_cases_request.py +4 -1
  120. eval_studio_client/api/test/test_test_service_import_test_cases_from_library_request.py +56 -0
  121. eval_studio_client/api/test/test_test_service_list_test_case_library_items_request.py +63 -0
  122. eval_studio_client/api/test/test_test_service_perturb_test_request.py +4 -1
  123. eval_studio_client/api/test/test_v1_batch_delete_test_cases_response.py +4 -1
  124. eval_studio_client/api/test/test_v1_batch_delete_workflows_request.py +53 -0
  125. eval_studio_client/api/test/test_v1_batch_delete_workflows_response.py +92 -0
  126. eval_studio_client/api/test/test_v1_batch_get_workflow_edges_response.py +64 -0
  127. eval_studio_client/api/test/test_v1_batch_get_workflow_nodes_response.py +84 -0
  128. eval_studio_client/api/test/test_v1_create_evaluation_request.py +20 -2
  129. eval_studio_client/api/test/test_v1_create_test_case_response.py +4 -1
  130. eval_studio_client/api/test/test_v1_create_workflow_response.py +90 -0
  131. eval_studio_client/api/test/test_v1_delete_test_case_response.py +4 -1
  132. eval_studio_client/api/test/test_v1_delete_workflow_node_response.py +82 -0
  133. eval_studio_client/api/test/test_v1_delete_workflow_response.py +90 -0
  134. eval_studio_client/api/test/test_v1_estimate_threshold_request.py +60 -0
  135. eval_studio_client/api/test/test_v1_evaluation_test.py +4 -1
  136. eval_studio_client/api/test/test_v1_find_all_test_cases_by_id_response.py +4 -1
  137. eval_studio_client/api/test/test_v1_get_test_case_response.py +4 -1
  138. eval_studio_client/api/test/test_v1_get_workflow_node_prerequisites_response.py +56 -0
  139. eval_studio_client/api/test/test_v1_get_workflow_node_response.py +82 -0
  140. eval_studio_client/api/test/test_v1_get_workflow_response.py +90 -0
  141. eval_studio_client/api/test/test_v1_import_evaluation_request.py +16 -1
  142. eval_studio_client/api/test/test_v1_import_test_cases_from_library_response.py +71 -0
  143. eval_studio_client/api/test/test_v1_import_test_cases_request.py +57 -0
  144. eval_studio_client/api/test/test_v1_labeled_test_case.py +53 -0
  145. eval_studio_client/api/test/test_v1_list_prompt_library_items_response.py +71 -0
  146. eval_studio_client/api/test/test_v1_list_test_case_library_items_response.py +71 -0
  147. eval_studio_client/api/test/test_v1_list_test_cases_response.py +4 -1
  148. eval_studio_client/api/test/test_v1_list_workflows_response.py +92 -0
  149. eval_studio_client/api/test/test_v1_process_workflow_node_response.py +71 -0
  150. eval_studio_client/api/test/test_v1_prompt_library_item.py +68 -0
  151. eval_studio_client/api/test/test_v1_test_case.py +4 -1
  152. eval_studio_client/api/test/test_v1_test_suite_evaluates.py +33 -0
  153. eval_studio_client/api/test/test_v1_update_test_case_response.py +4 -1
  154. eval_studio_client/api/test/test_v1_update_workflow_node_response.py +82 -0
  155. eval_studio_client/api/test/test_v1_update_workflow_response.py +90 -0
  156. eval_studio_client/api/test/test_v1_workflow.py +89 -0
  157. eval_studio_client/api/test/test_v1_workflow_edge.py +61 -0
  158. eval_studio_client/api/test/test_v1_workflow_edge_type.py +33 -0
  159. eval_studio_client/api/test/test_v1_workflow_node.py +81 -0
  160. eval_studio_client/api/test/test_v1_workflow_node_artifact.py +61 -0
  161. eval_studio_client/api/test/test_v1_workflow_node_artifacts.py +64 -0
  162. eval_studio_client/api/test/test_v1_workflow_node_attributes.py +51 -0
  163. eval_studio_client/api/test/test_v1_workflow_node_status.py +33 -0
  164. eval_studio_client/api/test/test_v1_workflow_node_type.py +33 -0
  165. eval_studio_client/api/test/test_v1_workflow_node_view.py +33 -0
  166. eval_studio_client/api/test/test_v1_workflow_type.py +33 -0
  167. eval_studio_client/api/test/test_workflow_edge_service_api.py +38 -0
  168. eval_studio_client/api/test/test_workflow_node_service_api.py +73 -0
  169. eval_studio_client/api/test/test_workflow_service_api.py +73 -0
  170. eval_studio_client/client.py +7 -0
  171. eval_studio_client/dashboards.py +66 -18
  172. eval_studio_client/gen/openapiv2/eval_studio.swagger.json +2665 -794
  173. eval_studio_client/leaderboards.py +125 -0
  174. eval_studio_client/models.py +3 -42
  175. eval_studio_client/test_labs.py +49 -21
  176. eval_studio_client/tests.py +221 -51
  177. eval_studio_client/utils.py +26 -0
  178. {eval_studio_client-1.0.0a1.dist-info → eval_studio_client-1.0.1.dist-info}/METADATA +1 -2
  179. {eval_studio_client-1.0.0a1.dist-info → eval_studio_client-1.0.1.dist-info}/RECORD +180 -50
  180. {eval_studio_client-1.0.0a1.dist-info → eval_studio_client-1.0.1.dist-info}/WHEEL +1 -1
@@ -0,0 +1,91 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ ai/h2o/eval_studio/v1/collection.proto
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: version not set
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict
21
+ from typing import Any, ClassVar, Dict, List, Optional
22
+ from eval_studio_client.api.models.v1_workflow import V1Workflow
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+
26
+ class V1UpdateWorkflowResponse(BaseModel):
27
+ """
28
+ V1UpdateWorkflowResponse
29
+ """ # noqa: E501
30
+ workflow: Optional[V1Workflow] = None
31
+ __properties: ClassVar[List[str]] = ["workflow"]
32
+
33
+ model_config = ConfigDict(
34
+ populate_by_name=True,
35
+ validate_assignment=True,
36
+ protected_namespaces=(),
37
+ )
38
+
39
+
40
+ def to_str(self) -> str:
41
+ """Returns the string representation of the model using alias"""
42
+ return pprint.pformat(self.model_dump(by_alias=True))
43
+
44
+ def to_json(self) -> str:
45
+ """Returns the JSON representation of the model using alias"""
46
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
47
+ return json.dumps(self.to_dict())
48
+
49
+ @classmethod
50
+ def from_json(cls, json_str: str) -> Optional[Self]:
51
+ """Create an instance of V1UpdateWorkflowResponse from a JSON string"""
52
+ return cls.from_dict(json.loads(json_str))
53
+
54
+ def to_dict(self) -> Dict[str, Any]:
55
+ """Return the dictionary representation of the model using alias.
56
+
57
+ This has the following differences from calling pydantic's
58
+ `self.model_dump(by_alias=True)`:
59
+
60
+ * `None` is only added to the output dict for nullable fields that
61
+ were set at model initialization. Other fields with value `None`
62
+ are ignored.
63
+ """
64
+ excluded_fields: Set[str] = set([
65
+ ])
66
+
67
+ _dict = self.model_dump(
68
+ by_alias=True,
69
+ exclude=excluded_fields,
70
+ exclude_none=True,
71
+ )
72
+ # override the default output from pydantic by calling `to_dict()` of workflow
73
+ if self.workflow:
74
+ _dict['workflow'] = self.workflow.to_dict()
75
+ return _dict
76
+
77
+ @classmethod
78
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
79
+ """Create an instance of V1UpdateWorkflowResponse from a dict"""
80
+ if obj is None:
81
+ return None
82
+
83
+ if not isinstance(obj, dict):
84
+ return cls.model_validate(obj)
85
+
86
+ _obj = cls.model_validate({
87
+ "workflow": V1Workflow.from_dict(obj["workflow"]) if obj.get("workflow") is not None else None
88
+ })
89
+ return _obj
90
+
91
+
@@ -0,0 +1,156 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ ai/h2o/eval_studio/v1/collection.proto
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: version not set
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from datetime import datetime
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr
22
+ from typing import Any, ClassVar, Dict, List, Optional
23
+ from eval_studio_client.api.models.v1_workflow_node_artifacts import V1WorkflowNodeArtifacts
24
+ from eval_studio_client.api.models.v1_workflow_type import V1WorkflowType
25
+ from typing import Optional, Set
26
+ from typing_extensions import Self
27
+
28
+ class V1Workflow(BaseModel):
29
+ """
30
+ Workflow represents a workflow in Eval Studio. It consists of WorkflowNodes and WorkflowEdges.
31
+ """ # noqa: E501
32
+ name: Optional[StrictStr] = Field(default=None, description="Output only. Immutable. Resource name of the Workflow in format of `workflows/{workflow_id}`.")
33
+ display_name: Optional[StrictStr] = Field(default=None, description="Human-readable name of the Workflow.", alias="displayName")
34
+ description: Optional[StrictStr] = Field(default=None, description="Optional description of the Workflow.")
35
+ create_time: Optional[datetime] = Field(default=None, description="Output only. Immutable. Creation time of the Workflow.", alias="createTime")
36
+ creator: Optional[StrictStr] = Field(default=None, description="Output only. Immutable. Name of the user or service that requested creation of the Workflow.")
37
+ update_time: Optional[datetime] = Field(default=None, description="Output only. Optional. Last update time of the Workflow.", alias="updateTime")
38
+ updater: Optional[StrictStr] = Field(default=None, description="Output only. Name of the user or service that requested update of the Workflow.")
39
+ delete_time: Optional[datetime] = Field(default=None, description="Output only. Optional. Deletion time of the Workflow.", alias="deleteTime")
40
+ deleter: Optional[StrictStr] = Field(default=None, description="Output only. Name of the user or service that requested deletion of the Workflow.")
41
+ type: Optional[V1WorkflowType] = None
42
+ model: Optional[StrictStr] = Field(default=None, description="Immutable. Resource name of the Model associated with this Workflow.")
43
+ nodes: Optional[List[StrictStr]] = Field(default=None, description="Output only. List of the WorkflowNodes in the Workflow.")
44
+ edges: Optional[List[StrictStr]] = Field(default=None, description="Output only. List of the WorkflowEdges in the Workflow.")
45
+ outputs: Optional[Dict[str, Dict[str, Any]]] = Field(default=None, description="Output only. Optional. Computed outputs of all the WorkflowNodes in the Workflow.")
46
+ output_artifacts: Optional[Dict[str, V1WorkflowNodeArtifacts]] = Field(default=None, description="Output only. Optional. List of the WorkflowNodeArtifacts produces by all the WorkflowNodes in the Workflow.", alias="outputArtifacts")
47
+ llm_model: Optional[StrictStr] = Field(default=None, description="Immutable. LLM Model to use.", alias="llmModel")
48
+ model_parameters: Optional[StrictStr] = Field(default=None, description="Optional. Immutable. Model parameter overrides in JSON format.", alias="modelParameters")
49
+ __properties: ClassVar[List[str]] = ["name", "displayName", "description", "createTime", "creator", "updateTime", "updater", "deleteTime", "deleter", "type", "model", "nodes", "edges", "outputs", "outputArtifacts", "llmModel", "modelParameters"]
50
+
51
+ model_config = ConfigDict(
52
+ populate_by_name=True,
53
+ validate_assignment=True,
54
+ protected_namespaces=(),
55
+ )
56
+
57
+
58
+ def to_str(self) -> str:
59
+ """Returns the string representation of the model using alias"""
60
+ return pprint.pformat(self.model_dump(by_alias=True))
61
+
62
+ def to_json(self) -> str:
63
+ """Returns the JSON representation of the model using alias"""
64
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
65
+ return json.dumps(self.to_dict())
66
+
67
+ @classmethod
68
+ def from_json(cls, json_str: str) -> Optional[Self]:
69
+ """Create an instance of V1Workflow from a JSON string"""
70
+ return cls.from_dict(json.loads(json_str))
71
+
72
+ def to_dict(self) -> Dict[str, Any]:
73
+ """Return the dictionary representation of the model using alias.
74
+
75
+ This has the following differences from calling pydantic's
76
+ `self.model_dump(by_alias=True)`:
77
+
78
+ * `None` is only added to the output dict for nullable fields that
79
+ were set at model initialization. Other fields with value `None`
80
+ are ignored.
81
+ * OpenAPI `readOnly` fields are excluded.
82
+ * OpenAPI `readOnly` fields are excluded.
83
+ * OpenAPI `readOnly` fields are excluded.
84
+ * OpenAPI `readOnly` fields are excluded.
85
+ * OpenAPI `readOnly` fields are excluded.
86
+ * OpenAPI `readOnly` fields are excluded.
87
+ * OpenAPI `readOnly` fields are excluded.
88
+ * OpenAPI `readOnly` fields are excluded.
89
+ * OpenAPI `readOnly` fields are excluded.
90
+ * OpenAPI `readOnly` fields are excluded.
91
+ * OpenAPI `readOnly` fields are excluded.
92
+ """
93
+ excluded_fields: Set[str] = set([
94
+ "name",
95
+ "create_time",
96
+ "creator",
97
+ "update_time",
98
+ "updater",
99
+ "delete_time",
100
+ "deleter",
101
+ "nodes",
102
+ "edges",
103
+ "outputs",
104
+ "output_artifacts",
105
+ ])
106
+
107
+ _dict = self.model_dump(
108
+ by_alias=True,
109
+ exclude=excluded_fields,
110
+ exclude_none=True,
111
+ )
112
+ # override the default output from pydantic by calling `to_dict()` of each value in output_artifacts (dict)
113
+ _field_dict = {}
114
+ if self.output_artifacts:
115
+ for _key in self.output_artifacts:
116
+ if self.output_artifacts[_key]:
117
+ _field_dict[_key] = self.output_artifacts[_key].to_dict()
118
+ _dict['outputArtifacts'] = _field_dict
119
+ return _dict
120
+
121
+ @classmethod
122
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
123
+ """Create an instance of V1Workflow from a dict"""
124
+ if obj is None:
125
+ return None
126
+
127
+ if not isinstance(obj, dict):
128
+ return cls.model_validate(obj)
129
+
130
+ _obj = cls.model_validate({
131
+ "name": obj.get("name"),
132
+ "displayName": obj.get("displayName"),
133
+ "description": obj.get("description"),
134
+ "createTime": obj.get("createTime"),
135
+ "creator": obj.get("creator"),
136
+ "updateTime": obj.get("updateTime"),
137
+ "updater": obj.get("updater"),
138
+ "deleteTime": obj.get("deleteTime"),
139
+ "deleter": obj.get("deleter"),
140
+ "type": obj.get("type"),
141
+ "model": obj.get("model"),
142
+ "nodes": obj.get("nodes"),
143
+ "edges": obj.get("edges"),
144
+ "outputs": obj.get("outputs"),
145
+ "outputArtifacts": dict(
146
+ (_k, V1WorkflowNodeArtifacts.from_dict(_v))
147
+ for _k, _v in obj["outputArtifacts"].items()
148
+ )
149
+ if obj.get("outputArtifacts") is not None
150
+ else None,
151
+ "llmModel": obj.get("llmModel"),
152
+ "modelParameters": obj.get("modelParameters")
153
+ })
154
+ return _obj
155
+
156
+
@@ -0,0 +1,123 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ ai/h2o/eval_studio/v1/collection.proto
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: version not set
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from datetime import datetime
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr
22
+ from typing import Any, ClassVar, Dict, List, Optional
23
+ from eval_studio_client.api.models.v1_workflow_edge_type import V1WorkflowEdgeType
24
+ from typing import Optional, Set
25
+ from typing_extensions import Self
26
+
27
+ class V1WorkflowEdge(BaseModel):
28
+ """
29
+ WorkflowEdge represents an oriented edge between two WorkflowNodes in an Eval Studio Workflow.
30
+ """ # noqa: E501
31
+ name: Optional[StrictStr] = Field(default=None, description="Resource name of the Workflow in format of `workflow/{workflow_id}/edges/{edge_id}`.")
32
+ parent: Optional[StrictStr] = Field(default=None, description="Output only. Immutable. Resource name of the parent Workflow in format of `workflow/{workflow_id}`.")
33
+ create_time: Optional[datetime] = Field(default=None, description="Output only. Immutable. Creation time of the WorkflowEdge.", alias="createTime")
34
+ creator: Optional[StrictStr] = Field(default=None, description="Output only. Immutable. Name of the user or service that requested creation of the WorkflowEdge.")
35
+ update_time: Optional[datetime] = Field(default=None, description="Output only. Optional. Last update time of the WorkflowEdge.", alias="updateTime")
36
+ updater: Optional[StrictStr] = Field(default=None, description="Output only. Name of the user or service that requested update of the WorkflowEdge.")
37
+ delete_time: Optional[datetime] = Field(default=None, description="Output only. Optional. Deletion time of the WorkflowEdge.", alias="deleteTime")
38
+ deleter: Optional[StrictStr] = Field(default=None, description="Output only. Name of the user or service that requested deletion of the WorkflowEdge.")
39
+ type: Optional[V1WorkflowEdgeType] = None
40
+ var_from: Optional[StrictStr] = Field(default=None, description="Resource name of the source WorkflowNode in format of `workflow/{workflow_id}/nodes/{node_id}`.", alias="from")
41
+ to: Optional[StrictStr] = Field(default=None, description="Resource name of the target WorkflowNode in format of `workflow/{workflow_id}/nodes/{node_id}`.")
42
+ __properties: ClassVar[List[str]] = ["name", "parent", "createTime", "creator", "updateTime", "updater", "deleteTime", "deleter", "type", "from", "to"]
43
+
44
+ model_config = ConfigDict(
45
+ populate_by_name=True,
46
+ validate_assignment=True,
47
+ protected_namespaces=(),
48
+ )
49
+
50
+
51
+ def to_str(self) -> str:
52
+ """Returns the string representation of the model using alias"""
53
+ return pprint.pformat(self.model_dump(by_alias=True))
54
+
55
+ def to_json(self) -> str:
56
+ """Returns the JSON representation of the model using alias"""
57
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
58
+ return json.dumps(self.to_dict())
59
+
60
+ @classmethod
61
+ def from_json(cls, json_str: str) -> Optional[Self]:
62
+ """Create an instance of V1WorkflowEdge from a JSON string"""
63
+ return cls.from_dict(json.loads(json_str))
64
+
65
+ def to_dict(self) -> Dict[str, Any]:
66
+ """Return the dictionary representation of the model using alias.
67
+
68
+ This has the following differences from calling pydantic's
69
+ `self.model_dump(by_alias=True)`:
70
+
71
+ * `None` is only added to the output dict for nullable fields that
72
+ were set at model initialization. Other fields with value `None`
73
+ are ignored.
74
+ * OpenAPI `readOnly` fields are excluded.
75
+ * OpenAPI `readOnly` fields are excluded.
76
+ * OpenAPI `readOnly` fields are excluded.
77
+ * OpenAPI `readOnly` fields are excluded.
78
+ * OpenAPI `readOnly` fields are excluded.
79
+ * OpenAPI `readOnly` fields are excluded.
80
+ * OpenAPI `readOnly` fields are excluded.
81
+ """
82
+ excluded_fields: Set[str] = set([
83
+ "parent",
84
+ "create_time",
85
+ "creator",
86
+ "update_time",
87
+ "updater",
88
+ "delete_time",
89
+ "deleter",
90
+ ])
91
+
92
+ _dict = self.model_dump(
93
+ by_alias=True,
94
+ exclude=excluded_fields,
95
+ exclude_none=True,
96
+ )
97
+ return _dict
98
+
99
+ @classmethod
100
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
101
+ """Create an instance of V1WorkflowEdge from a dict"""
102
+ if obj is None:
103
+ return None
104
+
105
+ if not isinstance(obj, dict):
106
+ return cls.model_validate(obj)
107
+
108
+ _obj = cls.model_validate({
109
+ "name": obj.get("name"),
110
+ "parent": obj.get("parent"),
111
+ "createTime": obj.get("createTime"),
112
+ "creator": obj.get("creator"),
113
+ "updateTime": obj.get("updateTime"),
114
+ "updater": obj.get("updater"),
115
+ "deleteTime": obj.get("deleteTime"),
116
+ "deleter": obj.get("deleter"),
117
+ "type": obj.get("type"),
118
+ "from": obj.get("from"),
119
+ "to": obj.get("to")
120
+ })
121
+ return _obj
122
+
123
+
@@ -0,0 +1,37 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ ai/h2o/eval_studio/v1/collection.proto
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: version not set
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import json
17
+ from enum import Enum
18
+ from typing_extensions import Self
19
+
20
+
21
+ class V1WorkflowEdgeType(str, Enum):
22
+ """
23
+ WorkflowEdgeType represents the type of a WorkflowEdge. - WORKFLOW_EDGE_TYPE_UNSPECIFIED: Unspecified type. - WORKFLOW_EDGE_TYPE_SIMPLE: Simple edge without any conditions.
24
+ """
25
+
26
+ """
27
+ allowed enum values
28
+ """
29
+ WORKFLOW_EDGE_TYPE_UNSPECIFIED = 'WORKFLOW_EDGE_TYPE_UNSPECIFIED'
30
+ WORKFLOW_EDGE_TYPE_SIMPLE = 'WORKFLOW_EDGE_TYPE_SIMPLE'
31
+
32
+ @classmethod
33
+ def from_json(cls, json_str: str) -> Self:
34
+ """Create an instance of V1WorkflowEdgeType from a JSON string"""
35
+ return cls(json.loads(json_str))
36
+
37
+
@@ -0,0 +1,156 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ ai/h2o/eval_studio/v1/collection.proto
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: version not set
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from datetime import datetime
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr
22
+ from typing import Any, ClassVar, Dict, List, Optional
23
+ from eval_studio_client.api.models.v1_workflow_node_artifact import V1WorkflowNodeArtifact
24
+ from eval_studio_client.api.models.v1_workflow_node_attributes import V1WorkflowNodeAttributes
25
+ from eval_studio_client.api.models.v1_workflow_node_status import V1WorkflowNodeStatus
26
+ from eval_studio_client.api.models.v1_workflow_node_type import V1WorkflowNodeType
27
+ from typing import Optional, Set
28
+ from typing_extensions import Self
29
+
30
+ class V1WorkflowNode(BaseModel):
31
+ """
32
+ WorkflowNode represents a node in an Eval Studio Workflow.
33
+ """ # noqa: E501
34
+ name: Optional[StrictStr] = Field(default=None, description="Output only. Immutable. Resource name of the Workflow in format of `workflows/{workflow_id}/nodes/{node_id}`.")
35
+ parent: Optional[StrictStr] = Field(default=None, description="Output only. Immutable. Resource name of the parent Workflow in format of `workflows/{workflow_id}/`.")
36
+ display_name: Optional[StrictStr] = Field(default=None, description="Human-readable name of the WorkflowNode.", alias="displayName")
37
+ description: Optional[StrictStr] = Field(default=None, description="Optional description of the WorkflowNode.")
38
+ create_time: Optional[datetime] = Field(default=None, description="Output only. Immutable. Creation time of the WorkflowNode.", alias="createTime")
39
+ creator: Optional[StrictStr] = Field(default=None, description="Output only. Immutable. Name of the user or service that requested creation of the WorkflowNode.")
40
+ update_time: Optional[datetime] = Field(default=None, description="Output only. Optional. Last update time of the WorkflowNode.", alias="updateTime")
41
+ updater: Optional[StrictStr] = Field(default=None, description="Output only. Name of the user or service that requested update of the WorkflowNode.")
42
+ delete_time: Optional[datetime] = Field(default=None, description="Output only. Optional. Deletion time of the WorkflowNode.", alias="deleteTime")
43
+ deleter: Optional[StrictStr] = Field(default=None, description="Output only. Name of the user or service that requested deletion of the WorkflowNode.")
44
+ type: Optional[V1WorkflowNodeType] = None
45
+ parameters: Optional[Dict[str, Any]] = Field(default=None, description="User-given parameters for the WorkflowNode.")
46
+ outputs: Optional[Dict[str, Any]] = Field(default=None, description="Output only. Computed outputs of the WorkflowNode.")
47
+ output_artifacts: Optional[List[V1WorkflowNodeArtifact]] = Field(default=None, description="Output only. Optional. List of the WorkflowNodeArtifacts produces by the WorkflowNode.", alias="outputArtifacts")
48
+ status: Optional[V1WorkflowNodeStatus] = None
49
+ attributes: Optional[V1WorkflowNodeAttributes] = None
50
+ processed_by_operation: Optional[StrictStr] = Field(default=None, description="Output only. Optional. Resource name of the latest Operation that has processed or is currently processing this WorkflowNode.", alias="processedByOperation")
51
+ __properties: ClassVar[List[str]] = ["name", "parent", "displayName", "description", "createTime", "creator", "updateTime", "updater", "deleteTime", "deleter", "type", "parameters", "outputs", "outputArtifacts", "status", "attributes", "processedByOperation"]
52
+
53
+ model_config = ConfigDict(
54
+ populate_by_name=True,
55
+ validate_assignment=True,
56
+ protected_namespaces=(),
57
+ )
58
+
59
+
60
+ def to_str(self) -> str:
61
+ """Returns the string representation of the model using alias"""
62
+ return pprint.pformat(self.model_dump(by_alias=True))
63
+
64
+ def to_json(self) -> str:
65
+ """Returns the JSON representation of the model using alias"""
66
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
67
+ return json.dumps(self.to_dict())
68
+
69
+ @classmethod
70
+ def from_json(cls, json_str: str) -> Optional[Self]:
71
+ """Create an instance of V1WorkflowNode from a JSON string"""
72
+ return cls.from_dict(json.loads(json_str))
73
+
74
+ def to_dict(self) -> Dict[str, Any]:
75
+ """Return the dictionary representation of the model using alias.
76
+
77
+ This has the following differences from calling pydantic's
78
+ `self.model_dump(by_alias=True)`:
79
+
80
+ * `None` is only added to the output dict for nullable fields that
81
+ were set at model initialization. Other fields with value `None`
82
+ are ignored.
83
+ * OpenAPI `readOnly` fields are excluded.
84
+ * OpenAPI `readOnly` fields are excluded.
85
+ * OpenAPI `readOnly` fields are excluded.
86
+ * OpenAPI `readOnly` fields are excluded.
87
+ * OpenAPI `readOnly` fields are excluded.
88
+ * OpenAPI `readOnly` fields are excluded.
89
+ * OpenAPI `readOnly` fields are excluded.
90
+ * OpenAPI `readOnly` fields are excluded.
91
+ * OpenAPI `readOnly` fields are excluded.
92
+ * OpenAPI `readOnly` fields are excluded.
93
+ * OpenAPI `readOnly` fields are excluded.
94
+ """
95
+ excluded_fields: Set[str] = set([
96
+ "name",
97
+ "parent",
98
+ "create_time",
99
+ "creator",
100
+ "update_time",
101
+ "updater",
102
+ "delete_time",
103
+ "deleter",
104
+ "outputs",
105
+ "output_artifacts",
106
+ "processed_by_operation",
107
+ ])
108
+
109
+ _dict = self.model_dump(
110
+ by_alias=True,
111
+ exclude=excluded_fields,
112
+ exclude_none=True,
113
+ )
114
+ # override the default output from pydantic by calling `to_dict()` of each item in output_artifacts (list)
115
+ _items = []
116
+ if self.output_artifacts:
117
+ for _item in self.output_artifacts:
118
+ if _item:
119
+ _items.append(_item.to_dict())
120
+ _dict['outputArtifacts'] = _items
121
+ # override the default output from pydantic by calling `to_dict()` of attributes
122
+ if self.attributes:
123
+ _dict['attributes'] = self.attributes.to_dict()
124
+ return _dict
125
+
126
+ @classmethod
127
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
128
+ """Create an instance of V1WorkflowNode from a dict"""
129
+ if obj is None:
130
+ return None
131
+
132
+ if not isinstance(obj, dict):
133
+ return cls.model_validate(obj)
134
+
135
+ _obj = cls.model_validate({
136
+ "name": obj.get("name"),
137
+ "parent": obj.get("parent"),
138
+ "displayName": obj.get("displayName"),
139
+ "description": obj.get("description"),
140
+ "createTime": obj.get("createTime"),
141
+ "creator": obj.get("creator"),
142
+ "updateTime": obj.get("updateTime"),
143
+ "updater": obj.get("updater"),
144
+ "deleteTime": obj.get("deleteTime"),
145
+ "deleter": obj.get("deleter"),
146
+ "type": obj.get("type"),
147
+ "parameters": obj.get("parameters"),
148
+ "outputs": obj.get("outputs"),
149
+ "outputArtifacts": [V1WorkflowNodeArtifact.from_dict(_item) for _item in obj["outputArtifacts"]] if obj.get("outputArtifacts") is not None else None,
150
+ "status": obj.get("status"),
151
+ "attributes": V1WorkflowNodeAttributes.from_dict(obj["attributes"]) if obj.get("attributes") is not None else None,
152
+ "processedByOperation": obj.get("processedByOperation")
153
+ })
154
+ return _obj
155
+
156
+