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
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
pygeai.tests.snippets.evaluation.plan package
|
|
2
|
+
=============================================
|
|
3
|
+
|
|
4
|
+
Submodules
|
|
5
|
+
----------
|
|
6
|
+
|
|
7
|
+
pygeai.tests.snippets.evaluation.plan.add\_plan\_system\_metric module
|
|
8
|
+
----------------------------------------------------------------------
|
|
9
|
+
|
|
10
|
+
.. automodule:: pygeai.tests.snippets.evaluation.plan.add_plan_system_metric
|
|
11
|
+
:members:
|
|
12
|
+
:show-inheritance:
|
|
13
|
+
:undoc-members:
|
|
14
|
+
|
|
15
|
+
pygeai.tests.snippets.evaluation.plan.complete\_workflow\_example module
|
|
16
|
+
------------------------------------------------------------------------
|
|
17
|
+
|
|
18
|
+
.. automodule:: pygeai.tests.snippets.evaluation.plan.complete_workflow_example
|
|
19
|
+
:members:
|
|
20
|
+
:show-inheritance:
|
|
21
|
+
:undoc-members:
|
|
22
|
+
|
|
23
|
+
pygeai.tests.snippets.evaluation.plan.create\_evaluation\_plan module
|
|
24
|
+
---------------------------------------------------------------------
|
|
25
|
+
|
|
26
|
+
.. automodule:: pygeai.tests.snippets.evaluation.plan.create_evaluation_plan
|
|
27
|
+
:members:
|
|
28
|
+
:show-inheritance:
|
|
29
|
+
:undoc-members:
|
|
30
|
+
|
|
31
|
+
pygeai.tests.snippets.evaluation.plan.create\_rag\_evaluation\_plan module
|
|
32
|
+
--------------------------------------------------------------------------
|
|
33
|
+
|
|
34
|
+
.. automodule:: pygeai.tests.snippets.evaluation.plan.create_rag_evaluation_plan
|
|
35
|
+
:members:
|
|
36
|
+
:show-inheritance:
|
|
37
|
+
:undoc-members:
|
|
38
|
+
|
|
39
|
+
pygeai.tests.snippets.evaluation.plan.delete\_evaluation\_plan module
|
|
40
|
+
---------------------------------------------------------------------
|
|
41
|
+
|
|
42
|
+
.. automodule:: pygeai.tests.snippets.evaluation.plan.delete_evaluation_plan
|
|
43
|
+
:members:
|
|
44
|
+
:show-inheritance:
|
|
45
|
+
:undoc-members:
|
|
46
|
+
|
|
47
|
+
pygeai.tests.snippets.evaluation.plan.delete\_plan\_system\_metric module
|
|
48
|
+
-------------------------------------------------------------------------
|
|
49
|
+
|
|
50
|
+
.. automodule:: pygeai.tests.snippets.evaluation.plan.delete_plan_system_metric
|
|
51
|
+
:members:
|
|
52
|
+
:show-inheritance:
|
|
53
|
+
:undoc-members:
|
|
54
|
+
|
|
55
|
+
pygeai.tests.snippets.evaluation.plan.execute\_evaluation\_plan module
|
|
56
|
+
----------------------------------------------------------------------
|
|
57
|
+
|
|
58
|
+
.. automodule:: pygeai.tests.snippets.evaluation.plan.execute_evaluation_plan
|
|
59
|
+
:members:
|
|
60
|
+
:show-inheritance:
|
|
61
|
+
:undoc-members:
|
|
62
|
+
|
|
63
|
+
pygeai.tests.snippets.evaluation.plan.get\_evaluation\_plan module
|
|
64
|
+
------------------------------------------------------------------
|
|
65
|
+
|
|
66
|
+
.. automodule:: pygeai.tests.snippets.evaluation.plan.get_evaluation_plan
|
|
67
|
+
:members:
|
|
68
|
+
:show-inheritance:
|
|
69
|
+
:undoc-members:
|
|
70
|
+
|
|
71
|
+
pygeai.tests.snippets.evaluation.plan.get\_plan\_system\_metric module
|
|
72
|
+
----------------------------------------------------------------------
|
|
73
|
+
|
|
74
|
+
.. automodule:: pygeai.tests.snippets.evaluation.plan.get_plan_system_metric
|
|
75
|
+
:members:
|
|
76
|
+
:show-inheritance:
|
|
77
|
+
:undoc-members:
|
|
78
|
+
|
|
79
|
+
pygeai.tests.snippets.evaluation.plan.get\_system\_metric module
|
|
80
|
+
----------------------------------------------------------------
|
|
81
|
+
|
|
82
|
+
.. automodule:: pygeai.tests.snippets.evaluation.plan.get_system_metric
|
|
83
|
+
:members:
|
|
84
|
+
:show-inheritance:
|
|
85
|
+
:undoc-members:
|
|
86
|
+
|
|
87
|
+
pygeai.tests.snippets.evaluation.plan.list\_evaluation\_plans module
|
|
88
|
+
--------------------------------------------------------------------
|
|
89
|
+
|
|
90
|
+
.. automodule:: pygeai.tests.snippets.evaluation.plan.list_evaluation_plans
|
|
91
|
+
:members:
|
|
92
|
+
:show-inheritance:
|
|
93
|
+
:undoc-members:
|
|
94
|
+
|
|
95
|
+
pygeai.tests.snippets.evaluation.plan.list\_plan\_system\_metrics module
|
|
96
|
+
------------------------------------------------------------------------
|
|
97
|
+
|
|
98
|
+
.. automodule:: pygeai.tests.snippets.evaluation.plan.list_plan_system_metrics
|
|
99
|
+
:members:
|
|
100
|
+
:show-inheritance:
|
|
101
|
+
:undoc-members:
|
|
102
|
+
|
|
103
|
+
pygeai.tests.snippets.evaluation.plan.list\_system\_metrics module
|
|
104
|
+
------------------------------------------------------------------
|
|
105
|
+
|
|
106
|
+
.. automodule:: pygeai.tests.snippets.evaluation.plan.list_system_metrics
|
|
107
|
+
:members:
|
|
108
|
+
:show-inheritance:
|
|
109
|
+
:undoc-members:
|
|
110
|
+
|
|
111
|
+
pygeai.tests.snippets.evaluation.plan.update\_evaluation\_plan module
|
|
112
|
+
---------------------------------------------------------------------
|
|
113
|
+
|
|
114
|
+
.. automodule:: pygeai.tests.snippets.evaluation.plan.update_evaluation_plan
|
|
115
|
+
:members:
|
|
116
|
+
:show-inheritance:
|
|
117
|
+
:undoc-members:
|
|
118
|
+
|
|
119
|
+
pygeai.tests.snippets.evaluation.plan.update\_plan\_system\_metric module
|
|
120
|
+
-------------------------------------------------------------------------
|
|
121
|
+
|
|
122
|
+
.. automodule:: pygeai.tests.snippets.evaluation.plan.update_plan_system_metric
|
|
123
|
+
:members:
|
|
124
|
+
:show-inheritance:
|
|
125
|
+
:undoc-members:
|
|
126
|
+
|
|
127
|
+
Module contents
|
|
128
|
+
---------------
|
|
129
|
+
|
|
130
|
+
.. automodule:: pygeai.tests.snippets.evaluation.plan
|
|
131
|
+
:members:
|
|
132
|
+
:show-inheritance:
|
|
133
|
+
:undoc-members:
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
pygeai.tests.snippets.evaluation.result package
|
|
2
|
+
===============================================
|
|
3
|
+
|
|
4
|
+
Submodules
|
|
5
|
+
----------
|
|
6
|
+
|
|
7
|
+
pygeai.tests.snippets.evaluation.result.complete\_workflow\_example module
|
|
8
|
+
--------------------------------------------------------------------------
|
|
9
|
+
|
|
10
|
+
.. automodule:: pygeai.tests.snippets.evaluation.result.complete_workflow_example
|
|
11
|
+
:members:
|
|
12
|
+
:show-inheritance:
|
|
13
|
+
:undoc-members:
|
|
14
|
+
|
|
15
|
+
pygeai.tests.snippets.evaluation.result.get\_evaluation\_result module
|
|
16
|
+
----------------------------------------------------------------------
|
|
17
|
+
|
|
18
|
+
.. automodule:: pygeai.tests.snippets.evaluation.result.get_evaluation_result
|
|
19
|
+
:members:
|
|
20
|
+
:show-inheritance:
|
|
21
|
+
:undoc-members:
|
|
22
|
+
|
|
23
|
+
pygeai.tests.snippets.evaluation.result.list\_evaluation\_results module
|
|
24
|
+
------------------------------------------------------------------------
|
|
25
|
+
|
|
26
|
+
.. automodule:: pygeai.tests.snippets.evaluation.result.list_evaluation_results
|
|
27
|
+
:members:
|
|
28
|
+
:show-inheritance:
|
|
29
|
+
:undoc-members:
|
|
30
|
+
|
|
31
|
+
Module contents
|
|
32
|
+
---------------
|
|
33
|
+
|
|
34
|
+
.. automodule:: pygeai.tests.snippets.evaluation.result
|
|
35
|
+
:members:
|
|
36
|
+
:show-inheritance:
|
|
37
|
+
:undoc-members:
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
pygeai.tests.snippets.evaluation package
|
|
2
2
|
========================================
|
|
3
3
|
|
|
4
|
+
Subpackages
|
|
5
|
+
-----------
|
|
6
|
+
|
|
7
|
+
.. toctree::
|
|
8
|
+
:maxdepth: 4
|
|
9
|
+
|
|
10
|
+
pygeai.tests.snippets.evaluation.dataset
|
|
11
|
+
pygeai.tests.snippets.evaluation.plan
|
|
12
|
+
pygeai.tests.snippets.evaluation.result
|
|
13
|
+
|
|
4
14
|
Module contents
|
|
5
15
|
---------------
|
|
6
16
|
|
|
@@ -28,6 +28,22 @@ pygeai.tests.snippets.organization.export\_request\_data module
|
|
|
28
28
|
:show-inheritance:
|
|
29
29
|
:undoc-members:
|
|
30
30
|
|
|
31
|
+
pygeai.tests.snippets.organization.get\_memberships module
|
|
32
|
+
----------------------------------------------------------
|
|
33
|
+
|
|
34
|
+
.. automodule:: pygeai.tests.snippets.organization.get_memberships
|
|
35
|
+
:members:
|
|
36
|
+
:show-inheritance:
|
|
37
|
+
:undoc-members:
|
|
38
|
+
|
|
39
|
+
pygeai.tests.snippets.organization.get\_organization\_members module
|
|
40
|
+
--------------------------------------------------------------------
|
|
41
|
+
|
|
42
|
+
.. automodule:: pygeai.tests.snippets.organization.get_organization_members
|
|
43
|
+
:members:
|
|
44
|
+
:show-inheritance:
|
|
45
|
+
:undoc-members:
|
|
46
|
+
|
|
31
47
|
pygeai.tests.snippets.organization.get\_project\_data module
|
|
32
48
|
------------------------------------------------------------
|
|
33
49
|
|
|
@@ -44,6 +60,30 @@ pygeai.tests.snippets.organization.get\_project\_list module
|
|
|
44
60
|
:show-inheritance:
|
|
45
61
|
:undoc-members:
|
|
46
62
|
|
|
63
|
+
pygeai.tests.snippets.organization.get\_project\_members module
|
|
64
|
+
---------------------------------------------------------------
|
|
65
|
+
|
|
66
|
+
.. automodule:: pygeai.tests.snippets.organization.get_project_members
|
|
67
|
+
:members:
|
|
68
|
+
:show-inheritance:
|
|
69
|
+
:undoc-members:
|
|
70
|
+
|
|
71
|
+
pygeai.tests.snippets.organization.get\_project\_memberships module
|
|
72
|
+
-------------------------------------------------------------------
|
|
73
|
+
|
|
74
|
+
.. automodule:: pygeai.tests.snippets.organization.get_project_memberships
|
|
75
|
+
:members:
|
|
76
|
+
:show-inheritance:
|
|
77
|
+
:undoc-members:
|
|
78
|
+
|
|
79
|
+
pygeai.tests.snippets.organization.get\_project\_roles module
|
|
80
|
+
-------------------------------------------------------------
|
|
81
|
+
|
|
82
|
+
.. automodule:: pygeai.tests.snippets.organization.get_project_roles
|
|
83
|
+
:members:
|
|
84
|
+
:show-inheritance:
|
|
85
|
+
:undoc-members:
|
|
86
|
+
|
|
47
87
|
pygeai.tests.snippets.organization.get\_project\_tokens module
|
|
48
88
|
--------------------------------------------------------------
|
|
49
89
|
|
pygeai/admin/clients.py
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import json
|
|
2
|
-
from json import JSONDecodeError
|
|
3
1
|
|
|
4
2
|
from pygeai import logger
|
|
5
3
|
from pygeai.admin.endpoints import GET_API_TOKEN_VALIDATION_V1, GET_AUTHORIZED_ORGANIZATIONS_V1, \
|
|
6
4
|
GET_AUTHORIZED_PROJECTS_V1, GET_PROJECT_VISIBILITY_V1, GET_PROJECT_API_TOKEN_V1
|
|
7
5
|
from pygeai.core.base.clients import BaseClient
|
|
8
6
|
from pygeai.core.common.exceptions import InvalidAPIResponseException
|
|
7
|
+
from pygeai.core.utils.validators import validate_status_code
|
|
8
|
+
from pygeai.core.utils.parsers import parse_json_response
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
class AdminClient(BaseClient):
|
|
@@ -17,12 +17,8 @@ class AdminClient(BaseClient):
|
|
|
17
17
|
:return: dict - The API response containing organization and project information in JSON format.
|
|
18
18
|
"""
|
|
19
19
|
response = self.api_service.get(endpoint=GET_API_TOKEN_VALIDATION_V1)
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
return result
|
|
23
|
-
except JSONDecodeError as e:
|
|
24
|
-
logger.error(f"Unable to validate API token: JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
25
|
-
raise InvalidAPIResponseException(f"Unable to validate API token: {response.text}")
|
|
20
|
+
validate_status_code(response)
|
|
21
|
+
return parse_json_response(response, "validate API token")
|
|
26
22
|
|
|
27
23
|
def get_authorized_organizations(self) -> dict:
|
|
28
24
|
"""
|
|
@@ -31,12 +27,8 @@ class AdminClient(BaseClient):
|
|
|
31
27
|
:return: dict - The API response containing the list of authorized organizations in JSON format.
|
|
32
28
|
"""
|
|
33
29
|
response = self.api_service.get(endpoint=GET_AUTHORIZED_ORGANIZATIONS_V1)
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
return result
|
|
37
|
-
except JSONDecodeError as e:
|
|
38
|
-
logger.error(f"Unable to retrieve authorized organizations: JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
39
|
-
raise InvalidAPIResponseException(f"Unable to retrieve authorized organizations: {response.text}")
|
|
30
|
+
validate_status_code(response)
|
|
31
|
+
return parse_json_response(response, "retrieve authorized organizations")
|
|
40
32
|
|
|
41
33
|
def get_authorized_projects_by_organization(
|
|
42
34
|
self,
|
|
@@ -54,12 +46,8 @@ class AdminClient(BaseClient):
|
|
|
54
46
|
"organization": organization
|
|
55
47
|
}
|
|
56
48
|
)
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
return result
|
|
60
|
-
except JSONDecodeError as e:
|
|
61
|
-
logger.error(f"Unable to retrieve authorized projects for organization '{organization}': JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
62
|
-
raise InvalidAPIResponseException(f"Unable to retrieve authorized projects for organization {organization}: {response.text}")
|
|
49
|
+
validate_status_code(response)
|
|
50
|
+
return parse_json_response(response, "retrieve authorized projects for organization", organization=organization)
|
|
63
51
|
|
|
64
52
|
def get_project_visibility(
|
|
65
53
|
self,
|
|
@@ -90,12 +78,8 @@ class AdminClient(BaseClient):
|
|
|
90
78
|
"accessToken": access_token
|
|
91
79
|
}
|
|
92
80
|
)
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
return result
|
|
96
|
-
except JSONDecodeError as e:
|
|
97
|
-
logger.error(f"Unable to retrieve project visibility for organization '{organization}' and project '{project}': JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
98
|
-
raise InvalidAPIResponseException(f"Unable to retrieve project visibility for organization {organization} and project {project}: {response.text}")
|
|
81
|
+
validate_status_code(response)
|
|
82
|
+
return parse_json_response(response, "retrieve project visibility", organization=organization, project=project)
|
|
99
83
|
|
|
100
84
|
def get_project_api_token(
|
|
101
85
|
self,
|
|
@@ -127,9 +111,5 @@ class AdminClient(BaseClient):
|
|
|
127
111
|
"accessToken": access_token
|
|
128
112
|
}
|
|
129
113
|
)
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
return result
|
|
133
|
-
except JSONDecodeError as e:
|
|
134
|
-
logger.error(f"Unable to retrieve project API token for organization '{organization}' and project '{project}': JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
135
|
-
raise InvalidAPIResponseException(f"Unable to retrieve project API token for organization {organization} and project {project}: {response.text}")
|
|
114
|
+
validate_status_code(response)
|
|
115
|
+
return parse_json_response(response, "retrieve project API token", organization=organization, project=project)
|
pygeai/assistant/clients.py
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import json
|
|
2
|
-
from json import JSONDecodeError
|
|
3
1
|
|
|
4
2
|
from pygeai import logger
|
|
5
3
|
from pygeai.assistant.endpoints import GET_ASSISTANT_DATA_V1, CREATE_ASSISTANT_V1, UPDATE_ASSISTANT_V1, BEGIN_CONVERSATION_V1, \
|
|
@@ -8,6 +6,8 @@ from pygeai.assistant.data_analyst.endpoints import GET_DATA_ANALYST_STATUS_V1,
|
|
|
8
6
|
from pygeai.core.base.clients import BaseClient
|
|
9
7
|
from pygeai.core.common.decorators import handler_server_error
|
|
10
8
|
from pygeai.core.common.exceptions import InvalidAPIResponseException
|
|
9
|
+
from pygeai.core.utils.validators import validate_status_code
|
|
10
|
+
from pygeai.core.utils.parsers import parse_json_response
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
class AssistantClient(BaseClient):
|
|
@@ -31,12 +31,8 @@ class AssistantClient(BaseClient):
|
|
|
31
31
|
"detail": detail
|
|
32
32
|
}
|
|
33
33
|
)
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
return result
|
|
37
|
-
except JSONDecodeError as e:
|
|
38
|
-
logger.error(f"Unable to get assistant data for ID '{assistant_id}': JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
39
|
-
raise InvalidAPIResponseException(f"Unable to get assistant data for ID '{assistant_id}': {response.text}")
|
|
34
|
+
validate_status_code(response)
|
|
35
|
+
return parse_json_response(response, "get assistant data for ID", assistant_id=assistant_id)
|
|
40
36
|
|
|
41
37
|
def create_assistant(
|
|
42
38
|
self,
|
|
@@ -88,12 +84,8 @@ class AssistantClient(BaseClient):
|
|
|
88
84
|
endpoint=CREATE_ASSISTANT_V1,
|
|
89
85
|
data=data
|
|
90
86
|
)
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
return result
|
|
94
|
-
except JSONDecodeError as e:
|
|
95
|
-
logger.error(f"Unable to create assistant with name '{name}': JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
96
|
-
raise InvalidAPIResponseException(f"Unable to create assistant with name '{name}': {response.text}")
|
|
87
|
+
validate_status_code(response)
|
|
88
|
+
return parse_json_response(response, "create assistant with name", name=name)
|
|
97
89
|
|
|
98
90
|
def update_assistant(
|
|
99
91
|
self,
|
|
@@ -165,12 +157,8 @@ class AssistantClient(BaseClient):
|
|
|
165
157
|
endpoint=endpoint,
|
|
166
158
|
data=data
|
|
167
159
|
)
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
return result
|
|
171
|
-
except JSONDecodeError as e:
|
|
172
|
-
logger.error(f"Unable to update assistant with ID '{assistant_id}': JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
173
|
-
raise InvalidAPIResponseException(f"Unable to update assistant with ID '{assistant_id}': {response.text}")
|
|
160
|
+
validate_status_code(response)
|
|
161
|
+
return parse_json_response(response, "update assistant", assistant_id=assistant_id)
|
|
174
162
|
|
|
175
163
|
def delete_assistant(
|
|
176
164
|
self,
|
|
@@ -186,12 +174,8 @@ class AssistantClient(BaseClient):
|
|
|
186
174
|
response = self.api_service.delete(
|
|
187
175
|
endpoint=endpoint
|
|
188
176
|
)
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
return result
|
|
192
|
-
except JSONDecodeError as e:
|
|
193
|
-
logger.error(f"Unable to delete assistant with ID '{assistant_id}': JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
194
|
-
raise InvalidAPIResponseException(f"Unable to delete assistant with ID '{assistant_id}': {response.text}")
|
|
177
|
+
validate_status_code(response)
|
|
178
|
+
return parse_json_response(response, "delete assistant", assistant_id=assistant_id)
|
|
195
179
|
|
|
196
180
|
def send_chat_request(
|
|
197
181
|
self,
|
|
@@ -223,12 +207,8 @@ class AssistantClient(BaseClient):
|
|
|
223
207
|
endpoint=SEND_CHAT_REQUEST_V1,
|
|
224
208
|
data=data
|
|
225
209
|
)
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
return result
|
|
229
|
-
except JSONDecodeError as e:
|
|
230
|
-
logger.error(f"Unable to send chat request to assistant '{assistant_name}': JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
231
|
-
raise InvalidAPIResponseException(f"Unable to send chat request to assistant '{assistant_name}': {response.text}")
|
|
210
|
+
validate_status_code(response)
|
|
211
|
+
return parse_json_response(response, "send chat request to assistant", assistant_name=assistant_name)
|
|
232
212
|
|
|
233
213
|
def get_request_status(
|
|
234
214
|
self,
|
|
@@ -244,12 +224,8 @@ class AssistantClient(BaseClient):
|
|
|
244
224
|
response = self.api_service.get(
|
|
245
225
|
endpoint=endpoint
|
|
246
226
|
)
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
return result
|
|
250
|
-
except JSONDecodeError as e:
|
|
251
|
-
logger.error(f"Unable to get request status for ID '{request_id}': JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
252
|
-
raise InvalidAPIResponseException(f"Unable to get request status for ID '{request_id}': {response.text}")
|
|
227
|
+
validate_status_code(response)
|
|
228
|
+
return parse_json_response(response, "get request status for ID", request_id=request_id)
|
|
253
229
|
|
|
254
230
|
def cancel_request(
|
|
255
231
|
self,
|
|
@@ -268,12 +244,8 @@ class AssistantClient(BaseClient):
|
|
|
268
244
|
"requestId": request_id
|
|
269
245
|
}
|
|
270
246
|
)
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
return result
|
|
274
|
-
except JSONDecodeError as e:
|
|
275
|
-
logger.error(f"Unable to cancel request with ID '{request_id}': JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
276
|
-
raise InvalidAPIResponseException(f"Unable to cancel request with ID '{request_id}': {response.text}")
|
|
247
|
+
validate_status_code(response)
|
|
248
|
+
return parse_json_response(response, "cancel request", request_id=request_id)
|
|
277
249
|
|
|
278
250
|
|
|
279
251
|
|
pygeai/assistant/data/clients.py
CHANGED
|
@@ -6,6 +6,7 @@ from pygeai.assistant.endpoints import GET_ASSISTANT_DATA_V1, CREATE_ASSISTANT_V
|
|
|
6
6
|
from pygeai.assistant.data_analyst.endpoints import GET_DATA_ANALYST_STATUS_V1, EXTEND_DATA_ANALYST_DATASET_V1
|
|
7
7
|
from pygeai.core.base.clients import BaseClient
|
|
8
8
|
from pygeai.core.common.decorators import handler_server_error
|
|
9
|
+
from pygeai.core.utils.validators import validate_status_code
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
class ChatWithDataAssistantClient(AssistantClient):
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
from json import JSONDecodeError
|
|
2
1
|
from pathlib import Path
|
|
3
2
|
|
|
4
3
|
from pygeai import logger
|
|
5
4
|
from pygeai.assistant.clients import AssistantClient
|
|
6
5
|
from pygeai.assistant.data_analyst.endpoints import GET_DATA_ANALYST_STATUS_V1, EXTEND_DATA_ANALYST_DATASET_V1
|
|
7
6
|
from pygeai.core.common.exceptions import InvalidAPIResponseException
|
|
7
|
+
from pygeai.core.utils.validators import validate_status_code
|
|
8
|
+
from pygeai.core.utils.parsers import parse_json_response
|
|
8
9
|
|
|
9
10
|
|
|
10
11
|
class DataAnalystAssistantClient(AssistantClient):
|
|
@@ -34,12 +35,8 @@ class DataAnalystAssistantClient(AssistantClient):
|
|
|
34
35
|
headers=headers
|
|
35
36
|
)
|
|
36
37
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
return result
|
|
40
|
-
except JSONDecodeError as e:
|
|
41
|
-
logger.error(f"Unable to get status for assistant ID '{assistant_id}': JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
42
|
-
raise InvalidAPIResponseException(f"Unable to get status for assistant ID '{assistant_id}': {response.text}")
|
|
38
|
+
validate_status_code(response)
|
|
39
|
+
return parse_json_response(response, "get status for assistant ID", assistant_id=assistant_id)
|
|
43
40
|
|
|
44
41
|
def extend_dataset(
|
|
45
42
|
self,
|
|
@@ -69,12 +66,8 @@ class DataAnalystAssistantClient(AssistantClient):
|
|
|
69
66
|
endpoint=endpoint,
|
|
70
67
|
files=files
|
|
71
68
|
)
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
return result
|
|
75
|
-
except JSONDecodeError as e:
|
|
76
|
-
logger.error(f"Unable to extend dataset for assistant ID '{assistant_id}': JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
77
|
-
raise InvalidAPIResponseException(f"Unable to extend dataset for assistant ID '{assistant_id}': {response.text}")
|
|
69
|
+
validate_status_code(response)
|
|
70
|
+
return parse_json_response(response, "extend dataset for assistant ID", assistant_id=assistant_id)
|
|
78
71
|
finally:
|
|
79
72
|
for _, file_handle in files:
|
|
80
73
|
file_handle.close()
|
pygeai/assistant/rag/clients.py
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import logging
|
|
3
|
-
from json import JSONDecodeError
|
|
4
3
|
from pathlib import Path
|
|
5
4
|
from typing import Any
|
|
6
5
|
|
|
@@ -12,6 +11,8 @@ from pygeai.core.base.clients import BaseClient
|
|
|
12
11
|
import urllib.parse
|
|
13
12
|
|
|
14
13
|
from pygeai.core.common.exceptions import InvalidAPIResponseException
|
|
14
|
+
from pygeai.core.utils.validators import validate_status_code
|
|
15
|
+
from pygeai.core.utils.parsers import parse_json_response
|
|
15
16
|
|
|
16
17
|
|
|
17
18
|
class RAGAssistantClient(BaseClient):
|
|
@@ -21,22 +22,14 @@ class RAGAssistantClient(BaseClient):
|
|
|
21
22
|
|
|
22
23
|
def get_assistants_from_project(self) -> dict:
|
|
23
24
|
response = self.api_service.get(endpoint=GET_ASSISTANTS_FROM_PROJECT_V1)
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
return result
|
|
27
|
-
except JSONDecodeError as e:
|
|
28
|
-
logger.error(f"Unable to get assistants from project: JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
29
|
-
raise InvalidAPIResponseException(f"Unable to get assistants from project: {response.text}")
|
|
25
|
+
validate_status_code(response)
|
|
26
|
+
return parse_json_response(response, "get assistants from project")
|
|
30
27
|
|
|
31
28
|
def get_assistant_data(self, name: str) -> dict:
|
|
32
29
|
endpoint = GET_ASSISTANT_V1.format(name=name)
|
|
33
30
|
response = self.api_service.get(endpoint=endpoint)
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
return result
|
|
37
|
-
except JSONDecodeError as e:
|
|
38
|
-
logger.error(f"Unable to get assistant data for name '{name}': JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
39
|
-
raise InvalidAPIResponseException(f"Unable to get assistant data for name '{name}': {response.text}")
|
|
31
|
+
validate_status_code(response)
|
|
32
|
+
return parse_json_response(response, "get assistant data for name", name=name)
|
|
40
33
|
|
|
41
34
|
def create_assistant(
|
|
42
35
|
self,
|
|
@@ -116,12 +109,8 @@ class RAGAssistantClient(BaseClient):
|
|
|
116
109
|
endpoint=CREATE_ASSISTANT_V1,
|
|
117
110
|
data=data
|
|
118
111
|
)
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
return result
|
|
122
|
-
except JSONDecodeError as e:
|
|
123
|
-
logger.error(f"Unable to create assistant with name '{name}': JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
124
|
-
raise InvalidAPIResponseException(f"Unable to create assistant with name '{name}': {response.text}")
|
|
112
|
+
validate_status_code(response)
|
|
113
|
+
return parse_json_response(response, "create assistant with name", name=name)
|
|
125
114
|
|
|
126
115
|
def update_assistant(
|
|
127
116
|
self,
|
|
@@ -154,23 +143,15 @@ class RAGAssistantClient(BaseClient):
|
|
|
154
143
|
endpoint=endpoint,
|
|
155
144
|
data=data
|
|
156
145
|
)
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
return result
|
|
160
|
-
except JSONDecodeError as e:
|
|
161
|
-
logger.error(f"Unable to update assistant with name '{name}': JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
162
|
-
raise InvalidAPIResponseException(f"Unable to update assistant with name '{name}': {response.text}")
|
|
146
|
+
validate_status_code(response)
|
|
147
|
+
return parse_json_response(response, "update assistant with name", name=name)
|
|
163
148
|
|
|
164
149
|
def delete_assistant(self, name: str) -> dict:
|
|
165
150
|
safe_name = self.get_url_safe_name(name)
|
|
166
151
|
endpoint = DELETE_ASSISTANT_V1.format(name=safe_name)
|
|
167
152
|
response = self.api_service.delete(endpoint=endpoint)
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
return result
|
|
171
|
-
except JSONDecodeError as e:
|
|
172
|
-
logger.error(f"Unable to delete assistant with name '{name}': JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
173
|
-
raise InvalidAPIResponseException(f"Unable to delete assistant with name '{name}': {response.text}")
|
|
153
|
+
validate_status_code(response)
|
|
154
|
+
return parse_json_response(response, "delete assistant with name", name=name)
|
|
174
155
|
|
|
175
156
|
def get_documents(
|
|
176
157
|
self,
|
|
@@ -187,34 +168,22 @@ class RAGAssistantClient(BaseClient):
|
|
|
187
168
|
"count": count
|
|
188
169
|
}
|
|
189
170
|
)
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
return result
|
|
193
|
-
except JSONDecodeError as e:
|
|
194
|
-
logger.error(f"Unable to get documents for assistant '{name}': JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
195
|
-
raise InvalidAPIResponseException(f"Unable to get documents for assistant '{name}': {response.text}")
|
|
171
|
+
validate_status_code(response)
|
|
172
|
+
return parse_json_response(response, "get documents for assistant", name=name)
|
|
196
173
|
|
|
197
174
|
def delete_all_documents(self, name: str) -> dict:
|
|
198
175
|
safe_name = self.get_url_safe_name(name)
|
|
199
176
|
endpoint = DELETE_ALL_DOCUMENTS_V1.format(name=safe_name)
|
|
200
177
|
response = self.api_service.delete(endpoint=endpoint)
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
return result
|
|
204
|
-
except JSONDecodeError as e:
|
|
205
|
-
logger.error(f"Unable to delete all documents for assistant '{name}': JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
206
|
-
raise InvalidAPIResponseException(f"Unable to delete all documents for assistant '{name}': {response.text}")
|
|
178
|
+
validate_status_code(response)
|
|
179
|
+
return parse_json_response(response, "delete all documents for assistant", name=name)
|
|
207
180
|
|
|
208
181
|
def retrieve_document(self, name: str, document_id: str) -> dict:
|
|
209
182
|
safe_name = self.get_url_safe_name(name)
|
|
210
183
|
endpoint = RETRIEVE_DOCUMENT_V1.format(name=safe_name, id=document_id)
|
|
211
184
|
response = self.api_service.get(endpoint=endpoint)
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
return result
|
|
215
|
-
except JSONDecodeError as e:
|
|
216
|
-
logger.error(f"Unable to retrieve document with ID '{document_id}' for assistant '{name}': JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
217
|
-
raise InvalidAPIResponseException(f"Unable to retrieve document with ID '{document_id}' for assistant '{name}': {response.text}")
|
|
185
|
+
validate_status_code(response)
|
|
186
|
+
return parse_json_response(response, "retrieve document", document_id=document_id)
|
|
218
187
|
|
|
219
188
|
def upload_document(
|
|
220
189
|
self,
|
|
@@ -234,12 +203,8 @@ class RAGAssistantClient(BaseClient):
|
|
|
234
203
|
else:
|
|
235
204
|
raise ValueError("Invalid upload_type. Use 'binary' or 'multipart'.")
|
|
236
205
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
return result
|
|
240
|
-
except JSONDecodeError as e:
|
|
241
|
-
logger.error(f"Unable to upload document for assistant '{name}': JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
242
|
-
raise InvalidAPIResponseException(f"Unable to upload document for assistant '{name}': {response.text}")
|
|
206
|
+
validate_status_code(response)
|
|
207
|
+
return parse_json_response(response, "upload document for assistant", name=name)
|
|
243
208
|
|
|
244
209
|
def _upload_binary_document(self, endpoint: str, file_path: str, content_type: str):
|
|
245
210
|
"""
|
|
@@ -310,22 +275,14 @@ class RAGAssistantClient(BaseClient):
|
|
|
310
275
|
safe_name = self.get_url_safe_name(name)
|
|
311
276
|
endpoint = DELETE_DOCUMENT_V1.format(name=safe_name, id=document_id)
|
|
312
277
|
response = self.api_service.delete(endpoint=endpoint)
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
return result
|
|
316
|
-
except JSONDecodeError as e:
|
|
317
|
-
logger.error(f"Unable to delete document with ID '{document_id}' for assistant '{name}': JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
318
|
-
raise InvalidAPIResponseException(f"Unable to delete document with ID '{document_id}' for assistant '{name}': {response.text}")
|
|
278
|
+
validate_status_code(response)
|
|
279
|
+
return parse_json_response(response, "delete document", document_id=document_id)
|
|
319
280
|
|
|
320
281
|
def execute_query(self, query: dict) -> dict:
|
|
321
282
|
response = self.api_service.post(
|
|
322
283
|
endpoint=EXECUTE_QUERY_V1,
|
|
323
284
|
data=query
|
|
324
285
|
)
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
return result
|
|
328
|
-
except JSONDecodeError as e:
|
|
329
|
-
logger.error(f"Unable to execute query: JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
330
|
-
raise InvalidAPIResponseException(f"Unable to execute query: {response.text}")
|
|
286
|
+
validate_status_code(response)
|
|
287
|
+
return parse_json_response(response, "execute query")
|
|
331
288
|
|