pygeai 0.6.0b6__py3-none-any.whl → 0.6.0b10__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 (227) hide show
  1. pygeai/_docs/source/conf.py +78 -6
  2. pygeai/_docs/source/content/api_reference/admin.rst +161 -0
  3. pygeai/_docs/source/content/api_reference/assistant.rst +326 -0
  4. pygeai/_docs/source/content/api_reference/auth.rst +379 -0
  5. pygeai/_docs/source/content/api_reference/embeddings.rst +31 -1
  6. pygeai/_docs/source/content/api_reference/evaluation.rst +590 -0
  7. pygeai/_docs/source/content/api_reference/feedback.rst +237 -0
  8. pygeai/_docs/source/content/api_reference/files.rst +592 -0
  9. pygeai/_docs/source/content/api_reference/gam.rst +401 -0
  10. pygeai/_docs/source/content/api_reference/health.rst +58 -0
  11. pygeai/_docs/source/content/api_reference/project.rst +20 -18
  12. pygeai/_docs/source/content/api_reference/proxy.rst +318 -0
  13. pygeai/_docs/source/content/api_reference/rerank.rst +94 -0
  14. pygeai/_docs/source/content/api_reference/secrets.rst +495 -0
  15. pygeai/_docs/source/content/api_reference/usage_limits.rst +390 -0
  16. pygeai/_docs/source/content/api_reference.rst +13 -1
  17. pygeai/_docs/source/content/debugger.rst +376 -83
  18. pygeai/_docs/source/content/migration.rst +528 -0
  19. pygeai/_docs/source/content/modules.rst +1 -1
  20. pygeai/_docs/source/index.rst +59 -7
  21. pygeai/_docs/source/pygeai.auth.rst +29 -0
  22. pygeai/_docs/source/pygeai.cli.commands.rst +16 -0
  23. pygeai/_docs/source/pygeai.cli.rst +8 -0
  24. pygeai/_docs/source/pygeai.core.utils.rst +16 -0
  25. pygeai/_docs/source/pygeai.rst +1 -0
  26. pygeai/_docs/source/pygeai.tests.auth.rst +21 -0
  27. pygeai/_docs/source/pygeai.tests.cli.commands.rst +16 -0
  28. pygeai/_docs/source/pygeai.tests.cli.rst +16 -0
  29. pygeai/_docs/source/pygeai.tests.core.base.rst +8 -0
  30. pygeai/_docs/source/pygeai.tests.core.embeddings.rst +16 -0
  31. pygeai/_docs/source/pygeai.tests.core.files.rst +8 -0
  32. pygeai/_docs/source/pygeai.tests.core.plugins.rst +21 -0
  33. pygeai/_docs/source/pygeai.tests.core.rst +1 -0
  34. pygeai/_docs/source/pygeai.tests.evaluation.dataset.rst +21 -0
  35. pygeai/_docs/source/pygeai.tests.evaluation.plan.rst +21 -0
  36. pygeai/_docs/source/pygeai.tests.evaluation.result.rst +21 -0
  37. pygeai/_docs/source/pygeai.tests.evaluation.rst +20 -0
  38. pygeai/_docs/source/pygeai.tests.integration.lab.processes.rst +8 -0
  39. pygeai/_docs/source/pygeai.tests.organization.rst +8 -0
  40. pygeai/_docs/source/pygeai.tests.rst +2 -0
  41. pygeai/_docs/source/pygeai.tests.snippets.auth.rst +10 -0
  42. pygeai/_docs/source/pygeai.tests.snippets.chat.rst +40 -0
  43. pygeai/_docs/source/pygeai.tests.snippets.dbg.rst +45 -0
  44. pygeai/_docs/source/pygeai.tests.snippets.embeddings.rst +40 -0
  45. pygeai/_docs/source/pygeai.tests.snippets.evaluation.dataset.rst +197 -0
  46. pygeai/_docs/source/pygeai.tests.snippets.evaluation.plan.rst +133 -0
  47. pygeai/_docs/source/pygeai.tests.snippets.evaluation.result.rst +37 -0
  48. pygeai/_docs/source/pygeai.tests.snippets.evaluation.rst +10 -0
  49. pygeai/_docs/source/pygeai.tests.snippets.organization.rst +40 -0
  50. pygeai/_docs/source/pygeai.tests.snippets.rst +2 -0
  51. pygeai/admin/clients.py +12 -32
  52. pygeai/assistant/clients.py +16 -44
  53. pygeai/assistant/data/clients.py +1 -0
  54. pygeai/assistant/data_analyst/clients.py +6 -13
  55. pygeai/assistant/rag/clients.py +24 -67
  56. pygeai/auth/clients.py +88 -14
  57. pygeai/auth/endpoints.py +4 -0
  58. pygeai/chat/clients.py +192 -25
  59. pygeai/chat/endpoints.py +2 -1
  60. pygeai/cli/commands/auth.py +178 -2
  61. pygeai/cli/commands/chat.py +227 -1
  62. pygeai/cli/commands/embeddings.py +56 -8
  63. pygeai/cli/commands/lab/ai_lab.py +0 -2
  64. pygeai/cli/commands/migrate.py +994 -434
  65. pygeai/cli/commands/organization.py +241 -0
  66. pygeai/cli/error_handler.py +116 -0
  67. pygeai/cli/geai.py +28 -10
  68. pygeai/cli/parsers.py +8 -2
  69. pygeai/core/base/clients.py +4 -1
  70. pygeai/core/common/exceptions.py +11 -10
  71. pygeai/core/embeddings/__init__.py +19 -0
  72. pygeai/core/embeddings/clients.py +20 -9
  73. pygeai/core/embeddings/mappers.py +16 -2
  74. pygeai/core/embeddings/responses.py +9 -2
  75. pygeai/core/feedback/clients.py +4 -8
  76. pygeai/core/files/clients.py +10 -25
  77. pygeai/core/files/managers.py +42 -0
  78. pygeai/core/llm/clients.py +11 -26
  79. pygeai/core/models.py +107 -0
  80. pygeai/core/plugins/clients.py +4 -7
  81. pygeai/core/rerank/clients.py +4 -8
  82. pygeai/core/secrets/clients.py +14 -37
  83. pygeai/core/services/rest.py +1 -1
  84. pygeai/core/utils/parsers.py +32 -0
  85. pygeai/core/utils/validators.py +10 -0
  86. pygeai/dbg/__init__.py +3 -0
  87. pygeai/dbg/debugger.py +565 -70
  88. pygeai/evaluation/clients.py +2 -1
  89. pygeai/evaluation/dataset/clients.py +46 -44
  90. pygeai/evaluation/plan/clients.py +28 -26
  91. pygeai/evaluation/result/clients.py +38 -5
  92. pygeai/gam/clients.py +10 -25
  93. pygeai/health/clients.py +4 -7
  94. pygeai/lab/agents/clients.py +21 -54
  95. pygeai/lab/agents/endpoints.py +2 -0
  96. pygeai/lab/clients.py +1 -0
  97. pygeai/lab/models.py +3 -3
  98. pygeai/lab/processes/clients.py +45 -127
  99. pygeai/lab/strategies/clients.py +11 -25
  100. pygeai/lab/tools/clients.py +23 -67
  101. pygeai/lab/tools/endpoints.py +3 -0
  102. pygeai/migration/__init__.py +31 -0
  103. pygeai/migration/strategies.py +404 -155
  104. pygeai/migration/tools.py +170 -3
  105. pygeai/organization/clients.py +135 -51
  106. pygeai/organization/endpoints.py +6 -1
  107. pygeai/organization/limits/clients.py +32 -91
  108. pygeai/organization/managers.py +157 -1
  109. pygeai/organization/mappers.py +76 -2
  110. pygeai/organization/responses.py +25 -1
  111. pygeai/proxy/clients.py +4 -1
  112. pygeai/tests/admin/test_clients.py +16 -11
  113. pygeai/tests/assistants/rag/test_clients.py +35 -23
  114. pygeai/tests/assistants/test_clients.py +22 -15
  115. pygeai/tests/auth/test_clients.py +191 -7
  116. pygeai/tests/chat/test_clients.py +211 -1
  117. pygeai/tests/cli/commands/test_embeddings.py +32 -9
  118. pygeai/tests/cli/commands/test_evaluation.py +7 -0
  119. pygeai/tests/cli/commands/test_migrate.py +112 -243
  120. pygeai/tests/cli/test_error_handler.py +225 -0
  121. pygeai/tests/cli/test_geai_driver.py +154 -0
  122. pygeai/tests/cli/test_parsers.py +5 -5
  123. pygeai/tests/core/embeddings/test_clients.py +144 -0
  124. pygeai/tests/core/embeddings/test_managers.py +171 -0
  125. pygeai/tests/core/embeddings/test_mappers.py +142 -0
  126. pygeai/tests/core/feedback/test_clients.py +2 -0
  127. pygeai/tests/core/files/test_clients.py +1 -0
  128. pygeai/tests/core/llm/test_clients.py +14 -9
  129. pygeai/tests/core/plugins/test_clients.py +5 -3
  130. pygeai/tests/core/rerank/test_clients.py +1 -0
  131. pygeai/tests/core/secrets/test_clients.py +19 -13
  132. pygeai/tests/dbg/test_debugger.py +453 -75
  133. pygeai/tests/evaluation/dataset/test_clients.py +3 -1
  134. pygeai/tests/evaluation/plan/test_clients.py +4 -2
  135. pygeai/tests/evaluation/result/test_clients.py +7 -5
  136. pygeai/tests/gam/test_clients.py +1 -1
  137. pygeai/tests/health/test_clients.py +1 -0
  138. pygeai/tests/lab/agents/test_clients.py +9 -0
  139. pygeai/tests/lab/processes/test_clients.py +36 -0
  140. pygeai/tests/lab/processes/test_mappers.py +3 -0
  141. pygeai/tests/lab/strategies/test_clients.py +14 -9
  142. pygeai/tests/migration/test_strategies.py +45 -218
  143. pygeai/tests/migration/test_tools.py +133 -9
  144. pygeai/tests/organization/limits/test_clients.py +17 -0
  145. pygeai/tests/organization/test_clients.py +206 -1
  146. pygeai/tests/organization/test_managers.py +122 -1
  147. pygeai/tests/proxy/test_clients.py +2 -0
  148. pygeai/tests/proxy/test_integration.py +1 -0
  149. pygeai/tests/snippets/auth/__init__.py +0 -0
  150. pygeai/tests/snippets/chat/chat_completion_with_reasoning_effort.py +18 -0
  151. pygeai/tests/snippets/chat/get_response.py +15 -0
  152. pygeai/tests/snippets/chat/get_response_streaming.py +20 -0
  153. pygeai/tests/snippets/chat/get_response_with_files.py +16 -0
  154. pygeai/tests/snippets/chat/get_response_with_tools.py +36 -0
  155. pygeai/tests/snippets/dbg/__init__.py +0 -0
  156. pygeai/tests/snippets/dbg/basic_debugging.py +32 -0
  157. pygeai/tests/snippets/dbg/breakpoint_management.py +48 -0
  158. pygeai/tests/snippets/dbg/stack_navigation.py +45 -0
  159. pygeai/tests/snippets/dbg/stepping_example.py +40 -0
  160. pygeai/tests/snippets/embeddings/cache_example.py +31 -0
  161. pygeai/tests/snippets/embeddings/cohere_example.py +41 -0
  162. pygeai/tests/snippets/embeddings/openai_base64_example.py +27 -0
  163. pygeai/tests/snippets/embeddings/openai_example.py +30 -0
  164. pygeai/tests/snippets/embeddings/similarity_example.py +42 -0
  165. pygeai/tests/snippets/evaluation/dataset/__init__.py +0 -0
  166. pygeai/tests/snippets/evaluation/dataset/complete_workflow_example.py +195 -0
  167. pygeai/tests/snippets/evaluation/dataset/create_dataset.py +26 -0
  168. pygeai/tests/snippets/evaluation/dataset/create_dataset_from_file.py +11 -0
  169. pygeai/tests/snippets/evaluation/dataset/create_dataset_row.py +17 -0
  170. pygeai/tests/snippets/evaluation/dataset/create_expected_source.py +18 -0
  171. pygeai/tests/snippets/evaluation/dataset/create_filter_variable.py +19 -0
  172. pygeai/tests/snippets/evaluation/dataset/delete_dataset.py +9 -0
  173. pygeai/tests/snippets/evaluation/dataset/delete_dataset_row.py +10 -0
  174. pygeai/tests/snippets/evaluation/dataset/delete_expected_source.py +15 -0
  175. pygeai/tests/snippets/evaluation/dataset/delete_filter_variable.py +15 -0
  176. pygeai/tests/snippets/evaluation/dataset/get_dataset.py +9 -0
  177. pygeai/tests/snippets/evaluation/dataset/get_dataset_row.py +10 -0
  178. pygeai/tests/snippets/evaluation/dataset/get_expected_source.py +15 -0
  179. pygeai/tests/snippets/evaluation/dataset/get_filter_variable.py +15 -0
  180. pygeai/tests/snippets/evaluation/dataset/list_dataset_rows.py +9 -0
  181. pygeai/tests/snippets/evaluation/dataset/list_datasets.py +6 -0
  182. pygeai/tests/snippets/evaluation/dataset/list_expected_sources.py +10 -0
  183. pygeai/tests/snippets/evaluation/dataset/list_filter_variables.py +10 -0
  184. pygeai/tests/snippets/evaluation/dataset/update_dataset.py +15 -0
  185. pygeai/tests/snippets/evaluation/dataset/update_dataset_row.py +20 -0
  186. pygeai/tests/snippets/evaluation/dataset/update_expected_source.py +18 -0
  187. pygeai/tests/snippets/evaluation/dataset/update_filter_variable.py +19 -0
  188. pygeai/tests/snippets/evaluation/dataset/upload_dataset_rows_file.py +10 -0
  189. pygeai/tests/snippets/evaluation/plan/__init__.py +0 -0
  190. pygeai/tests/snippets/evaluation/plan/add_plan_system_metric.py +13 -0
  191. pygeai/tests/snippets/evaluation/plan/complete_workflow_example.py +136 -0
  192. pygeai/tests/snippets/evaluation/plan/create_evaluation_plan.py +24 -0
  193. pygeai/tests/snippets/evaluation/plan/create_rag_evaluation_plan.py +22 -0
  194. pygeai/tests/snippets/evaluation/plan/delete_evaluation_plan.py +9 -0
  195. pygeai/tests/snippets/evaluation/plan/delete_plan_system_metric.py +13 -0
  196. pygeai/tests/snippets/evaluation/plan/execute_evaluation_plan.py +11 -0
  197. pygeai/tests/snippets/evaluation/plan/get_evaluation_plan.py +9 -0
  198. pygeai/tests/snippets/evaluation/plan/get_plan_system_metric.py +13 -0
  199. pygeai/tests/snippets/evaluation/plan/get_system_metric.py +9 -0
  200. pygeai/tests/snippets/evaluation/plan/list_evaluation_plans.py +7 -0
  201. pygeai/tests/snippets/evaluation/plan/list_plan_system_metrics.py +9 -0
  202. pygeai/tests/snippets/evaluation/plan/list_system_metrics.py +7 -0
  203. pygeai/tests/snippets/evaluation/plan/update_evaluation_plan.py +22 -0
  204. pygeai/tests/snippets/evaluation/plan/update_plan_system_metric.py +14 -0
  205. pygeai/tests/snippets/evaluation/result/__init__.py +0 -0
  206. pygeai/tests/snippets/evaluation/result/complete_workflow_example.py +150 -0
  207. pygeai/tests/snippets/evaluation/result/get_evaluation_result.py +26 -0
  208. pygeai/tests/snippets/evaluation/result/list_evaluation_results.py +17 -0
  209. pygeai/tests/snippets/migrate/__init__.py +45 -0
  210. pygeai/tests/snippets/migrate/agent_migration.py +110 -0
  211. pygeai/tests/snippets/migrate/assistant_migration.py +64 -0
  212. pygeai/tests/snippets/migrate/orchestrator_examples.py +179 -0
  213. pygeai/tests/snippets/migrate/process_migration.py +64 -0
  214. pygeai/tests/snippets/migrate/project_migration.py +42 -0
  215. pygeai/tests/snippets/migrate/tool_migration.py +64 -0
  216. pygeai/tests/snippets/organization/create_project.py +2 -2
  217. pygeai/tests/snippets/organization/get_memberships.py +12 -0
  218. pygeai/tests/snippets/organization/get_organization_members.py +6 -0
  219. pygeai/tests/snippets/organization/get_project_members.py +6 -0
  220. pygeai/tests/snippets/organization/get_project_memberships.py +12 -0
  221. pygeai/tests/snippets/organization/get_project_roles.py +6 -0
  222. {pygeai-0.6.0b6.dist-info → pygeai-0.6.0b10.dist-info}/METADATA +1 -1
  223. {pygeai-0.6.0b6.dist-info → pygeai-0.6.0b10.dist-info}/RECORD +227 -124
  224. {pygeai-0.6.0b6.dist-info → pygeai-0.6.0b10.dist-info}/WHEEL +0 -0
  225. {pygeai-0.6.0b6.dist-info → pygeai-0.6.0b10.dist-info}/entry_points.txt +0 -0
  226. {pygeai-0.6.0b6.dist-info → pygeai-0.6.0b10.dist-info}/licenses/LICENSE +0 -0
  227. {pygeai-0.6.0b6.dist-info → pygeai-0.6.0b10.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,195 @@
1
+ """
2
+ Complete Dataset API Workflow Example
3
+
4
+ This example demonstrates a full workflow using the Dataset API:
5
+ 1. Create a dataset
6
+ 2. Add rows
7
+ 3. Add expected sources
8
+ 4. Add filter variables
9
+ 5. Query and update
10
+ 6. Cleanup
11
+
12
+ NOTE: API documentation at https://docs.globant.ai/en/wiki?839,DataSet+API contains a typo.
13
+ The field 'dataSetExpectedSourceExtension' is spelled correctly in this code.
14
+ """
15
+
16
+ from pygeai.evaluation.dataset.clients import EvaluationDatasetClient
17
+
18
+
19
+ def main():
20
+ # Initialize client
21
+ client = EvaluationDatasetClient()
22
+
23
+ print("="*60)
24
+ print("Dataset API Complete Workflow Example")
25
+ print("="*60)
26
+
27
+ # Step 1: Create a dataset
28
+ print("\n[1/7] Creating dataset...")
29
+ dataset = client.create_dataset(
30
+ dataset_name="AI Knowledge Base - Example",
31
+ dataset_description="A sample dataset for AI-related questions",
32
+ dataset_type="T",
33
+ dataset_active=True,
34
+ rows=[]
35
+ )
36
+ dataset_id = dataset.get('dataSetId')
37
+ print(f"✓ Created dataset: {dataset_id}")
38
+
39
+ # Step 2: Add rows to the dataset
40
+ print("\n[2/7] Adding rows...")
41
+ row1 = client.create_dataset_row(
42
+ dataset_id=dataset_id,
43
+ row={
44
+ "dataSetRowInput": "What is Machine Learning?",
45
+ "dataSetRowExpectedAnswer": "Machine Learning is a subset of AI that enables systems to learn from data.",
46
+ "dataSetRowContextDocument": "ML is a fundamental concept in artificial intelligence."
47
+ }
48
+ )
49
+ row1_id = row1.get('dataSetRowId')
50
+ print(f"✓ Created row 1: {row1_id}")
51
+
52
+ row2 = client.create_dataset_row(
53
+ dataset_id=dataset_id,
54
+ row={
55
+ "dataSetRowInput": "What is Deep Learning?",
56
+ "dataSetRowExpectedAnswer": "Deep Learning is a subset of ML using neural networks with multiple layers.",
57
+ "dataSetRowContextDocument": "DL has revolutionized AI in recent years."
58
+ }
59
+ )
60
+ row2_id = row2.get('dataSetRowId')
61
+ print(f"✓ Created row 2: {row2_id}")
62
+
63
+ # Step 3: Add expected sources to row 1
64
+ print("\n[3/7] Adding expected sources to row 1...")
65
+ source1 = client.create_expected_source(
66
+ dataset_id=dataset_id,
67
+ dataset_row_id=row1_id,
68
+ expected_source_name="Introduction to Machine Learning",
69
+ expected_source_value="Machine Learning is a method of data analysis that automates analytical model building.",
70
+ expected_source_extension="pdf"
71
+ )
72
+ source1_id = source1.get('dataSetExpectedSourceId')
73
+ print(f"✓ Created expected source: {source1_id}")
74
+
75
+ # Step 4: Add filter variables to row 1
76
+ print("\n[4/7] Adding filter variables to row 1...")
77
+ filter1 = client.create_filter_variable(
78
+ dataset_id=dataset_id,
79
+ dataset_row_id=row1_id,
80
+ metadata_type="V",
81
+ filter_variable_key="category",
82
+ filter_variable_value="machine-learning",
83
+ filter_variable_operator="="
84
+ )
85
+ filter1_id = filter1.get('dataSetRowFilterVarId')
86
+ print(f"✓ Created filter variable: {filter1_id}")
87
+
88
+ filter2 = client.create_filter_variable(
89
+ dataset_id=dataset_id,
90
+ dataset_row_id=row1_id,
91
+ metadata_type="V",
92
+ filter_variable_key="difficulty",
93
+ filter_variable_value="beginner",
94
+ filter_variable_operator="="
95
+ )
96
+ filter2_id = filter2.get('dataSetRowFilterVarId')
97
+ print(f"✓ Created filter variable: {filter2_id}")
98
+
99
+ # Step 5: Query the dataset
100
+ print("\n[5/7] Querying dataset...")
101
+
102
+ # Get full dataset
103
+ full_dataset = client.get_dataset(dataset_id=dataset_id)
104
+ print(f"✓ Dataset has {len(full_dataset.get('rows', []))} rows")
105
+
106
+ # List all rows
107
+ all_rows = client.list_dataset_rows(dataset_id=dataset_id)
108
+ print(f"✓ Retrieved {len(all_rows) if isinstance(all_rows, list) else 'N/A'} rows")
109
+
110
+ # Get specific row with all details
111
+ row1_details = client.get_dataset_row(dataset_id=dataset_id, dataset_row_id=row1_id)
112
+ print(f"✓ Row 1 has {len(row1_details.get('expectedSources', []))} expected sources")
113
+ print(f"✓ Row 1 has {len(row1_details.get('filterVariables', []))} filter variables")
114
+
115
+ # Step 6: Update operations
116
+ print("\n[6/7] Updating resources...")
117
+
118
+ # Update the dataset description
119
+ updated_dataset = client.update_dataset(
120
+ dataset_id=dataset_id,
121
+ dataset_name="AI Knowledge Base - Updated",
122
+ dataset_description="Updated description for AI dataset",
123
+ dataset_type="T",
124
+ dataset_active=True
125
+ )
126
+ print(f"✓ Updated dataset description")
127
+
128
+ # Update a row
129
+ updated_row = client.update_dataset_row(
130
+ dataset_id=dataset_id,
131
+ dataset_row_id=row2_id,
132
+ row={
133
+ "dataSetRowInput": "What is Deep Learning? (Updated)",
134
+ "dataSetRowExpectedAnswer": "Deep Learning uses neural networks with many layers to learn complex patterns.",
135
+ "dataSetRowContextDocument": "DL is particularly effective for image and speech recognition."
136
+ }
137
+ )
138
+ print(f"✓ Updated row 2")
139
+
140
+ # Update expected source
141
+ updated_source = client.update_expected_source(
142
+ dataset_id=dataset_id,
143
+ dataset_row_id=row1_id,
144
+ expected_source_id=source1_id,
145
+ expected_source_name="ML Fundamentals - Updated",
146
+ expected_source_value="Updated source content about Machine Learning.",
147
+ expected_source_extension="txt"
148
+ )
149
+ print(f"✓ Updated expected source")
150
+
151
+ # Update filter variable
152
+ updated_filter = client.update_filter_variable(
153
+ dataset_id=dataset_id,
154
+ dataset_row_id=row1_id,
155
+ filter_variable_id=filter2_id,
156
+ metadata_type="V",
157
+ filter_variable_key="difficulty",
158
+ filter_variable_value="intermediate",
159
+ filter_variable_operator="="
160
+ )
161
+ print(f"✓ Updated filter variable")
162
+
163
+ # Step 7: Cleanup
164
+ print("\n[7/7] Cleaning up...")
165
+
166
+ # Delete filter variables
167
+ client.delete_filter_variable(dataset_id=dataset_id, dataset_row_id=row1_id, filter_variable_id=filter1_id)
168
+ client.delete_filter_variable(dataset_id=dataset_id, dataset_row_id=row1_id, filter_variable_id=filter2_id)
169
+ print(f"✓ Deleted filter variables")
170
+
171
+ # Delete expected source
172
+ client.delete_expected_source(dataset_id=dataset_id, dataset_row_id=row1_id, expected_source_id=source1_id)
173
+ print(f"✓ Deleted expected source")
174
+
175
+ # Delete rows
176
+ client.delete_dataset_row(dataset_id=dataset_id, dataset_row_id=row1_id)
177
+ client.delete_dataset_row(dataset_id=dataset_id, dataset_row_id=row2_id)
178
+ print(f"✓ Deleted rows")
179
+
180
+ # Delete dataset
181
+ client.delete_dataset(dataset_id=dataset_id)
182
+ print(f"✓ Deleted dataset")
183
+
184
+ print("\n" + "="*60)
185
+ print("Workflow completed successfully!")
186
+ print("="*60)
187
+
188
+
189
+ if __name__ == "__main__":
190
+ try:
191
+ main()
192
+ except Exception as e:
193
+ print(f"\n❌ Error occurred: {e}")
194
+ import traceback
195
+ traceback.print_exc()
@@ -0,0 +1,26 @@
1
+ from pygeai.evaluation.dataset.clients import EvaluationDatasetClient
2
+
3
+ client = EvaluationDatasetClient()
4
+
5
+ response = client.create_dataset(
6
+ dataset_name="My Test Dataset",
7
+ dataset_description="A dataset for testing purposes",
8
+ dataset_type="T",
9
+ dataset_active=True,
10
+ rows=[
11
+ {
12
+ "dataSetRowInput": "What is the capital of France?",
13
+ "dataSetRowExpectedAnswer": "Paris",
14
+ "dataSetRowContextDocument": "France is a country in Europe."
15
+ },
16
+ {
17
+ "dataSetRowInput": "What is 2+2?",
18
+ "dataSetRowExpectedAnswer": "4",
19
+ "dataSetRowContextDocument": ""
20
+ }
21
+ ]
22
+ )
23
+
24
+ print(f"Created dataset: {response}")
25
+ dataset_id = response.get('dataSetId')
26
+ print(f"Dataset ID: {dataset_id}")
@@ -0,0 +1,11 @@
1
+ from pygeai.evaluation.dataset.clients import EvaluationDatasetClient
2
+
3
+ client = EvaluationDatasetClient()
4
+
5
+ file_path = "path/to/dataset.json"
6
+
7
+ response = client.create_dataset_from_file(file_path=file_path)
8
+
9
+ print(f"Created dataset from file: {response}")
10
+ dataset_id = response.get('dataSetId')
11
+ print(f"Dataset ID: {dataset_id}")
@@ -0,0 +1,17 @@
1
+ from pygeai.evaluation.dataset.clients import EvaluationDatasetClient
2
+
3
+ client = EvaluationDatasetClient()
4
+
5
+ dataset_id = "your-dataset-id-here"
6
+
7
+ row = {
8
+ "dataSetRowInput": "What is AI?",
9
+ "dataSetRowExpectedAnswer": "Artificial Intelligence is the simulation of human intelligence by machines.",
10
+ "dataSetRowContextDocument": "AI enables computers to perform tasks that typically require human intelligence."
11
+ }
12
+
13
+ response = client.create_dataset_row(dataset_id=dataset_id, row=row)
14
+
15
+ print(f"Created row: {response}")
16
+ row_id = response.get('dataSetRowId')
17
+ print(f"Row ID: {row_id}")
@@ -0,0 +1,18 @@
1
+ from pygeai.evaluation.dataset.clients import EvaluationDatasetClient
2
+
3
+ client = EvaluationDatasetClient()
4
+
5
+ dataset_id = "your-dataset-id-here"
6
+ row_id = "your-row-id-here"
7
+
8
+ response = client.create_expected_source(
9
+ dataset_id=dataset_id,
10
+ dataset_row_id=row_id,
11
+ expected_source_name="Documentation PDF",
12
+ expected_source_value="This is the content from the source document...",
13
+ expected_source_extension="pdf"
14
+ )
15
+
16
+ print(f"Created expected source: {response}")
17
+ source_id = response.get('dataSetExpectedSourceId')
18
+ print(f"Expected Source ID: {source_id}")
@@ -0,0 +1,19 @@
1
+ from pygeai.evaluation.dataset.clients import EvaluationDatasetClient
2
+
3
+ client = EvaluationDatasetClient()
4
+
5
+ dataset_id = "your-dataset-id-here"
6
+ row_id = "your-row-id-here"
7
+
8
+ response = client.create_filter_variable(
9
+ dataset_id=dataset_id,
10
+ dataset_row_id=row_id,
11
+ metadata_type="V",
12
+ filter_variable_key="category",
13
+ filter_variable_value="science",
14
+ filter_variable_operator="="
15
+ )
16
+
17
+ print(f"Created filter variable: {response}")
18
+ filter_var_id = response.get('dataSetRowFilterVarId')
19
+ print(f"Filter Variable ID: {filter_var_id}")
@@ -0,0 +1,9 @@
1
+ from pygeai.evaluation.dataset.clients import EvaluationDatasetClient
2
+
3
+ client = EvaluationDatasetClient()
4
+
5
+ dataset_id = "your-dataset-id-here"
6
+
7
+ response = client.delete_dataset(dataset_id=dataset_id)
8
+
9
+ print(f"Deleted dataset: {response}")
@@ -0,0 +1,10 @@
1
+ from pygeai.evaluation.dataset.clients import EvaluationDatasetClient
2
+
3
+ client = EvaluationDatasetClient()
4
+
5
+ dataset_id = "your-dataset-id-here"
6
+ row_id = "your-row-id-here"
7
+
8
+ response = client.delete_dataset_row(dataset_id=dataset_id, dataset_row_id=row_id)
9
+
10
+ print(f"Deleted row: {response}")
@@ -0,0 +1,15 @@
1
+ from pygeai.evaluation.dataset.clients import EvaluationDatasetClient
2
+
3
+ client = EvaluationDatasetClient()
4
+
5
+ dataset_id = "your-dataset-id-here"
6
+ row_id = "your-row-id-here"
7
+ source_id = "your-expected-source-id-here"
8
+
9
+ response = client.delete_expected_source(
10
+ dataset_id=dataset_id,
11
+ dataset_row_id=row_id,
12
+ expected_source_id=source_id
13
+ )
14
+
15
+ print(f"Deleted expected source: {response}")
@@ -0,0 +1,15 @@
1
+ from pygeai.evaluation.dataset.clients import EvaluationDatasetClient
2
+
3
+ client = EvaluationDatasetClient()
4
+
5
+ dataset_id = "your-dataset-id-here"
6
+ row_id = "your-row-id-here"
7
+ filter_var_id = "your-filter-variable-id-here"
8
+
9
+ response = client.delete_filter_variable(
10
+ dataset_id=dataset_id,
11
+ dataset_row_id=row_id,
12
+ filter_variable_id=filter_var_id
13
+ )
14
+
15
+ print(f"Deleted filter variable: {response}")
@@ -0,0 +1,9 @@
1
+ from pygeai.evaluation.dataset.clients import EvaluationDatasetClient
2
+
3
+ client = EvaluationDatasetClient()
4
+
5
+ dataset_id = "your-dataset-id-here"
6
+
7
+ response = client.get_dataset(dataset_id=dataset_id)
8
+
9
+ print(f"Dataset details: {response}")
@@ -0,0 +1,10 @@
1
+ from pygeai.evaluation.dataset.clients import EvaluationDatasetClient
2
+
3
+ client = EvaluationDatasetClient()
4
+
5
+ dataset_id = "your-dataset-id-here"
6
+ row_id = "your-row-id-here"
7
+
8
+ response = client.get_dataset_row(dataset_id=dataset_id, dataset_row_id=row_id)
9
+
10
+ print(f"Row details: {response}")
@@ -0,0 +1,15 @@
1
+ from pygeai.evaluation.dataset.clients import EvaluationDatasetClient
2
+
3
+ client = EvaluationDatasetClient()
4
+
5
+ dataset_id = "your-dataset-id-here"
6
+ row_id = "your-row-id-here"
7
+ source_id = "your-expected-source-id-here"
8
+
9
+ response = client.get_expected_source(
10
+ dataset_id=dataset_id,
11
+ dataset_row_id=row_id,
12
+ expected_source_id=source_id
13
+ )
14
+
15
+ print(f"Expected source details: {response}")
@@ -0,0 +1,15 @@
1
+ from pygeai.evaluation.dataset.clients import EvaluationDatasetClient
2
+
3
+ client = EvaluationDatasetClient()
4
+
5
+ dataset_id = "your-dataset-id-here"
6
+ row_id = "your-row-id-here"
7
+ filter_var_id = "your-filter-variable-id-here"
8
+
9
+ response = client.get_filter_variable(
10
+ dataset_id=dataset_id,
11
+ dataset_row_id=row_id,
12
+ filter_variable_id=filter_var_id
13
+ )
14
+
15
+ print(f"Filter variable details: {response}")
@@ -0,0 +1,9 @@
1
+ from pygeai.evaluation.dataset.clients import EvaluationDatasetClient
2
+
3
+ client = EvaluationDatasetClient()
4
+
5
+ dataset_id = "your-dataset-id-here"
6
+
7
+ response = client.list_dataset_rows(dataset_id=dataset_id)
8
+
9
+ print(f"Dataset rows: {response}")
@@ -0,0 +1,6 @@
1
+ from pygeai.evaluation.dataset.clients import EvaluationDatasetClient
2
+
3
+ client = EvaluationDatasetClient()
4
+
5
+ response = client.list_datasets()
6
+ print(f"Datasets: {response}")
@@ -0,0 +1,10 @@
1
+ from pygeai.evaluation.dataset.clients import EvaluationDatasetClient
2
+
3
+ client = EvaluationDatasetClient()
4
+
5
+ dataset_id = "your-dataset-id-here"
6
+ row_id = "your-row-id-here"
7
+
8
+ response = client.list_expected_sources(dataset_id=dataset_id, dataset_row_id=row_id)
9
+
10
+ print(f"Expected sources: {response}")
@@ -0,0 +1,10 @@
1
+ from pygeai.evaluation.dataset.clients import EvaluationDatasetClient
2
+
3
+ client = EvaluationDatasetClient()
4
+
5
+ dataset_id = "your-dataset-id-here"
6
+ row_id = "your-row-id-here"
7
+
8
+ response = client.list_filter_variables(dataset_id=dataset_id, dataset_row_id=row_id)
9
+
10
+ print(f"Filter variables: {response}")
@@ -0,0 +1,15 @@
1
+ from pygeai.evaluation.dataset.clients import EvaluationDatasetClient
2
+
3
+ client = EvaluationDatasetClient()
4
+
5
+ dataset_id = "your-dataset-id-here"
6
+
7
+ response = client.update_dataset(
8
+ dataset_id=dataset_id,
9
+ dataset_name="Updated Dataset Name",
10
+ dataset_description="Updated description",
11
+ dataset_type="E",
12
+ dataset_active=False
13
+ )
14
+
15
+ print(f"Updated dataset: {response}")
@@ -0,0 +1,20 @@
1
+ from pygeai.evaluation.dataset.clients import EvaluationDatasetClient
2
+
3
+ client = EvaluationDatasetClient()
4
+
5
+ dataset_id = "your-dataset-id-here"
6
+ row_id = "your-row-id-here"
7
+
8
+ updated_row = {
9
+ "dataSetRowInput": "Updated question: What is Machine Learning?",
10
+ "dataSetRowExpectedAnswer": "Updated answer: ML is a subset of AI",
11
+ "dataSetRowContextDocument": "Updated context about ML"
12
+ }
13
+
14
+ response = client.update_dataset_row(
15
+ dataset_id=dataset_id,
16
+ dataset_row_id=row_id,
17
+ row=updated_row
18
+ )
19
+
20
+ print(f"Updated row: {response}")
@@ -0,0 +1,18 @@
1
+ from pygeai.evaluation.dataset.clients import EvaluationDatasetClient
2
+
3
+ client = EvaluationDatasetClient()
4
+
5
+ dataset_id = "your-dataset-id-here"
6
+ row_id = "your-row-id-here"
7
+ source_id = "your-expected-source-id-here"
8
+
9
+ response = client.update_expected_source(
10
+ dataset_id=dataset_id,
11
+ dataset_row_id=row_id,
12
+ expected_source_id=source_id,
13
+ expected_source_name="Updated Documentation",
14
+ expected_source_value="Updated content from the source...",
15
+ expected_source_extension="txt"
16
+ )
17
+
18
+ print(f"Updated expected source: {response}")
@@ -0,0 +1,19 @@
1
+ from pygeai.evaluation.dataset.clients import EvaluationDatasetClient
2
+
3
+ client = EvaluationDatasetClient()
4
+
5
+ dataset_id = "your-dataset-id-here"
6
+ row_id = "your-row-id-here"
7
+ filter_var_id = "your-filter-variable-id-here"
8
+
9
+ response = client.update_filter_variable(
10
+ dataset_id=dataset_id,
11
+ dataset_row_id=row_id,
12
+ filter_variable_id=filter_var_id,
13
+ metadata_type="V",
14
+ filter_variable_key="category",
15
+ filter_variable_value="technology",
16
+ filter_variable_operator="="
17
+ )
18
+
19
+ print(f"Updated filter variable: {response}")
@@ -0,0 +1,10 @@
1
+ from pygeai.evaluation.dataset.clients import EvaluationDatasetClient
2
+
3
+ client = EvaluationDatasetClient()
4
+
5
+ dataset_id = "your-dataset-id-here"
6
+ file_path = "path/to/rows.json"
7
+
8
+ response = client.upload_dataset_rows_file(dataset_id=dataset_id, file_path=file_path)
9
+
10
+ print(f"Uploaded rows from file: {response}")
File without changes
@@ -0,0 +1,13 @@
1
+ from pygeai.evaluation.plan.clients import EvaluationPlanClient
2
+
3
+ client = EvaluationPlanClient()
4
+
5
+ evaluation_plan_id = "your-evaluation-plan-id"
6
+
7
+ response = client.add_evaluation_plan_system_metric(
8
+ evaluation_plan_id=evaluation_plan_id,
9
+ system_metric_id="metric-id",
10
+ system_metric_weight=0.5
11
+ )
12
+
13
+ print(f"Added system metric: {response}")