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/_docs/source/conf.py
CHANGED
|
@@ -8,23 +8,45 @@
|
|
|
8
8
|
|
|
9
9
|
import os
|
|
10
10
|
import sys
|
|
11
|
+
from datetime import datetime
|
|
12
|
+
|
|
11
13
|
sys.path.insert(0, os.path.abspath('../..'))
|
|
12
14
|
|
|
15
|
+
# Import version from package
|
|
16
|
+
import pygeai
|
|
13
17
|
|
|
14
18
|
project = 'PyGEAI'
|
|
15
|
-
copyright = '2024, Globant'
|
|
16
19
|
author = 'Globant'
|
|
17
|
-
|
|
20
|
+
copyright = f'{datetime.now().year}, {author}'
|
|
21
|
+
release = pygeai.__version__
|
|
22
|
+
version = '.'.join(release.split('.')[:2]) # e.g., '0.6' from '0.6.0'
|
|
18
23
|
|
|
19
24
|
# -- General configuration ---------------------------------------------------
|
|
20
25
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
|
21
26
|
|
|
22
|
-
extensions = [
|
|
27
|
+
extensions = [
|
|
28
|
+
'sphinx.ext.autodoc', # Auto-generate docs from docstrings
|
|
29
|
+
'sphinx.ext.napoleon', # Support for Google/NumPy style docstrings
|
|
30
|
+
'sphinx.ext.viewcode', # Add links to source code
|
|
31
|
+
'sphinx.ext.intersphinx', # Link to other project documentation
|
|
32
|
+
'sphinx.ext.autosummary', # Generate summary tables
|
|
33
|
+
'sphinx_markdown_builder', # Build markdown output
|
|
34
|
+
]
|
|
23
35
|
|
|
24
36
|
templates_path = ['_templates']
|
|
25
|
-
exclude_patterns = [
|
|
37
|
+
exclude_patterns = [
|
|
38
|
+
'_build',
|
|
39
|
+
'Thumbs.db',
|
|
40
|
+
'.DS_Store',
|
|
41
|
+
]
|
|
26
42
|
|
|
43
|
+
# Language
|
|
44
|
+
language = 'en'
|
|
27
45
|
|
|
46
|
+
# Suppress specific warnings
|
|
47
|
+
suppress_warnings = [
|
|
48
|
+
'ref.duplicate', # Suppress duplicate implicit target warnings
|
|
49
|
+
]
|
|
28
50
|
|
|
29
51
|
# -- Options for HTML output -------------------------------------------------
|
|
30
52
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
|
|
@@ -32,14 +54,64 @@ exclude_patterns = []
|
|
|
32
54
|
html_theme = 'sphinx_rtd_theme'
|
|
33
55
|
html_static_path = ['_static']
|
|
34
56
|
|
|
35
|
-
#
|
|
57
|
+
# Theme options
|
|
58
|
+
html_theme_options = {
|
|
59
|
+
'logo_only': False,
|
|
60
|
+
'display_version': True,
|
|
61
|
+
'prev_next_buttons_location': 'bottom',
|
|
62
|
+
'style_external_links': True,
|
|
63
|
+
'collapse_navigation': False,
|
|
64
|
+
'sticky_navigation': True,
|
|
65
|
+
'navigation_depth': 4,
|
|
66
|
+
'includehidden': True,
|
|
67
|
+
'titles_only': False,
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
# HTML metadata
|
|
71
|
+
html_title = f'{project} v{release} Documentation'
|
|
72
|
+
html_short_title = f'{project} v{version}'
|
|
36
73
|
html_show_sourcelink = False
|
|
37
74
|
html_show_sphinx = False
|
|
38
75
|
|
|
76
|
+
# -- Autodoc configuration ---------------------------------------------------
|
|
77
|
+
|
|
39
78
|
autodoc_default_options = {
|
|
40
79
|
'members': True,
|
|
41
|
-
'
|
|
80
|
+
'member-order': 'bysource',
|
|
81
|
+
'special-members': '__init__',
|
|
82
|
+
'undoc-members': False, # Hide undocumented members
|
|
83
|
+
'exclude-members': '__weakref__',
|
|
42
84
|
'show-inheritance': True,
|
|
85
|
+
'inherited-members': False,
|
|
43
86
|
}
|
|
44
87
|
|
|
88
|
+
# Type hints configuration
|
|
89
|
+
autodoc_typehints = 'description'
|
|
90
|
+
autodoc_typehints_description_target = 'documented'
|
|
91
|
+
|
|
92
|
+
# Mock imports for packages not available during build
|
|
45
93
|
autodoc_mock_imports = []
|
|
94
|
+
|
|
95
|
+
# -- Intersphinx configuration -----------------------------------------------
|
|
96
|
+
|
|
97
|
+
intersphinx_mapping = {
|
|
98
|
+
'python': ('https://docs.python.org/3', None),
|
|
99
|
+
'requests': ('https://requests.readthedocs.io/en/latest/', None),
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
# -- Napoleon configuration --------------------------------------------------
|
|
103
|
+
|
|
104
|
+
napoleon_google_docstring = True
|
|
105
|
+
napoleon_numpy_docstring = True
|
|
106
|
+
napoleon_include_init_with_doc = True
|
|
107
|
+
napoleon_include_private_with_doc = False
|
|
108
|
+
napoleon_include_special_with_doc = True
|
|
109
|
+
napoleon_use_admonition_for_examples = False
|
|
110
|
+
napoleon_use_admonition_for_notes = False
|
|
111
|
+
napoleon_use_admonition_for_references = False
|
|
112
|
+
napoleon_use_ivar = False
|
|
113
|
+
napoleon_use_param = True
|
|
114
|
+
napoleon_use_rtype = True
|
|
115
|
+
napoleon_preprocess_types = False
|
|
116
|
+
napoleon_type_aliases = None
|
|
117
|
+
napoleon_attr_annotations = True
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
Administration
|
|
2
|
+
==============
|
|
3
|
+
|
|
4
|
+
The Admin module provides administrative functionality for managing organizations, projects, and API tokens in Globant Enterprise AI. This module is primarily used for validation, authorization checks, and retrieving project information.
|
|
5
|
+
|
|
6
|
+
This section covers:
|
|
7
|
+
|
|
8
|
+
* Validating API tokens
|
|
9
|
+
* Getting authorized organizations
|
|
10
|
+
* Getting authorized projects
|
|
11
|
+
* Retrieving project API tokens
|
|
12
|
+
* Checking project visibility
|
|
13
|
+
|
|
14
|
+
For each operation, you have two implementation options:
|
|
15
|
+
|
|
16
|
+
* `Command Line`_
|
|
17
|
+
* `Low-Level Service Layer`_
|
|
18
|
+
|
|
19
|
+
.. note::
|
|
20
|
+
The Admin module currently does not have a High-Level Service Layer (Manager class).
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
Validate API Token
|
|
24
|
+
~~~~~~~~~~~~~~~~~~
|
|
25
|
+
|
|
26
|
+
Validates an API token and returns information about the organization and project it belongs to.
|
|
27
|
+
|
|
28
|
+
Command Line
|
|
29
|
+
^^^^^^^^^^^^
|
|
30
|
+
|
|
31
|
+
.. code-block:: shell
|
|
32
|
+
|
|
33
|
+
geai admin validate-token
|
|
34
|
+
|
|
35
|
+
Low-Level Service Layer
|
|
36
|
+
^^^^^^^^^^^^^^^^^^^^^^^^
|
|
37
|
+
|
|
38
|
+
.. code-block:: python
|
|
39
|
+
|
|
40
|
+
from pygeai.admin.clients import AdminClient
|
|
41
|
+
|
|
42
|
+
client = AdminClient()
|
|
43
|
+
|
|
44
|
+
result = client.validate_api_token()
|
|
45
|
+
print(result)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
Get Authorized Organizations
|
|
49
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
50
|
+
|
|
51
|
+
Retrieves a list of organizations that the current user is authorized to access.
|
|
52
|
+
|
|
53
|
+
Command Line
|
|
54
|
+
^^^^^^^^^^^^
|
|
55
|
+
|
|
56
|
+
.. code-block:: shell
|
|
57
|
+
|
|
58
|
+
geai admin get-orgs
|
|
59
|
+
|
|
60
|
+
Low-Level Service Layer
|
|
61
|
+
^^^^^^^^^^^^^^^^^^^^^^^^
|
|
62
|
+
|
|
63
|
+
.. code-block:: python
|
|
64
|
+
|
|
65
|
+
from pygeai.admin.clients import AdminClient
|
|
66
|
+
|
|
67
|
+
client = AdminClient()
|
|
68
|
+
|
|
69
|
+
organizations = client.get_authorized_organizations()
|
|
70
|
+
print(organizations)
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
Get Authorized Projects by Organization
|
|
74
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
75
|
+
|
|
76
|
+
Retrieves a list of projects within a specific organization that the current user can access.
|
|
77
|
+
|
|
78
|
+
Command Line
|
|
79
|
+
^^^^^^^^^^^^
|
|
80
|
+
|
|
81
|
+
.. code-block:: shell
|
|
82
|
+
|
|
83
|
+
geai admin get-projects --org "my-organization"
|
|
84
|
+
|
|
85
|
+
Low-Level Service Layer
|
|
86
|
+
^^^^^^^^^^^^^^^^^^^^^^^^
|
|
87
|
+
|
|
88
|
+
.. code-block:: python
|
|
89
|
+
|
|
90
|
+
from pygeai.admin.clients import AdminClient
|
|
91
|
+
|
|
92
|
+
client = AdminClient()
|
|
93
|
+
|
|
94
|
+
projects = client.get_authorized_projects_by_organization(
|
|
95
|
+
organization="my-organization"
|
|
96
|
+
)
|
|
97
|
+
print(projects)
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
Get Project API Token
|
|
101
|
+
~~~~~~~~~~~~~~~~~~~~~
|
|
102
|
+
|
|
103
|
+
Retrieves the API token for a specific project using an access token.
|
|
104
|
+
|
|
105
|
+
Command Line
|
|
106
|
+
^^^^^^^^^^^^
|
|
107
|
+
|
|
108
|
+
.. code-block:: shell
|
|
109
|
+
|
|
110
|
+
geai admin get-project-api-token \
|
|
111
|
+
--org "my-organization" \
|
|
112
|
+
--project "my-project" \
|
|
113
|
+
--access-token "your-access-token"
|
|
114
|
+
|
|
115
|
+
Low-Level Service Layer
|
|
116
|
+
^^^^^^^^^^^^^^^^^^^^^^^^
|
|
117
|
+
|
|
118
|
+
.. code-block:: python
|
|
119
|
+
|
|
120
|
+
from pygeai.admin.clients import AdminClient
|
|
121
|
+
|
|
122
|
+
client = AdminClient()
|
|
123
|
+
|
|
124
|
+
api_token = client.get_project_api_token(
|
|
125
|
+
organization="my-organization",
|
|
126
|
+
project="my-project",
|
|
127
|
+
access_token="your-access-token"
|
|
128
|
+
)
|
|
129
|
+
print(api_token)
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
Get Project Visibility
|
|
133
|
+
~~~~~~~~~~~~~~~~~~~~~~
|
|
134
|
+
|
|
135
|
+
Checks the visibility settings of a specific project.
|
|
136
|
+
|
|
137
|
+
Command Line
|
|
138
|
+
^^^^^^^^^^^^
|
|
139
|
+
|
|
140
|
+
.. code-block:: shell
|
|
141
|
+
|
|
142
|
+
geai admin get-project-visibility \
|
|
143
|
+
--org "my-organization" \
|
|
144
|
+
--project "my-project" \
|
|
145
|
+
--access-token "your-access-token"
|
|
146
|
+
|
|
147
|
+
Low-Level Service Layer
|
|
148
|
+
^^^^^^^^^^^^^^^^^^^^^^^^
|
|
149
|
+
|
|
150
|
+
.. code-block:: python
|
|
151
|
+
|
|
152
|
+
from pygeai.admin.clients import AdminClient
|
|
153
|
+
|
|
154
|
+
client = AdminClient()
|
|
155
|
+
|
|
156
|
+
visibility = client.get_project_visibility(
|
|
157
|
+
organization="my-organization",
|
|
158
|
+
project="my-project",
|
|
159
|
+
access_token="your-access-token"
|
|
160
|
+
)
|
|
161
|
+
print(visibility)
|
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
Assistant Management
|
|
2
|
+
====================
|
|
3
|
+
|
|
4
|
+
The Assistant module provides functionality to create, manage, and interact with AI assistants in Globant Enterprise AI. Assistants can be of different types (chat, text, RAG) and are configured with specific prompts, LLM settings, and behaviors.
|
|
5
|
+
|
|
6
|
+
This section covers:
|
|
7
|
+
|
|
8
|
+
* Creating assistants (chat, text, RAG)
|
|
9
|
+
* Retrieving assistant information
|
|
10
|
+
* Updating assistant configuration
|
|
11
|
+
* Deleting assistants
|
|
12
|
+
* Sending chat requests to assistants
|
|
13
|
+
* Managing assistant requests
|
|
14
|
+
|
|
15
|
+
For each operation, you have three implementation options:
|
|
16
|
+
|
|
17
|
+
* `Command Line`_
|
|
18
|
+
* `Low-Level Service Layer`_
|
|
19
|
+
* `High-Level Service Layer`_
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
Create Chat Assistant
|
|
23
|
+
~~~~~~~~~~~~~~~~~~~~~
|
|
24
|
+
|
|
25
|
+
Creates a new chat assistant with specified configuration including LLM settings, welcome data, and guardrails.
|
|
26
|
+
|
|
27
|
+
Command Line
|
|
28
|
+
^^^^^^^^^^^^
|
|
29
|
+
|
|
30
|
+
.. code-block:: shell
|
|
31
|
+
|
|
32
|
+
geai assistant create \
|
|
33
|
+
--type chat \
|
|
34
|
+
--name "Customer Support Bot" \
|
|
35
|
+
--prompt "You are a helpful customer support assistant"
|
|
36
|
+
|
|
37
|
+
Low-Level Service Layer
|
|
38
|
+
^^^^^^^^^^^^^^^^^^^^^^^^
|
|
39
|
+
|
|
40
|
+
.. code-block:: python
|
|
41
|
+
|
|
42
|
+
from pygeai.assistant.clients import AssistantClient
|
|
43
|
+
|
|
44
|
+
client = AssistantClient()
|
|
45
|
+
|
|
46
|
+
response = client.create_assistant(
|
|
47
|
+
assistant_type="chat",
|
|
48
|
+
name="Customer Support Bot",
|
|
49
|
+
prompt="You are a helpful customer support assistant",
|
|
50
|
+
description="Handles customer inquiries"
|
|
51
|
+
)
|
|
52
|
+
print(response)
|
|
53
|
+
|
|
54
|
+
High-Level Service Layer
|
|
55
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
56
|
+
|
|
57
|
+
.. code-block:: python
|
|
58
|
+
|
|
59
|
+
from pygeai.assistant.managers import AssistantManager
|
|
60
|
+
from pygeai.core.models import ChatAssistant, LlmSettings
|
|
61
|
+
from pygeai.core.services.llm.model import Model
|
|
62
|
+
from pygeai.core.services.llm.providers import Provider
|
|
63
|
+
|
|
64
|
+
manager = AssistantManager()
|
|
65
|
+
|
|
66
|
+
llm_settings = LlmSettings(
|
|
67
|
+
provider_name=Provider.OPENAI,
|
|
68
|
+
model_name=Model.OpenAI.GPT_4,
|
|
69
|
+
temperature=0.7,
|
|
70
|
+
max_tokens=1000
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
assistant = ChatAssistant(
|
|
74
|
+
name="Customer Support Bot",
|
|
75
|
+
description="Handles customer inquiries",
|
|
76
|
+
prompt="You are a helpful customer support assistant",
|
|
77
|
+
llm_settings=llm_settings
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
response = manager.create_assistant(assistant)
|
|
81
|
+
print(f"Response: {response}")
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
Get Assistant Data
|
|
85
|
+
~~~~~~~~~~~~~~~~~~
|
|
86
|
+
|
|
87
|
+
Retrieves information about a specific assistant.
|
|
88
|
+
|
|
89
|
+
Command Line
|
|
90
|
+
^^^^^^^^^^^^
|
|
91
|
+
|
|
92
|
+
.. code-block:: shell
|
|
93
|
+
|
|
94
|
+
geai assistant get-assistant --detail full
|
|
95
|
+
|
|
96
|
+
Low-Level Service Layer
|
|
97
|
+
^^^^^^^^^^^^^^^^^^^^^^^^
|
|
98
|
+
|
|
99
|
+
.. code-block:: python
|
|
100
|
+
|
|
101
|
+
from pygeai.assistant.clients import AssistantClient
|
|
102
|
+
|
|
103
|
+
client = AssistantClient()
|
|
104
|
+
|
|
105
|
+
assistant_data = client.get_assistant_data(
|
|
106
|
+
assistant_id="assistant-uuid",
|
|
107
|
+
detail="full"
|
|
108
|
+
)
|
|
109
|
+
print(assistant_data)
|
|
110
|
+
|
|
111
|
+
High-Level Service Layer
|
|
112
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
113
|
+
|
|
114
|
+
.. code-block:: python
|
|
115
|
+
|
|
116
|
+
from pygeai.assistant.managers import AssistantManager
|
|
117
|
+
|
|
118
|
+
manager = AssistantManager()
|
|
119
|
+
|
|
120
|
+
assistant = manager.get_assistant_data(
|
|
121
|
+
assistant_id="assistant-uuid",
|
|
122
|
+
detail="full"
|
|
123
|
+
)
|
|
124
|
+
print(f"Assistant: {assistant}")
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
Update Assistant
|
|
128
|
+
~~~~~~~~~~~~~~~~
|
|
129
|
+
|
|
130
|
+
Updates an existing assistant's configuration.
|
|
131
|
+
|
|
132
|
+
Command Line
|
|
133
|
+
^^^^^^^^^^^^
|
|
134
|
+
|
|
135
|
+
.. code-block:: shell
|
|
136
|
+
|
|
137
|
+
geai assistant update \
|
|
138
|
+
--name "Customer Support Bot" \
|
|
139
|
+
--prompt "You are an expert customer support assistant"
|
|
140
|
+
|
|
141
|
+
Low-Level Service Layer
|
|
142
|
+
^^^^^^^^^^^^^^^^^^^^^^^^
|
|
143
|
+
|
|
144
|
+
.. code-block:: python
|
|
145
|
+
|
|
146
|
+
from pygeai.assistant.clients import AssistantClient
|
|
147
|
+
|
|
148
|
+
client = AssistantClient()
|
|
149
|
+
|
|
150
|
+
response = client.update_assistant(
|
|
151
|
+
assistant_id="assistant-uuid",
|
|
152
|
+
prompt="You are an expert customer support assistant"
|
|
153
|
+
)
|
|
154
|
+
print(response)
|
|
155
|
+
|
|
156
|
+
High-Level Service Layer
|
|
157
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
158
|
+
|
|
159
|
+
.. code-block:: python
|
|
160
|
+
|
|
161
|
+
from pygeai.assistant.managers import AssistantManager
|
|
162
|
+
from pygeai.core.models import ChatAssistant
|
|
163
|
+
|
|
164
|
+
manager = AssistantManager()
|
|
165
|
+
|
|
166
|
+
assistant = manager.get_assistant_data(assistant_id="assistant-uuid")
|
|
167
|
+
assistant.prompt = "You are an expert customer support assistant"
|
|
168
|
+
|
|
169
|
+
response = manager.update_assistant(
|
|
170
|
+
assistant=assistant,
|
|
171
|
+
action="saveNewRevision"
|
|
172
|
+
)
|
|
173
|
+
print(f"Response: {response}")
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
Delete Assistant
|
|
177
|
+
~~~~~~~~~~~~~~~~
|
|
178
|
+
|
|
179
|
+
Deletes an assistant from the system.
|
|
180
|
+
|
|
181
|
+
Command Line
|
|
182
|
+
^^^^^^^^^^^^
|
|
183
|
+
|
|
184
|
+
.. code-block:: shell
|
|
185
|
+
|
|
186
|
+
geai assistant delete --name "Customer Support Bot"
|
|
187
|
+
|
|
188
|
+
Low-Level Service Layer
|
|
189
|
+
^^^^^^^^^^^^^^^^^^^^^^^^
|
|
190
|
+
|
|
191
|
+
.. code-block:: python
|
|
192
|
+
|
|
193
|
+
from pygeai.assistant.clients import AssistantClient
|
|
194
|
+
|
|
195
|
+
client = AssistantClient()
|
|
196
|
+
|
|
197
|
+
response = client.delete_assistant(assistant_id="assistant-uuid")
|
|
198
|
+
print(response)
|
|
199
|
+
|
|
200
|
+
High-Level Service Layer
|
|
201
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
202
|
+
|
|
203
|
+
.. code-block:: python
|
|
204
|
+
|
|
205
|
+
from pygeai.assistant.managers import AssistantManager
|
|
206
|
+
|
|
207
|
+
manager = AssistantManager()
|
|
208
|
+
|
|
209
|
+
response = manager.delete_assistant(assistant_id="assistant-uuid")
|
|
210
|
+
print(f"Response: {response}")
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
Send Chat Request
|
|
214
|
+
~~~~~~~~~~~~~~~~~
|
|
215
|
+
|
|
216
|
+
Sends a chat message to an assistant and receives a response.
|
|
217
|
+
|
|
218
|
+
Command Line
|
|
219
|
+
^^^^^^^^^^^^
|
|
220
|
+
|
|
221
|
+
.. code-block:: shell
|
|
222
|
+
|
|
223
|
+
geai assistant chat \
|
|
224
|
+
--name "Customer Support Bot" \
|
|
225
|
+
--msg '[{"role": "user", "content": "Hello, I need help"}]'
|
|
226
|
+
|
|
227
|
+
Low-Level Service Layer
|
|
228
|
+
^^^^^^^^^^^^^^^^^^^^^^^^
|
|
229
|
+
|
|
230
|
+
.. code-block:: python
|
|
231
|
+
|
|
232
|
+
from pygeai.assistant.clients import AssistantClient
|
|
233
|
+
|
|
234
|
+
client = AssistantClient()
|
|
235
|
+
|
|
236
|
+
messages = [
|
|
237
|
+
{"role": "user", "content": "Hello, I need help"}
|
|
238
|
+
]
|
|
239
|
+
|
|
240
|
+
response = client.send_chat_request(
|
|
241
|
+
assistant_name="Customer Support Bot",
|
|
242
|
+
messages=messages
|
|
243
|
+
)
|
|
244
|
+
print(response)
|
|
245
|
+
|
|
246
|
+
High-Level Service Layer
|
|
247
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
248
|
+
|
|
249
|
+
.. code-block:: python
|
|
250
|
+
|
|
251
|
+
from pygeai.assistant.managers import AssistantManager
|
|
252
|
+
from pygeai.core.models import ChatMessageList, ChatMessage
|
|
253
|
+
|
|
254
|
+
manager = AssistantManager()
|
|
255
|
+
|
|
256
|
+
messages = ChatMessageList(
|
|
257
|
+
messages=[
|
|
258
|
+
ChatMessage(role="user", "Hello, I need help")
|
|
259
|
+
]
|
|
260
|
+
)
|
|
261
|
+
|
|
262
|
+
response = manager.chat_completion(
|
|
263
|
+
assistant_name="Customer Support Bot",
|
|
264
|
+
messages=messages
|
|
265
|
+
)
|
|
266
|
+
print(f"Response: {response}")
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
Get Request Status
|
|
270
|
+
~~~~~~~~~~~~~~~~~~
|
|
271
|
+
|
|
272
|
+
Checks the status of an asynchronous assistant request.
|
|
273
|
+
|
|
274
|
+
Low-Level Service Layer
|
|
275
|
+
^^^^^^^^^^^^^^^^^^^^^^^^
|
|
276
|
+
|
|
277
|
+
.. code-block:: python
|
|
278
|
+
|
|
279
|
+
from pygeai.assistant.clients import AssistantClient
|
|
280
|
+
|
|
281
|
+
client = AssistantClient()
|
|
282
|
+
|
|
283
|
+
status = client.get_request_status(request_id="request-uuid")
|
|
284
|
+
print(status)
|
|
285
|
+
|
|
286
|
+
High-Level Service Layer
|
|
287
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
288
|
+
|
|
289
|
+
.. code-block:: python
|
|
290
|
+
|
|
291
|
+
from pygeai.assistant.managers import AssistantManager
|
|
292
|
+
|
|
293
|
+
manager = AssistantManager()
|
|
294
|
+
|
|
295
|
+
status = manager.get_request_status(request_id="request-uuid")
|
|
296
|
+
print(f"Status: {status}")
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
Cancel Request
|
|
300
|
+
~~~~~~~~~~~~~~
|
|
301
|
+
|
|
302
|
+
Cancels a pending assistant request.
|
|
303
|
+
|
|
304
|
+
Low-Level Service Layer
|
|
305
|
+
^^^^^^^^^^^^^^^^^^^^^^^^
|
|
306
|
+
|
|
307
|
+
.. code-block:: python
|
|
308
|
+
|
|
309
|
+
from pygeai.assistant.clients import AssistantClient
|
|
310
|
+
|
|
311
|
+
client = AssistantClient()
|
|
312
|
+
|
|
313
|
+
response = client.cancel_request(request_id="request-uuid")
|
|
314
|
+
print(response)
|
|
315
|
+
|
|
316
|
+
High-Level Service Layer
|
|
317
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
318
|
+
|
|
319
|
+
.. code-block:: python
|
|
320
|
+
|
|
321
|
+
from pygeai.assistant.managers import AssistantManager
|
|
322
|
+
|
|
323
|
+
manager = AssistantManager()
|
|
324
|
+
|
|
325
|
+
response = manager.cancel_request(request_id="request-uuid")
|
|
326
|
+
print(f"Response: {response}")
|