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.
- pygeai/_docs/source/conf.py +78 -6
- pygeai/_docs/source/content/api_reference/admin.rst +161 -0
- pygeai/_docs/source/content/api_reference/assistant.rst +326 -0
- pygeai/_docs/source/content/api_reference/auth.rst +379 -0
- pygeai/_docs/source/content/api_reference/embeddings.rst +31 -1
- pygeai/_docs/source/content/api_reference/evaluation.rst +590 -0
- pygeai/_docs/source/content/api_reference/feedback.rst +237 -0
- pygeai/_docs/source/content/api_reference/files.rst +592 -0
- pygeai/_docs/source/content/api_reference/gam.rst +401 -0
- pygeai/_docs/source/content/api_reference/health.rst +58 -0
- pygeai/_docs/source/content/api_reference/project.rst +20 -18
- pygeai/_docs/source/content/api_reference/proxy.rst +318 -0
- pygeai/_docs/source/content/api_reference/rerank.rst +94 -0
- pygeai/_docs/source/content/api_reference/secrets.rst +495 -0
- pygeai/_docs/source/content/api_reference/usage_limits.rst +390 -0
- pygeai/_docs/source/content/api_reference.rst +13 -1
- pygeai/_docs/source/content/debugger.rst +376 -83
- pygeai/_docs/source/content/migration.rst +528 -0
- pygeai/_docs/source/content/modules.rst +1 -1
- pygeai/_docs/source/index.rst +59 -7
- pygeai/_docs/source/pygeai.auth.rst +29 -0
- pygeai/_docs/source/pygeai.cli.commands.rst +16 -0
- pygeai/_docs/source/pygeai.cli.rst +8 -0
- pygeai/_docs/source/pygeai.core.utils.rst +16 -0
- pygeai/_docs/source/pygeai.rst +1 -0
- pygeai/_docs/source/pygeai.tests.auth.rst +21 -0
- pygeai/_docs/source/pygeai.tests.cli.commands.rst +16 -0
- pygeai/_docs/source/pygeai.tests.cli.rst +16 -0
- pygeai/_docs/source/pygeai.tests.core.base.rst +8 -0
- pygeai/_docs/source/pygeai.tests.core.embeddings.rst +16 -0
- pygeai/_docs/source/pygeai.tests.core.files.rst +8 -0
- pygeai/_docs/source/pygeai.tests.core.plugins.rst +21 -0
- pygeai/_docs/source/pygeai.tests.core.rst +1 -0
- pygeai/_docs/source/pygeai.tests.evaluation.dataset.rst +21 -0
- pygeai/_docs/source/pygeai.tests.evaluation.plan.rst +21 -0
- pygeai/_docs/source/pygeai.tests.evaluation.result.rst +21 -0
- pygeai/_docs/source/pygeai.tests.evaluation.rst +20 -0
- pygeai/_docs/source/pygeai.tests.integration.lab.processes.rst +8 -0
- pygeai/_docs/source/pygeai.tests.organization.rst +8 -0
- pygeai/_docs/source/pygeai.tests.rst +2 -0
- pygeai/_docs/source/pygeai.tests.snippets.auth.rst +10 -0
- pygeai/_docs/source/pygeai.tests.snippets.chat.rst +40 -0
- pygeai/_docs/source/pygeai.tests.snippets.dbg.rst +45 -0
- pygeai/_docs/source/pygeai.tests.snippets.embeddings.rst +40 -0
- pygeai/_docs/source/pygeai.tests.snippets.evaluation.dataset.rst +197 -0
- pygeai/_docs/source/pygeai.tests.snippets.evaluation.plan.rst +133 -0
- pygeai/_docs/source/pygeai.tests.snippets.evaluation.result.rst +37 -0
- pygeai/_docs/source/pygeai.tests.snippets.evaluation.rst +10 -0
- pygeai/_docs/source/pygeai.tests.snippets.organization.rst +40 -0
- pygeai/_docs/source/pygeai.tests.snippets.rst +2 -0
- pygeai/admin/clients.py +12 -32
- pygeai/assistant/clients.py +16 -44
- pygeai/assistant/data/clients.py +1 -0
- pygeai/assistant/data_analyst/clients.py +6 -13
- pygeai/assistant/rag/clients.py +24 -67
- pygeai/auth/clients.py +88 -14
- pygeai/auth/endpoints.py +4 -0
- pygeai/chat/clients.py +192 -25
- pygeai/chat/endpoints.py +2 -1
- pygeai/cli/commands/auth.py +178 -2
- pygeai/cli/commands/chat.py +227 -1
- pygeai/cli/commands/embeddings.py +56 -8
- pygeai/cli/commands/lab/ai_lab.py +0 -2
- pygeai/cli/commands/migrate.py +994 -434
- pygeai/cli/commands/organization.py +241 -0
- pygeai/cli/error_handler.py +116 -0
- pygeai/cli/geai.py +28 -10
- pygeai/cli/parsers.py +8 -2
- pygeai/core/base/clients.py +4 -1
- pygeai/core/common/exceptions.py +11 -10
- pygeai/core/embeddings/__init__.py +19 -0
- pygeai/core/embeddings/clients.py +20 -9
- pygeai/core/embeddings/mappers.py +16 -2
- pygeai/core/embeddings/responses.py +9 -2
- pygeai/core/feedback/clients.py +4 -8
- pygeai/core/files/clients.py +10 -25
- pygeai/core/files/managers.py +42 -0
- pygeai/core/llm/clients.py +11 -26
- pygeai/core/models.py +107 -0
- pygeai/core/plugins/clients.py +4 -7
- pygeai/core/rerank/clients.py +4 -8
- pygeai/core/secrets/clients.py +14 -37
- pygeai/core/services/rest.py +1 -1
- pygeai/core/utils/parsers.py +32 -0
- pygeai/core/utils/validators.py +10 -0
- pygeai/dbg/__init__.py +3 -0
- pygeai/dbg/debugger.py +565 -70
- pygeai/evaluation/clients.py +2 -1
- pygeai/evaluation/dataset/clients.py +46 -44
- pygeai/evaluation/plan/clients.py +28 -26
- pygeai/evaluation/result/clients.py +38 -5
- pygeai/gam/clients.py +10 -25
- pygeai/health/clients.py +4 -7
- pygeai/lab/agents/clients.py +21 -54
- pygeai/lab/agents/endpoints.py +2 -0
- pygeai/lab/clients.py +1 -0
- pygeai/lab/models.py +3 -3
- pygeai/lab/processes/clients.py +45 -127
- pygeai/lab/strategies/clients.py +11 -25
- pygeai/lab/tools/clients.py +23 -67
- pygeai/lab/tools/endpoints.py +3 -0
- pygeai/migration/__init__.py +31 -0
- pygeai/migration/strategies.py +404 -155
- pygeai/migration/tools.py +170 -3
- pygeai/organization/clients.py +135 -51
- pygeai/organization/endpoints.py +6 -1
- pygeai/organization/limits/clients.py +32 -91
- pygeai/organization/managers.py +157 -1
- pygeai/organization/mappers.py +76 -2
- pygeai/organization/responses.py +25 -1
- pygeai/proxy/clients.py +4 -1
- pygeai/tests/admin/test_clients.py +16 -11
- pygeai/tests/assistants/rag/test_clients.py +35 -23
- pygeai/tests/assistants/test_clients.py +22 -15
- pygeai/tests/auth/test_clients.py +191 -7
- pygeai/tests/chat/test_clients.py +211 -1
- pygeai/tests/cli/commands/test_embeddings.py +32 -9
- pygeai/tests/cli/commands/test_evaluation.py +7 -0
- pygeai/tests/cli/commands/test_migrate.py +112 -243
- pygeai/tests/cli/test_error_handler.py +225 -0
- pygeai/tests/cli/test_geai_driver.py +154 -0
- pygeai/tests/cli/test_parsers.py +5 -5
- pygeai/tests/core/embeddings/test_clients.py +144 -0
- pygeai/tests/core/embeddings/test_managers.py +171 -0
- pygeai/tests/core/embeddings/test_mappers.py +142 -0
- pygeai/tests/core/feedback/test_clients.py +2 -0
- pygeai/tests/core/files/test_clients.py +1 -0
- pygeai/tests/core/llm/test_clients.py +14 -9
- pygeai/tests/core/plugins/test_clients.py +5 -3
- pygeai/tests/core/rerank/test_clients.py +1 -0
- pygeai/tests/core/secrets/test_clients.py +19 -13
- pygeai/tests/dbg/test_debugger.py +453 -75
- pygeai/tests/evaluation/dataset/test_clients.py +3 -1
- pygeai/tests/evaluation/plan/test_clients.py +4 -2
- pygeai/tests/evaluation/result/test_clients.py +7 -5
- pygeai/tests/gam/test_clients.py +1 -1
- pygeai/tests/health/test_clients.py +1 -0
- pygeai/tests/lab/agents/test_clients.py +9 -0
- pygeai/tests/lab/processes/test_clients.py +36 -0
- pygeai/tests/lab/processes/test_mappers.py +3 -0
- pygeai/tests/lab/strategies/test_clients.py +14 -9
- pygeai/tests/migration/test_strategies.py +45 -218
- pygeai/tests/migration/test_tools.py +133 -9
- pygeai/tests/organization/limits/test_clients.py +17 -0
- pygeai/tests/organization/test_clients.py +206 -1
- pygeai/tests/organization/test_managers.py +122 -1
- pygeai/tests/proxy/test_clients.py +2 -0
- pygeai/tests/proxy/test_integration.py +1 -0
- pygeai/tests/snippets/auth/__init__.py +0 -0
- pygeai/tests/snippets/chat/chat_completion_with_reasoning_effort.py +18 -0
- pygeai/tests/snippets/chat/get_response.py +15 -0
- pygeai/tests/snippets/chat/get_response_streaming.py +20 -0
- pygeai/tests/snippets/chat/get_response_with_files.py +16 -0
- pygeai/tests/snippets/chat/get_response_with_tools.py +36 -0
- pygeai/tests/snippets/dbg/__init__.py +0 -0
- pygeai/tests/snippets/dbg/basic_debugging.py +32 -0
- pygeai/tests/snippets/dbg/breakpoint_management.py +48 -0
- pygeai/tests/snippets/dbg/stack_navigation.py +45 -0
- pygeai/tests/snippets/dbg/stepping_example.py +40 -0
- pygeai/tests/snippets/embeddings/cache_example.py +31 -0
- pygeai/tests/snippets/embeddings/cohere_example.py +41 -0
- pygeai/tests/snippets/embeddings/openai_base64_example.py +27 -0
- pygeai/tests/snippets/embeddings/openai_example.py +30 -0
- pygeai/tests/snippets/embeddings/similarity_example.py +42 -0
- pygeai/tests/snippets/evaluation/dataset/__init__.py +0 -0
- pygeai/tests/snippets/evaluation/dataset/complete_workflow_example.py +195 -0
- pygeai/tests/snippets/evaluation/dataset/create_dataset.py +26 -0
- pygeai/tests/snippets/evaluation/dataset/create_dataset_from_file.py +11 -0
- pygeai/tests/snippets/evaluation/dataset/create_dataset_row.py +17 -0
- pygeai/tests/snippets/evaluation/dataset/create_expected_source.py +18 -0
- pygeai/tests/snippets/evaluation/dataset/create_filter_variable.py +19 -0
- pygeai/tests/snippets/evaluation/dataset/delete_dataset.py +9 -0
- pygeai/tests/snippets/evaluation/dataset/delete_dataset_row.py +10 -0
- pygeai/tests/snippets/evaluation/dataset/delete_expected_source.py +15 -0
- pygeai/tests/snippets/evaluation/dataset/delete_filter_variable.py +15 -0
- pygeai/tests/snippets/evaluation/dataset/get_dataset.py +9 -0
- pygeai/tests/snippets/evaluation/dataset/get_dataset_row.py +10 -0
- pygeai/tests/snippets/evaluation/dataset/get_expected_source.py +15 -0
- pygeai/tests/snippets/evaluation/dataset/get_filter_variable.py +15 -0
- pygeai/tests/snippets/evaluation/dataset/list_dataset_rows.py +9 -0
- pygeai/tests/snippets/evaluation/dataset/list_datasets.py +6 -0
- pygeai/tests/snippets/evaluation/dataset/list_expected_sources.py +10 -0
- pygeai/tests/snippets/evaluation/dataset/list_filter_variables.py +10 -0
- pygeai/tests/snippets/evaluation/dataset/update_dataset.py +15 -0
- pygeai/tests/snippets/evaluation/dataset/update_dataset_row.py +20 -0
- pygeai/tests/snippets/evaluation/dataset/update_expected_source.py +18 -0
- pygeai/tests/snippets/evaluation/dataset/update_filter_variable.py +19 -0
- pygeai/tests/snippets/evaluation/dataset/upload_dataset_rows_file.py +10 -0
- pygeai/tests/snippets/evaluation/plan/__init__.py +0 -0
- pygeai/tests/snippets/evaluation/plan/add_plan_system_metric.py +13 -0
- pygeai/tests/snippets/evaluation/plan/complete_workflow_example.py +136 -0
- pygeai/tests/snippets/evaluation/plan/create_evaluation_plan.py +24 -0
- pygeai/tests/snippets/evaluation/plan/create_rag_evaluation_plan.py +22 -0
- pygeai/tests/snippets/evaluation/plan/delete_evaluation_plan.py +9 -0
- pygeai/tests/snippets/evaluation/plan/delete_plan_system_metric.py +13 -0
- pygeai/tests/snippets/evaluation/plan/execute_evaluation_plan.py +11 -0
- pygeai/tests/snippets/evaluation/plan/get_evaluation_plan.py +9 -0
- pygeai/tests/snippets/evaluation/plan/get_plan_system_metric.py +13 -0
- pygeai/tests/snippets/evaluation/plan/get_system_metric.py +9 -0
- pygeai/tests/snippets/evaluation/plan/list_evaluation_plans.py +7 -0
- pygeai/tests/snippets/evaluation/plan/list_plan_system_metrics.py +9 -0
- pygeai/tests/snippets/evaluation/plan/list_system_metrics.py +7 -0
- pygeai/tests/snippets/evaluation/plan/update_evaluation_plan.py +22 -0
- pygeai/tests/snippets/evaluation/plan/update_plan_system_metric.py +14 -0
- pygeai/tests/snippets/evaluation/result/__init__.py +0 -0
- pygeai/tests/snippets/evaluation/result/complete_workflow_example.py +150 -0
- pygeai/tests/snippets/evaluation/result/get_evaluation_result.py +26 -0
- pygeai/tests/snippets/evaluation/result/list_evaluation_results.py +17 -0
- pygeai/tests/snippets/migrate/__init__.py +45 -0
- pygeai/tests/snippets/migrate/agent_migration.py +110 -0
- pygeai/tests/snippets/migrate/assistant_migration.py +64 -0
- pygeai/tests/snippets/migrate/orchestrator_examples.py +179 -0
- pygeai/tests/snippets/migrate/process_migration.py +64 -0
- pygeai/tests/snippets/migrate/project_migration.py +42 -0
- pygeai/tests/snippets/migrate/tool_migration.py +64 -0
- pygeai/tests/snippets/organization/create_project.py +2 -2
- pygeai/tests/snippets/organization/get_memberships.py +12 -0
- pygeai/tests/snippets/organization/get_organization_members.py +6 -0
- pygeai/tests/snippets/organization/get_project_members.py +6 -0
- pygeai/tests/snippets/organization/get_project_memberships.py +12 -0
- pygeai/tests/snippets/organization/get_project_roles.py +6 -0
- {pygeai-0.6.0b6.dist-info → pygeai-0.6.0b10.dist-info}/METADATA +1 -1
- {pygeai-0.6.0b6.dist-info → pygeai-0.6.0b10.dist-info}/RECORD +227 -124
- {pygeai-0.6.0b6.dist-info → pygeai-0.6.0b10.dist-info}/WHEEL +0 -0
- {pygeai-0.6.0b6.dist-info → pygeai-0.6.0b10.dist-info}/entry_points.txt +0 -0
- {pygeai-0.6.0b6.dist-info → pygeai-0.6.0b10.dist-info}/licenses/LICENSE +0 -0
- {pygeai-0.6.0b6.dist-info → pygeai-0.6.0b10.dist-info}/top_level.txt +0 -0
pygeai/lab/tools/clients.py
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import json
|
|
2
|
-
from json import JSONDecodeError
|
|
3
2
|
|
|
4
3
|
from pygeai import logger
|
|
5
4
|
from pygeai.core.common.exceptions import InvalidAPIResponseException, MissingRequirementException, APIResponseError
|
|
5
|
+
from pygeai.core.utils.validators import validate_status_code
|
|
6
|
+
from pygeai.core.utils.parsers import parse_json_response
|
|
6
7
|
from pygeai.lab.constants import VALID_SCOPES, VALID_ACCESS_SCOPES, VALID_REPORT_EVENTS
|
|
7
8
|
from pygeai.lab.tools.endpoints import CREATE_TOOL_V2, LIST_TOOLS_V2, GET_TOOL_V2, UPDATE_TOOL_V2, UPSERT_TOOL_V2, \
|
|
8
|
-
PUBLISH_TOOL_REVISION_V2, GET_PARAMETER_V2, SET_PARAMETER_V2, DELETE_TOOL_V2,
|
|
9
|
+
PUBLISH_TOOL_REVISION_V2, GET_PARAMETER_V2, SET_PARAMETER_V2, DELETE_TOOL_V2, EXPORT_TOOL_V4
|
|
9
10
|
from pygeai.lab.clients import AILabClient
|
|
10
11
|
|
|
11
12
|
|
|
@@ -115,16 +116,9 @@ class ToolClient(AILabClient):
|
|
|
115
116
|
data=data
|
|
116
117
|
)
|
|
117
118
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
raise APIResponseError(f"API returned an error: {response.text}")
|
|
121
|
-
try:
|
|
122
|
-
result = response.json()
|
|
123
|
-
except JSONDecodeError as e:
|
|
124
|
-
logger.error(f"Unable to create tool for project {self.project_id}: JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
125
|
-
raise InvalidAPIResponseException(f"Unable to create tool for project {self.project_id}: {response.text}")
|
|
119
|
+
validate_status_code(response)
|
|
120
|
+
return parse_json_response(response, f"create tool for project {self.project_id}")
|
|
126
121
|
|
|
127
|
-
return result
|
|
128
122
|
|
|
129
123
|
def list_tools(
|
|
130
124
|
self,
|
|
@@ -169,16 +163,9 @@ class ToolClient(AILabClient):
|
|
|
169
163
|
"allowExternal": allow_external
|
|
170
164
|
}
|
|
171
165
|
)
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
raise APIResponseError(f"API returned an error: {response.text}")
|
|
175
|
-
try:
|
|
176
|
-
result = response.json()
|
|
177
|
-
except JSONDecodeError as e:
|
|
178
|
-
logger.error(f"Unable to list tools for project {self.project_id}: JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
179
|
-
raise InvalidAPIResponseException(f"Unable to list tools for project {self.project_id}: {response.text}")
|
|
166
|
+
validate_status_code(response)
|
|
167
|
+
return parse_json_response(response, f"list tools for project {self.project_id}")
|
|
180
168
|
|
|
181
|
-
return result
|
|
182
169
|
|
|
183
170
|
def get_tool(
|
|
184
171
|
self,
|
|
@@ -213,16 +200,9 @@ class ToolClient(AILabClient):
|
|
|
213
200
|
"allowDrafts": allow_drafts,
|
|
214
201
|
}
|
|
215
202
|
)
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
raise APIResponseError(f"API returned an error: {response.text}")
|
|
219
|
-
try:
|
|
220
|
-
result = response.json()
|
|
221
|
-
except JSONDecodeError as e:
|
|
222
|
-
logger.error(f"Unable to retrieve tool {tool_id} for project {self.project_id}: JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
223
|
-
raise InvalidAPIResponseException(f"Unable to retrieve tool {tool_id} for project {self.project_id}: {response.text}")
|
|
203
|
+
validate_status_code(response)
|
|
204
|
+
return parse_json_response(response, f"retrieve tool {tool_id} for project {self.project_id}")
|
|
224
205
|
|
|
225
|
-
return result
|
|
226
206
|
|
|
227
207
|
def delete_tool(
|
|
228
208
|
self,
|
|
@@ -256,9 +236,7 @@ class ToolClient(AILabClient):
|
|
|
256
236
|
endpoint=endpoint,
|
|
257
237
|
headers=headers
|
|
258
238
|
)
|
|
259
|
-
|
|
260
|
-
logger.error(f"Invalid status code returned from the API endpoint: {response.text}")
|
|
261
|
-
raise APIResponseError(f"API returned an error: {response.text}")
|
|
239
|
+
validate_status_code(response)
|
|
262
240
|
|
|
263
241
|
if response.status_code != 204:
|
|
264
242
|
logger.error(f"Unable to delete tool {tool_id or tool_name} in project {self.project_id}: JSON parsing error (status {response.status_code}). Response: {response.text}")
|
|
@@ -376,16 +354,9 @@ class ToolClient(AILabClient):
|
|
|
376
354
|
headers=headers,
|
|
377
355
|
data=data
|
|
378
356
|
)
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
raise APIResponseError(f"API returned an error: {response.text}")
|
|
382
|
-
try:
|
|
383
|
-
result = response.json()
|
|
384
|
-
except JSONDecodeError as e:
|
|
385
|
-
logger.error(f"Unable to update tool {tool_id} in project {self.project_id}: JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
386
|
-
raise InvalidAPIResponseException(f"Unable to update tool {tool_id} in project {self.project_id}: {response.text}")
|
|
357
|
+
validate_status_code(response)
|
|
358
|
+
return parse_json_response(response, f"update tool {tool_id} in project {self.project_id}")
|
|
387
359
|
|
|
388
|
-
return result
|
|
389
360
|
|
|
390
361
|
def publish_tool_revision(
|
|
391
362
|
self,
|
|
@@ -414,13 +385,9 @@ class ToolClient(AILabClient):
|
|
|
414
385
|
"revision": revision,
|
|
415
386
|
}
|
|
416
387
|
)
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
except JSONDecodeError as e:
|
|
420
|
-
logger.error(f"Unable to publish revision {revision} for tool {tool_id} in project {self.project_id}: JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
421
|
-
raise InvalidAPIResponseException(f"Unable to publish revision {revision} for tool {tool_id} in project {self.project_id}: {response.text}")
|
|
388
|
+
validate_status_code(response)
|
|
389
|
+
return parse_json_response(response, f"publish revision {revision} for tool {tool_id} in project {self.project_id}")
|
|
422
390
|
|
|
423
|
-
return result
|
|
424
391
|
|
|
425
392
|
def get_parameter(
|
|
426
393
|
self,
|
|
@@ -464,16 +431,10 @@ class ToolClient(AILabClient):
|
|
|
464
431
|
"allowDrafts": allow_drafts,
|
|
465
432
|
}
|
|
466
433
|
)
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
try:
|
|
471
|
-
result = response.json()
|
|
472
|
-
except JSONDecodeError as e:
|
|
473
|
-
logger.error(f"Unable to retrieve parameters for tool {tool_id or tool_public_name} in project {self.project_id}: JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
474
|
-
raise InvalidAPIResponseException(f"Unable to retrieve parameters for tool {tool_id or tool_public_name} in project {self.project_id}: {response.text}")
|
|
434
|
+
validate_status_code(response)
|
|
435
|
+
tool_identifier = tool_id or tool_public_name
|
|
436
|
+
return parse_json_response(response, f"retrieve parameters for tool {tool_identifier} in project {self.project_id}")
|
|
475
437
|
|
|
476
|
-
return result
|
|
477
438
|
|
|
478
439
|
def set_parameter(
|
|
479
440
|
self,
|
|
@@ -527,6 +488,7 @@ class ToolClient(AILabClient):
|
|
|
527
488
|
else:
|
|
528
489
|
return {}
|
|
529
490
|
|
|
491
|
+
'''
|
|
530
492
|
def export_tool(
|
|
531
493
|
self,
|
|
532
494
|
tool_id: str,
|
|
@@ -543,7 +505,7 @@ class ToolClient(AILabClient):
|
|
|
543
505
|
if not tool_id:
|
|
544
506
|
raise MissingRequirementException("tool_id must be specified in order to retrieve the tool")
|
|
545
507
|
|
|
546
|
-
endpoint =
|
|
508
|
+
endpoint = EXPORT_TOOL_V4.format(toolId=tool_id)
|
|
547
509
|
headers = {
|
|
548
510
|
"Authorization": self.api_service.token,
|
|
549
511
|
"ProjectId": self.project_id
|
|
@@ -555,13 +517,7 @@ class ToolClient(AILabClient):
|
|
|
555
517
|
endpoint=endpoint,
|
|
556
518
|
headers=headers,
|
|
557
519
|
)
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
result = response.json()
|
|
563
|
-
except JSONDecodeError as e:
|
|
564
|
-
logger.error(f"Unable to export tool {tool_id} for project {self.project_id}: JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
565
|
-
raise InvalidAPIResponseException(f"Unable to export tool {tool_id} for project {self.project_id}: {response.text}")
|
|
566
|
-
|
|
567
|
-
return result
|
|
520
|
+
validate_status_code(response)
|
|
521
|
+
return parse_json_response(response, f"export tool {tool_id} for project {self.project_id}")
|
|
522
|
+
|
|
523
|
+
'''
|
pygeai/lab/tools/endpoints.py
CHANGED
|
@@ -8,3 +8,6 @@ PUBLISH_TOOL_REVISION_V2 = "v2/tools/{toolId}/publish-revision" # POST -> Publi
|
|
|
8
8
|
GET_PARAMETER_V2 = "v2/tools/{toolPublicName}/config" # GET -> Get tool parameter
|
|
9
9
|
SET_PARAMETER_V2 = "v2/tools/{toolPublicName}/config" # POST -> Set tool parameter
|
|
10
10
|
EXPORT_TOOL_V2 = "v2/tools/{toolId}/export" # GET -> Export tool
|
|
11
|
+
IMPORT_TOOL_V2 = "v2/tools/import" # POST -> Import tool
|
|
12
|
+
EXPORT_TOOL_V4 = "v4/tools/{toolId}/export" # GET -> Export tool
|
|
13
|
+
IMPORT_TOOL_V4 = "v4/tools/import" # POST -> Import tool
|
pygeai/migration/__init__.py
CHANGED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
from pygeai.migration.strategies import (
|
|
2
|
+
MigrationStrategy,
|
|
3
|
+
ProjectMigrationStrategy,
|
|
4
|
+
AgentMigrationStrategy,
|
|
5
|
+
ToolMigrationStrategy,
|
|
6
|
+
AgenticProcessMigrationStrategy,
|
|
7
|
+
TaskMigrationStrategy,
|
|
8
|
+
UsageLimitMigrationStrategy,
|
|
9
|
+
RAGAssistantMigrationStrategy,
|
|
10
|
+
FileMigrationStrategy
|
|
11
|
+
)
|
|
12
|
+
from pygeai.migration.tools import (
|
|
13
|
+
MigrationTool,
|
|
14
|
+
MigrationPlan,
|
|
15
|
+
MigrationOrchestrator
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
__all__ = [
|
|
19
|
+
"MigrationStrategy",
|
|
20
|
+
"ProjectMigrationStrategy",
|
|
21
|
+
"AgentMigrationStrategy",
|
|
22
|
+
"ToolMigrationStrategy",
|
|
23
|
+
"AgenticProcessMigrationStrategy",
|
|
24
|
+
"TaskMigrationStrategy",
|
|
25
|
+
"UsageLimitMigrationStrategy",
|
|
26
|
+
"RAGAssistantMigrationStrategy",
|
|
27
|
+
"FileMigrationStrategy",
|
|
28
|
+
"MigrationTool",
|
|
29
|
+
"MigrationPlan",
|
|
30
|
+
"MigrationOrchestrator"
|
|
31
|
+
]
|