pygeai 0.1.51b3__py3-none-any.whl → 0.6.0b15__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.
Potentially problematic release.
This version of pygeai might be problematic. Click here for more details.
- pygeai/__init__.py +9 -1
- pygeai/_docs/Makefile +20 -0
- pygeai/_docs/make.bat +35 -0
- pygeai/_docs/source/conf.py +117 -0
- pygeai/_docs/source/content/ai_lab/cli.rst +747 -0
- pygeai/_docs/source/content/ai_lab/models.rst +1734 -0
- pygeai/_docs/source/content/ai_lab/runner.rst +253 -0
- pygeai/_docs/source/content/ai_lab/spec.rst +431 -0
- pygeai/_docs/source/content/ai_lab/usage.rst +1011 -0
- pygeai/_docs/source/content/ai_lab.rst +102 -0
- pygeai/_docs/source/content/analytics.rst +598 -0
- 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/chat.rst +754 -0
- pygeai/_docs/source/content/api_reference/embeddings.rst +154 -0
- 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 +738 -0
- pygeai/_docs/source/content/api_reference/proxy.rst +318 -0
- pygeai/_docs/source/content/api_reference/rag.rst +710 -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 +58 -0
- pygeai/_docs/source/content/authentication.rst +295 -0
- pygeai/_docs/source/content/chat_gui.rst +121 -0
- pygeai/_docs/source/content/cli.rst +203 -0
- pygeai/_docs/source/content/debugger.rst +651 -0
- pygeai/_docs/source/content/intro.rst +67 -0
- pygeai/_docs/source/content/migration.rst +929 -0
- pygeai/_docs/source/content/modules.rst +7 -0
- pygeai/_docs/source/content/quickstart.rst +143 -0
- pygeai/_docs/source/content/samples.rst +394 -0
- pygeai/_docs/source/index.rst +75 -0
- pygeai/_docs/source/modules.rst +7 -0
- pygeai/_docs/source/pygeai.admin.rst +29 -0
- pygeai/_docs/source/pygeai.analytics.rst +53 -0
- pygeai/_docs/source/pygeai.assistant.data.rst +21 -0
- pygeai/_docs/source/pygeai.assistant.data_analyst.rst +29 -0
- pygeai/_docs/source/pygeai.assistant.rag.rst +53 -0
- pygeai/_docs/source/pygeai.assistant.rst +55 -0
- pygeai/_docs/source/pygeai.auth.rst +29 -0
- pygeai/_docs/source/pygeai.chat.rst +69 -0
- pygeai/_docs/source/pygeai.cli.commands.flows.rst +10 -0
- pygeai/_docs/source/pygeai.cli.commands.lab.rst +53 -0
- pygeai/_docs/source/pygeai.cli.commands.rst +222 -0
- pygeai/_docs/source/pygeai.cli.rst +62 -0
- pygeai/_docs/source/pygeai.cli.texts.rst +21 -0
- pygeai/_docs/source/pygeai.core.base.rst +53 -0
- pygeai/_docs/source/pygeai.core.common.rst +37 -0
- pygeai/_docs/source/pygeai.core.embeddings.rst +61 -0
- pygeai/_docs/source/pygeai.core.feedback.rst +37 -0
- pygeai/_docs/source/pygeai.core.files.rst +61 -0
- pygeai/_docs/source/pygeai.core.llm.rst +29 -0
- pygeai/_docs/source/pygeai.core.plugins.rst +37 -0
- pygeai/_docs/source/pygeai.core.rerank.rst +53 -0
- pygeai/_docs/source/pygeai.core.rst +63 -0
- pygeai/_docs/source/pygeai.core.secrets.rst +29 -0
- pygeai/_docs/source/pygeai.core.services.llm.rst +29 -0
- pygeai/_docs/source/pygeai.core.services.rst +37 -0
- pygeai/_docs/source/pygeai.core.utils.rst +37 -0
- pygeai/_docs/source/pygeai.dbg.rst +21 -0
- pygeai/_docs/source/pygeai.evaluation.dataset.rst +29 -0
- pygeai/_docs/source/pygeai.evaluation.plan.rst +29 -0
- pygeai/_docs/source/pygeai.evaluation.result.rst +29 -0
- pygeai/_docs/source/pygeai.evaluation.rst +31 -0
- pygeai/_docs/source/pygeai.flows.rst +29 -0
- pygeai/_docs/source/pygeai.gam.rst +29 -0
- pygeai/_docs/source/pygeai.health.rst +29 -0
- pygeai/_docs/source/pygeai.lab.agents.rst +37 -0
- pygeai/_docs/source/pygeai.lab.processes.rst +37 -0
- pygeai/_docs/source/pygeai.lab.rst +65 -0
- pygeai/_docs/source/pygeai.lab.spec.rst +29 -0
- pygeai/_docs/source/pygeai.lab.strategies.rst +37 -0
- pygeai/_docs/source/pygeai.lab.tools.rst +37 -0
- pygeai/_docs/source/pygeai.man.man1.rst +10 -0
- pygeai/_docs/source/pygeai.man.rst +18 -0
- pygeai/_docs/source/pygeai.migration.rst +29 -0
- pygeai/_docs/source/pygeai.organization.limits.rst +45 -0
- pygeai/_docs/source/pygeai.organization.rst +61 -0
- pygeai/_docs/source/pygeai.proxy.rst +53 -0
- pygeai/_docs/source/pygeai.rst +35 -0
- pygeai/_docs/source/pygeai.tests.admin.rst +21 -0
- pygeai/_docs/source/pygeai.tests.analytics.rst +45 -0
- pygeai/_docs/source/pygeai.tests.assistants.rag.rst +37 -0
- pygeai/_docs/source/pygeai.tests.assistants.rst +45 -0
- pygeai/_docs/source/pygeai.tests.auth.rst +29 -0
- pygeai/_docs/source/pygeai.tests.chat.rst +45 -0
- pygeai/_docs/source/pygeai.tests.cli.commands.lab.rst +37 -0
- pygeai/_docs/source/pygeai.tests.cli.commands.rst +165 -0
- pygeai/_docs/source/pygeai.tests.cli.docker.rst +10 -0
- pygeai/_docs/source/pygeai.tests.cli.rst +46 -0
- pygeai/_docs/source/pygeai.tests.core.base.data.rst +29 -0
- pygeai/_docs/source/pygeai.tests.core.base.rst +45 -0
- pygeai/_docs/source/pygeai.tests.core.common.data.rst +10 -0
- pygeai/_docs/source/pygeai.tests.core.common.rst +37 -0
- pygeai/_docs/source/pygeai.tests.core.embeddings.rst +37 -0
- pygeai/_docs/source/pygeai.tests.core.feedback.rst +21 -0
- pygeai/_docs/source/pygeai.tests.core.files.rst +53 -0
- pygeai/_docs/source/pygeai.tests.core.llm.rst +21 -0
- pygeai/_docs/source/pygeai.tests.core.plugins.rst +21 -0
- pygeai/_docs/source/pygeai.tests.core.rerank.rst +37 -0
- pygeai/_docs/source/pygeai.tests.core.rst +39 -0
- pygeai/_docs/source/pygeai.tests.core.secrets.rst +21 -0
- pygeai/_docs/source/pygeai.tests.core.services.rst +21 -0
- pygeai/_docs/source/pygeai.tests.core.utils.rst +21 -0
- pygeai/_docs/source/pygeai.tests.dbg.rst +21 -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.gam.rst +21 -0
- pygeai/_docs/source/pygeai.tests.health.rst +21 -0
- pygeai/_docs/source/pygeai.tests.integration.assistants.rag.rst +21 -0
- pygeai/_docs/source/pygeai.tests.integration.assistants.rst +18 -0
- pygeai/_docs/source/pygeai.tests.integration.chat.rst +21 -0
- pygeai/_docs/source/pygeai.tests.integration.lab.agents.rst +69 -0
- pygeai/_docs/source/pygeai.tests.integration.lab.processes.rst +77 -0
- pygeai/_docs/source/pygeai.tests.integration.lab.reasoning_strategies.rst +37 -0
- pygeai/_docs/source/pygeai.tests.integration.lab.rst +21 -0
- pygeai/_docs/source/pygeai.tests.integration.lab.tools.rst +77 -0
- pygeai/_docs/source/pygeai.tests.integration.rst +20 -0
- pygeai/_docs/source/pygeai.tests.lab.agents.rst +29 -0
- pygeai/_docs/source/pygeai.tests.lab.processes.rst +29 -0
- pygeai/_docs/source/pygeai.tests.lab.rst +49 -0
- pygeai/_docs/source/pygeai.tests.lab.spec.rst +29 -0
- pygeai/_docs/source/pygeai.tests.lab.strategies.rst +29 -0
- pygeai/_docs/source/pygeai.tests.lab.tools.rst +29 -0
- pygeai/_docs/source/pygeai.tests.migration.rst +29 -0
- pygeai/_docs/source/pygeai.tests.organization.limits.rst +29 -0
- pygeai/_docs/source/pygeai.tests.organization.rst +53 -0
- pygeai/_docs/source/pygeai.tests.proxy.rst +61 -0
- pygeai/_docs/source/pygeai.tests.rst +33 -0
- pygeai/admin/clients.py +14 -11
- pygeai/admin/endpoints.py +2 -2
- pygeai/analytics/clients.py +505 -0
- pygeai/analytics/endpoints.py +35 -0
- pygeai/analytics/managers.py +606 -0
- pygeai/analytics/mappers.py +207 -0
- pygeai/analytics/responses.py +240 -0
- pygeai/assistant/clients.py +18 -45
- pygeai/assistant/data/clients.py +1 -0
- pygeai/assistant/data_analyst/clients.py +8 -12
- pygeai/assistant/managers.py +195 -157
- pygeai/assistant/mappers.py +4 -2
- pygeai/assistant/rag/clients.py +27 -67
- pygeai/assistant/rag/mappers.py +12 -6
- pygeai/assistant/rag/models.py +301 -159
- pygeai/auth/__init__.py +0 -0
- pygeai/auth/clients.py +129 -0
- pygeai/auth/endpoints.py +6 -0
- pygeai/chat/clients.py +308 -37
- pygeai/chat/endpoints.py +3 -0
- pygeai/chat/iris.py +2 -8
- pygeai/chat/managers.py +9 -6
- pygeai/chat/session.py +38 -0
- pygeai/chat/settings.py +6 -0
- pygeai/chat/ui.py +678 -0
- pygeai/cli/__init__.py +0 -1
- pygeai/cli/commands/admin.py +7 -10
- pygeai/cli/commands/analytics.py +533 -0
- pygeai/cli/commands/assistant.py +9 -9
- pygeai/cli/commands/auth.py +299 -0
- pygeai/cli/commands/base.py +71 -9
- pygeai/cli/commands/chat.py +676 -19
- pygeai/cli/commands/common.py +28 -24
- pygeai/cli/commands/configuration.py +66 -13
- pygeai/cli/commands/docs.py +105 -0
- pygeai/cli/commands/embeddings.py +58 -11
- pygeai/cli/commands/evaluation.py +38 -38
- pygeai/cli/commands/feedback.py +3 -4
- pygeai/cli/commands/files.py +7 -8
- pygeai/cli/commands/gam.py +85 -10
- pygeai/cli/commands/lab/ai_lab.py +340 -484
- pygeai/cli/commands/lab/options.py +8 -0
- pygeai/cli/commands/lab/spec.py +273 -0
- pygeai/cli/commands/lab/utils.py +13 -0
- pygeai/cli/commands/llm.py +6 -7
- pygeai/cli/commands/migrate.py +1064 -436
- pygeai/cli/commands/organization.py +516 -11
- pygeai/cli/commands/rag.py +13 -14
- pygeai/cli/commands/rerank.py +3 -5
- pygeai/cli/commands/secrets.py +8 -9
- pygeai/cli/commands/usage_limits.py +18 -20
- pygeai/cli/commands/validators.py +144 -1
- pygeai/cli/commands/version.py +4 -5
- pygeai/cli/error_handler.py +151 -0
- pygeai/cli/geai.py +170 -31
- pygeai/cli/geai_proxy.py +86 -25
- pygeai/cli/install_man.py +93 -22
- pygeai/cli/parsers.py +75 -25
- pygeai/cli/texts/help.py +265 -28
- pygeai/core/base/clients.py +53 -12
- pygeai/core/base/mappers.py +11 -2
- pygeai/core/base/session.py +95 -11
- pygeai/core/common/config.py +78 -14
- pygeai/core/common/exceptions.py +96 -6
- pygeai/core/embeddings/__init__.py +19 -0
- pygeai/core/embeddings/clients.py +23 -5
- pygeai/core/embeddings/managers.py +9 -4
- pygeai/core/embeddings/mappers.py +16 -2
- pygeai/core/embeddings/responses.py +9 -2
- pygeai/core/feedback/clients.py +8 -3
- pygeai/core/files/clients.py +23 -24
- pygeai/core/files/managers.py +121 -30
- pygeai/core/files/responses.py +4 -3
- pygeai/core/handlers.py +10 -1
- pygeai/core/llm/clients.py +22 -29
- pygeai/core/models.py +127 -11
- pygeai/core/plugins/clients.py +6 -6
- pygeai/core/rerank/clients.py +9 -3
- pygeai/core/rerank/managers.py +22 -5
- pygeai/core/secrets/clients.py +16 -37
- pygeai/core/services/response.py +18 -0
- pygeai/core/services/rest.py +159 -49
- pygeai/core/utils/__init__.py +0 -0
- pygeai/core/utils/console.py +83 -0
- pygeai/core/utils/parsers.py +32 -0
- pygeai/core/utils/validators.py +10 -0
- pygeai/dbg/__init__.py +3 -0
- pygeai/dbg/debugger.py +854 -14
- pygeai/evaluation/clients.py +7 -4
- 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 +50 -28
- pygeai/gam/endpoints.py +2 -1
- pygeai/health/__init__.py +0 -0
- pygeai/health/clients.py +24 -0
- pygeai/health/endpoints.py +1 -0
- pygeai/lab/__init__.py +0 -90
- pygeai/lab/agents/clients.py +203 -162
- pygeai/lab/agents/endpoints.py +4 -0
- pygeai/lab/agents/mappers.py +57 -7
- pygeai/lab/clients.py +24 -0
- pygeai/lab/constants.py +3 -0
- pygeai/lab/managers.py +571 -541
- pygeai/lab/models.py +108 -19
- pygeai/lab/processes/clients.py +332 -340
- pygeai/lab/processes/mappers.py +3 -3
- pygeai/lab/runners.py +90 -0
- pygeai/lab/spec/__init__.py +0 -0
- pygeai/lab/spec/loader.py +24 -0
- pygeai/lab/spec/parsers.py +39 -0
- pygeai/lab/strategies/clients.py +67 -63
- pygeai/lab/strategies/mappers.py +1 -1
- pygeai/lab/tools/clients.py +85 -118
- pygeai/lab/tools/endpoints.py +4 -0
- pygeai/lab/tools/mappers.py +5 -5
- pygeai/man/man1/geai-proxy.1 +116 -0
- pygeai/man/man1/geai.1 +2580 -66
- pygeai/migration/__init__.py +33 -0
- pygeai/migration/strategies.py +468 -146
- pygeai/migration/tools.py +170 -3
- pygeai/organization/clients.py +245 -50
- pygeai/organization/endpoints.py +17 -8
- pygeai/organization/limits/clients.py +34 -32
- pygeai/organization/limits/managers.py +108 -49
- pygeai/organization/managers.py +347 -53
- pygeai/organization/mappers.py +102 -2
- pygeai/organization/responses.py +58 -1
- pygeai/proxy/clients.py +6 -3
- pygeai/proxy/config.py +14 -1
- pygeai/proxy/managers.py +61 -33
- pygeai/proxy/servers.py +196 -51
- pygeai/proxy/tool.py +33 -16
- pygeai/tests/admin/__init__.py +0 -0
- pygeai/tests/admin/test_clients.py +148 -0
- pygeai/tests/analytics/__init__.py +0 -0
- pygeai/tests/analytics/test_clients.py +86 -0
- pygeai/tests/analytics/test_managers.py +94 -0
- pygeai/tests/analytics/test_mappers.py +84 -0
- pygeai/tests/analytics/test_responses.py +73 -0
- pygeai/tests/assistants/rag/test_clients.py +346 -0
- pygeai/tests/assistants/rag/test_models.py +292 -0
- pygeai/tests/assistants/test_clients.py +176 -82
- pygeai/tests/assistants/test_managers.py +191 -57
- pygeai/tests/auth/__init__.py +0 -0
- pygeai/tests/auth/test_clients.py +289 -0
- pygeai/tests/auth/test_oauth.py +172 -0
- pygeai/tests/auth/test_session_logging.py +150 -0
- pygeai/tests/chat/__init__.py +0 -0
- pygeai/tests/chat/test_clients.py +393 -0
- pygeai/tests/chat/test_iris.py +38 -0
- pygeai/tests/chat/test_session.py +62 -0
- pygeai/tests/chat/test_ui.py +224 -0
- pygeai/tests/cli/commands/__init__.py +0 -0
- pygeai/tests/cli/commands/lab/__init__.py +0 -0
- pygeai/tests/cli/commands/lab/test_ai_lab.py +786 -0
- pygeai/tests/cli/commands/lab/test_common.py +208 -0
- pygeai/tests/cli/commands/lab/test_spec.py +246 -0
- pygeai/tests/cli/commands/test_assistant.py +202 -0
- pygeai/tests/cli/commands/test_chat.py +130 -0
- pygeai/tests/cli/commands/test_common.py +350 -0
- pygeai/tests/cli/commands/test_embeddings.py +132 -0
- pygeai/tests/cli/commands/test_evaluation.py +656 -0
- pygeai/tests/cli/commands/test_feedback.py +65 -0
- pygeai/tests/cli/commands/test_files.py +161 -0
- pygeai/tests/cli/commands/test_gam.py +201 -0
- pygeai/tests/cli/commands/test_llm.py +114 -0
- pygeai/tests/cli/commands/test_migrate.py +176 -0
- pygeai/tests/cli/commands/test_organization.py +276 -0
- pygeai/tests/cli/commands/test_rag.py +266 -0
- pygeai/tests/cli/commands/test_rerank.py +110 -0
- pygeai/tests/cli/commands/test_secrets.py +171 -0
- pygeai/tests/cli/commands/test_show_help.py +41 -0
- pygeai/tests/cli/commands/test_usage_limits.py +412 -0
- pygeai/tests/cli/commands/test_validators.py +160 -0
- pygeai/tests/cli/commands/test_version.py +81 -0
- pygeai/tests/cli/docker/__init__.py +0 -0
- pygeai/tests/cli/test_credentials_flag.py +316 -0
- 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/base/data/models.py +7 -0
- pygeai/tests/core/base/test_mappers.py +43 -11
- pygeai/tests/core/base/test_models.py +3 -1
- pygeai/tests/core/base/test_responses.py +53 -0
- pygeai/tests/core/common/__init__.py +0 -0
- pygeai/tests/core/common/data/__init__.py +0 -0
- pygeai/tests/core/common/test_config.py +186 -0
- pygeai/tests/core/common/test_decorators.py +69 -0
- pygeai/tests/core/embeddings/__init__.py +0 -0
- pygeai/tests/core/embeddings/test_clients.py +225 -0
- pygeai/tests/core/embeddings/test_managers.py +171 -0
- pygeai/tests/core/embeddings/test_mappers.py +142 -0
- pygeai/tests/core/feedback/__init__.py +0 -0
- pygeai/tests/core/feedback/test_clients.py +64 -0
- pygeai/tests/core/files/test_clients.py +128 -0
- pygeai/tests/core/files/test_managers.py +124 -78
- pygeai/tests/core/files/test_mappers.py +137 -0
- pygeai/tests/core/files/test_models.py +103 -0
- pygeai/tests/core/files/test_responses.py +122 -0
- pygeai/tests/core/llm/__init__.py +0 -0
- pygeai/tests/core/llm/test_clients.py +142 -0
- pygeai/tests/core/plugins/__init__.py +0 -0
- pygeai/tests/core/plugins/test_clients.py +66 -0
- pygeai/tests/core/rerank/test_clients.py +76 -0
- pygeai/tests/core/rerank/test_managers.py +61 -39
- pygeai/tests/core/secrets/__init__.py +0 -0
- pygeai/tests/core/secrets/test_clients.py +264 -0
- pygeai/tests/core/services/__init__.py +0 -0
- pygeai/tests/core/services/test_rest.py +273 -0
- pygeai/tests/core/test_handlers.py +66 -0
- pygeai/tests/core/utils/__init__.py +0 -0
- pygeai/tests/core/utils/test_console.py +80 -0
- pygeai/tests/dbg/__init__.py +0 -0
- pygeai/tests/dbg/test_debugger.py +591 -0
- pygeai/tests/evaluation/__init__.py +0 -0
- pygeai/tests/evaluation/dataset/__init__.py +0 -0
- pygeai/tests/evaluation/dataset/test_clients.py +265 -0
- pygeai/tests/evaluation/plan/__init__.py +0 -0
- pygeai/tests/evaluation/plan/test_clients.py +195 -0
- pygeai/tests/evaluation/result/__init__.py +0 -0
- pygeai/tests/evaluation/result/test_clients.py +66 -0
- pygeai/tests/gam/__init__.py +0 -0
- pygeai/tests/gam/test_clients.py +195 -0
- pygeai/tests/health/__init__.py +0 -0
- pygeai/tests/health/test_clients.py +41 -0
- pygeai/tests/integration/__init__.py +0 -0
- pygeai/tests/integration/assistants/__init__.py +0 -0
- pygeai/tests/integration/assistants/rag/__init__.py +0 -0
- pygeai/tests/integration/assistants/rag/test_create_rag.py +91 -0
- pygeai/tests/integration/chat/__init__.py +0 -0
- pygeai/tests/integration/chat/test_generate_image.py +158 -0
- pygeai/tests/integration/lab/__init__.py +0 -0
- pygeai/tests/integration/lab/agents/__init__.py +0 -0
- pygeai/tests/integration/lab/agents/test_agents_list.py +106 -0
- pygeai/tests/integration/lab/agents/test_create_agent.py +319 -0
- pygeai/tests/integration/lab/agents/test_create_sharing_link.py +70 -0
- pygeai/tests/integration/lab/agents/test_delete_agent.py +75 -0
- pygeai/tests/integration/lab/agents/test_get_agent.py +94 -0
- pygeai/tests/integration/lab/agents/test_publish_agent_revision.py +127 -0
- pygeai/tests/integration/lab/agents/test_update_agent.py +250 -0
- pygeai/tests/integration/lab/processes/__init__.py +0 -0
- pygeai/tests/integration/lab/processes/test_create_process.py +345 -0
- pygeai/tests/integration/lab/processes/test_create_task.py +211 -0
- pygeai/tests/integration/lab/processes/test_delete_process.py +111 -0
- pygeai/tests/integration/lab/processes/test_get_process.py +201 -0
- pygeai/tests/integration/lab/processes/test_list_process_instances.py +91 -0
- pygeai/tests/integration/lab/processes/test_list_processes.py +138 -0
- pygeai/tests/integration/lab/processes/test_publish_process_revision.py +232 -0
- pygeai/tests/integration/lab/processes/test_update_process.py +289 -0
- pygeai/tests/integration/lab/reasoning_strategies/__init__.py +0 -0
- pygeai/tests/integration/lab/reasoning_strategies/test_get_reasoning_strategy.py +70 -0
- pygeai/tests/integration/lab/reasoning_strategies/test_list_reasoning_strategies.py +93 -0
- pygeai/tests/integration/lab/reasoning_strategies/test_update_reasoning_strategy.py +149 -0
- pygeai/tests/integration/lab/tools/__init__.py +0 -0
- pygeai/tests/integration/lab/tools/test_create_tool.py +288 -0
- pygeai/tests/integration/lab/tools/test_delete_tool.py +87 -0
- pygeai/tests/integration/lab/tools/test_get_parameter.py +98 -0
- pygeai/tests/integration/lab/tools/test_get_tool.py +91 -0
- pygeai/tests/integration/lab/tools/test_list_tools.py +106 -0
- pygeai/tests/integration/lab/tools/test_publish_tool_revision.py +119 -0
- pygeai/tests/integration/lab/tools/test_set_parameter.py +114 -0
- pygeai/tests/integration/lab/tools/test_update_tool.py +267 -0
- pygeai/tests/lab/agents/__init__.py +0 -0
- pygeai/tests/lab/agents/test_clients.py +481 -0
- pygeai/tests/lab/agents/test_mappers.py +440 -0
- pygeai/tests/lab/processes/__init__.py +0 -0
- pygeai/tests/lab/processes/test_clients.py +1416 -0
- pygeai/tests/lab/processes/test_mappers.py +1092 -0
- pygeai/tests/lab/spec/__init__.py +0 -0
- pygeai/tests/lab/spec/test_loader.py +59 -0
- pygeai/tests/lab/spec/test_parsers.py +182 -0
- pygeai/tests/lab/strategies/__init__.py +0 -0
- pygeai/tests/lab/strategies/test_clients.py +241 -0
- pygeai/tests/lab/strategies/test_mappers.py +132 -0
- pygeai/tests/lab/test_managers.py +553 -0
- pygeai/tests/lab/test_models.py +500 -3
- pygeai/tests/lab/tools/__init__.py +0 -0
- pygeai/tests/lab/tools/test_clients.py +521 -0
- pygeai/tests/lab/tools/test_mappers.py +198 -0
- pygeai/tests/migration/__init__.py +0 -0
- pygeai/tests/migration/test_strategies.py +405 -0
- pygeai/tests/migration/test_tools.py +159 -0
- pygeai/tests/organization/limits/test_clients.py +567 -0
- pygeai/tests/organization/limits/test_managers.py +298 -56
- pygeai/tests/organization/test_clients.py +600 -30
- pygeai/tests/organization/test_managers.py +424 -0
- pygeai/tests/organization/test_mappers.py +153 -0
- pygeai/tests/organization/test_responses.py +137 -0
- pygeai/tests/proxy/__init__.py +1 -0
- pygeai/tests/proxy/test_clients.py +397 -0
- pygeai/tests/proxy/test_config.py +171 -0
- pygeai/tests/proxy/test_integration.py +305 -0
- pygeai/tests/proxy/test_managers.py +312 -0
- pygeai/tests/proxy/test_servers.py +387 -0
- pygeai/tests/proxy/test_tool.py +176 -0
- pygeai/tests/snippets/analytics/__init__.py +0 -0
- pygeai/tests/snippets/analytics/get_agent_usage_per_user.py +16 -0
- pygeai/tests/snippets/analytics/get_agents_created_and_modified.py +11 -0
- pygeai/tests/snippets/analytics/get_average_cost_per_request.py +10 -0
- pygeai/tests/snippets/analytics/get_overall_error_rate.py +10 -0
- pygeai/tests/snippets/analytics/get_top_10_agents_by_requests.py +12 -0
- pygeai/tests/snippets/analytics/get_total_active_users.py +10 -0
- pygeai/tests/snippets/analytics/get_total_cost.py +10 -0
- pygeai/tests/snippets/analytics/get_total_requests_per_day.py +12 -0
- pygeai/tests/snippets/analytics/get_total_tokens.py +12 -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_complete_example.py +67 -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_instructions.py +19 -0
- pygeai/tests/snippets/chat/get_response_with_metadata.py +24 -0
- pygeai/tests/snippets/chat/get_response_with_parallel_tools.py +58 -0
- pygeai/tests/snippets/chat/get_response_with_reasoning.py +21 -0
- pygeai/tests/snippets/chat/get_response_with_store.py +38 -0
- pygeai/tests/snippets/chat/get_response_with_tools.py +36 -0
- pygeai/tests/snippets/chat/get_response_with_truncation.py +24 -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/file_debugging.py +72 -0
- pygeai/tests/snippets/dbg/module_debugging.py +61 -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/files/delete_file.py +1 -4
- pygeai/tests/snippets/files/get_file_content.py +2 -4
- pygeai/tests/snippets/files/get_file_data.py +1 -4
- pygeai/tests/snippets/files/get_file_list.py +1 -6
- pygeai/tests/snippets/files/upload_file.py +1 -5
- pygeai/tests/snippets/gam/gam_access_token.py +87 -0
- pygeai/tests/snippets/lab/agentic_flow_example_1.py +25 -23
- pygeai/tests/snippets/lab/agentic_flow_example_4.py +23 -23
- pygeai/tests/snippets/lab/agents/create_agent.py +5 -8
- pygeai/tests/snippets/lab/agents/create_agent_2.py +1 -5
- pygeai/tests/snippets/lab/agents/create_agent_edge_case.py +48 -0
- pygeai/tests/snippets/lab/agents/create_agent_with_permissions.py +39 -0
- pygeai/tests/snippets/lab/agents/create_agent_with_properties.py +46 -0
- pygeai/tests/snippets/lab/agents/create_agent_without_instructions.py +48 -0
- pygeai/tests/snippets/lab/agents/delete_agent.py +1 -5
- pygeai/tests/snippets/lab/agents/get_agent.py +2 -11
- pygeai/tests/snippets/lab/agents/get_agent_with_new_fields.py +62 -0
- pygeai/tests/snippets/lab/agents/get_sharing_link.py +2 -7
- pygeai/tests/snippets/lab/agents/list_agents.py +4 -7
- pygeai/tests/snippets/lab/agents/publish_agent_revision.py +2 -6
- pygeai/tests/snippets/lab/agents/update_agent.py +1 -5
- pygeai/tests/snippets/lab/agents/update_agent_properties.py +50 -0
- pygeai/tests/snippets/lab/assistant_to_agent.py +191 -0
- pygeai/tests/snippets/lab/crud_ui.py +462 -0
- pygeai/tests/snippets/lab/processes/create_process.py +3 -5
- pygeai/tests/snippets/lab/processes/create_task.py +3 -5
- pygeai/tests/snippets/lab/processes/jobs/list_jobs.py +10 -19
- pygeai/tests/snippets/lab/processes/kbs/create_kb.py +2 -5
- pygeai/tests/snippets/lab/processes/kbs/get_kb.py +10 -16
- pygeai/tests/snippets/lab/processes/kbs/list_kbs.py +13 -20
- pygeai/tests/snippets/lab/processes/kbs/try_all.py +5 -7
- pygeai/tests/snippets/lab/processes/list_processes.py +5 -7
- pygeai/tests/snippets/lab/runner_1.py +1 -1
- pygeai/tests/snippets/lab/samples/summarize_files.py +3 -3
- pygeai/tests/snippets/lab/strategies/create_reasoning_strategy.py +2 -5
- pygeai/tests/snippets/lab/strategies/get_reasoning_strategy.py +2 -5
- pygeai/tests/snippets/lab/strategies/list_reasoning_strategies.py +3 -6
- pygeai/tests/snippets/lab/strategies/update_reasoning_strategy.py +2 -5
- pygeai/tests/snippets/lab/tools/create_tool.py +4 -10
- pygeai/tests/snippets/lab/tools/create_tool_edge_case.py +50 -0
- pygeai/tests/snippets/lab/tools/delete_tool.py +2 -6
- pygeai/tests/snippets/lab/tools/get_parameter.py +5 -7
- pygeai/tests/snippets/lab/tools/get_tool.py +5 -7
- pygeai/tests/snippets/lab/tools/list_tools.py +3 -7
- pygeai/tests/snippets/lab/tools/publish_tool_revision.py +3 -5
- pygeai/tests/snippets/lab/tools/set_parameters.py +4 -9
- pygeai/tests/snippets/lab/tools/update_tool.py +4 -8
- pygeai/tests/snippets/lab/use_cases/__init__.py +0 -0
- pygeai/tests/snippets/lab/use_cases/create_cli_expert.py +1640 -0
- pygeai/tests/snippets/lab/use_cases/create_lab_expert.py +4541 -0
- pygeai/tests/snippets/lab/use_cases/create_tool_headless_web_browser.py +133 -0
- pygeai/tests/snippets/lab/use_cases/create_web_designer.py +189 -0
- pygeai/tests/snippets/lab/use_cases/create_web_reader.py +185 -0
- pygeai/tests/snippets/lab/{file_summarizer_example.py → use_cases/file_summarizer_example.py} +3 -3
- pygeai/tests/snippets/lab/{file_summarizer_example_2.py → use_cases/file_summarizer_example_2.py} +12 -12
- pygeai/tests/snippets/lab/use_cases/update_cli_expert.py +1773 -0
- pygeai/tests/snippets/lab/use_cases/update_lab_expert.py +4541 -0
- pygeai/tests/snippets/lab/use_cases/update_web_designer.py +188 -0
- pygeai/tests/snippets/lab/use_cases/update_web_reader.py +195 -0
- pygeai/tests/snippets/lab/use_cases/update_web_reader_with_tool.py +210 -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/add_project_member.py +10 -0
- pygeai/tests/snippets/organization/add_project_member_batch.py +44 -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/vendor/a2a/__init__.py +1 -0
- pygeai/vendor/a2a/auth/__init__.py +0 -0
- pygeai/vendor/a2a/auth/user.py +31 -0
- pygeai/vendor/a2a/client/__init__.py +19 -0
- pygeai/vendor/a2a/client/client.py +425 -0
- pygeai/vendor/a2a/client/errors.py +33 -0
- pygeai/vendor/a2a/client/helpers.py +22 -0
- pygeai/vendor/a2a/py.typed +0 -0
- pygeai/vendor/a2a/server/__init__.py +1 -0
- pygeai/vendor/a2a/server/agent_execution/__init__.py +18 -0
- pygeai/vendor/a2a/server/agent_execution/agent_executor.py +44 -0
- pygeai/vendor/a2a/server/agent_execution/context.py +155 -0
- pygeai/vendor/a2a/server/agent_execution/request_context_builder.py +20 -0
- pygeai/vendor/a2a/server/agent_execution/simple_request_context_builder.py +77 -0
- pygeai/vendor/a2a/server/apps/__init__.py +16 -0
- pygeai/vendor/a2a/server/apps/jsonrpc/__init__.py +16 -0
- pygeai/vendor/a2a/server/apps/jsonrpc/fastapi_app.py +88 -0
- pygeai/vendor/a2a/server/apps/jsonrpc/jsonrpc_app.py +426 -0
- pygeai/vendor/a2a/server/apps/jsonrpc/starlette_app.py +123 -0
- pygeai/vendor/a2a/server/context.py +23 -0
- pygeai/vendor/a2a/server/events/__init__.py +21 -0
- pygeai/vendor/a2a/server/events/event_consumer.py +149 -0
- pygeai/vendor/a2a/server/events/event_queue.py +156 -0
- pygeai/vendor/a2a/server/events/in_memory_queue_manager.py +85 -0
- pygeai/vendor/a2a/server/events/queue_manager.py +35 -0
- pygeai/vendor/a2a/server/request_handlers/__init__.py +20 -0
- pygeai/vendor/a2a/server/request_handlers/default_request_handler.py +435 -0
- pygeai/vendor/a2a/server/request_handlers/jsonrpc_handler.py +327 -0
- pygeai/vendor/a2a/server/request_handlers/request_handler.py +161 -0
- pygeai/vendor/a2a/server/request_handlers/response_helpers.py +133 -0
- pygeai/vendor/a2a/server/tasks/__init__.py +20 -0
- pygeai/vendor/a2a/server/tasks/inmemory_push_notifier.py +62 -0
- pygeai/vendor/a2a/server/tasks/inmemory_task_store.py +51 -0
- pygeai/vendor/a2a/server/tasks/push_notifier.py +25 -0
- pygeai/vendor/a2a/server/tasks/result_aggregator.py +151 -0
- pygeai/vendor/a2a/server/tasks/task_manager.py +253 -0
- pygeai/vendor/a2a/server/tasks/task_store.py +22 -0
- pygeai/vendor/a2a/server/tasks/task_updater.py +155 -0
- pygeai/vendor/a2a/types.py +1624 -0
- pygeai/vendor/a2a/utils/__init__.py +40 -0
- pygeai/vendor/a2a/utils/artifact.py +72 -0
- pygeai/vendor/a2a/utils/errors.py +69 -0
- pygeai/vendor/a2a/utils/helpers.py +176 -0
- pygeai/vendor/a2a/utils/message.py +83 -0
- pygeai/vendor/a2a/utils/task.py +57 -0
- pygeai/vendor/a2a/utils/telemetry.py +299 -0
- pygeai-0.6.0b15.dist-info/METADATA +205 -0
- pygeai-0.6.0b15.dist-info/RECORD +799 -0
- {pygeai-0.1.51b3.dist-info → pygeai-0.6.0b15.dist-info}/WHEEL +1 -1
- {pygeai-0.1.51b3.dist-info → pygeai-0.6.0b15.dist-info}/entry_points.txt +2 -1
- {pygeai-0.1.51b3.dist-info → pygeai-0.6.0b15.dist-info}/licenses/LICENSE +13 -1
- pygeai-0.6.0b15.dist-info/top_level.txt +1 -0
- docs/geai-proxy/README.md +0 -145
- docs/source/conf.py +0 -45
- pygeai/tests/core/test_managers.py +0 -233
- pygeai-0.1.51b3.dist-info/METADATA +0 -130
- pygeai-0.1.51b3.dist-info/RECORD +0 -324
- pygeai-0.1.51b3.dist-info/top_level.txt +0 -3
- scripts/bump_beta_version.py +0 -56
- {scripts → pygeai/analytics}/__init__.py +0 -0
- /pygeai/tests/snippets/lab/{c_code_fixer_agent_flow.py → use_cases/c_code_fixer_agent_flow.py} +0 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
The Lab
|
|
2
|
+
=======
|
|
3
|
+
|
|
4
|
+
The Globant Enterprise AI Lab is a comprehensive framework designed to create, manage, and orchestrate autonomous AI agents capable of addressing complex tasks with minimal human intervention. It provides a structured environment for defining agents, their associated tools, reasoning strategies, and workflows, all integrated within a cohesive ecosystem. The PyGEAI SDK serves as the primary interface for developers to interact with the Lab, offering a Python-native experience through the `lab` module, which enables seamless management of the Lab’s resources and operations.
|
|
5
|
+
|
|
6
|
+
Overview
|
|
7
|
+
--------
|
|
8
|
+
|
|
9
|
+
The Globant Enterprise AI Lab enables the creation of intelligent AI agents, from collaborative co-pilots to fully
|
|
10
|
+
autonomous systems, capable of executing intricate tasks. Its modular design ensures flexibility, allowing developers
|
|
11
|
+
to define agent behaviors, orchestrate collaborative workflows, and manage knowledge artifacts. The PyGEAI SDK
|
|
12
|
+
streamlines these processes by providing an intuitive, Python-centric interface that abstracts the Lab’s underlying
|
|
13
|
+
APIs, making it accessible to developers familiar with Python conventions.
|
|
14
|
+
|
|
15
|
+
The Lab’s core modules are:
|
|
16
|
+
|
|
17
|
+
- **Agents & Tools Repository**: A centralized hub for defining and managing agents and their resources, such as skills, tools, and external API integrations.
|
|
18
|
+
- **Agentic Flows**: A system for creating workflows that combine tasks, agents, and knowledge artifacts to achieve broader objectives.
|
|
19
|
+
- **Knowledge Base**: A repository for storing and organizing artifacts (e.g., documents, data outputs) that agents consume or produce during workflows.
|
|
20
|
+
- **Agent Runtime**: The execution environment where agents perform tasks, interact with artifacts, and respond to events within defined workflows.
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
Interacting with the Lab via PyGEAI SDK
|
|
24
|
+
---------------------------------------
|
|
25
|
+
|
|
26
|
+
The PyGEAI SDK’s `lab` module provides a streamlined interface for developers to engage with the Globant Enterprise AI Lab. Designed to align with Python conventions, it offers a command-line tool that facilitates interaction with the Lab’s resources, including agents, tools, reasoning strategies, processes, tasks, and runtime instances. The `lab` module supports a range of operations, ensuring developers can efficiently manage the Lab’s ecosystem.
|
|
27
|
+
|
|
28
|
+
### Managing Agents
|
|
29
|
+
|
|
30
|
+
The `lab` module enables developers to define and manage AI agents within the Lab. Agents are entities configured with specific prompts, language models, and operational parameters to perform designated tasks. Through the `lab` module, developers can create agents with custom attributes, update their configurations, retrieve details, list available agents, publish revisions, share agents via links, or remove them as needed. This functionality allows for precise control over agent lifecycle and behavior within the Lab’s environment.
|
|
31
|
+
|
|
32
|
+
### Configuring Tools
|
|
33
|
+
|
|
34
|
+
Tools extend agent capabilities by providing access to external APIs, built-in functions, or custom logic. The `lab` module supports the creation and management of tools, allowing developers to define tools with specific scopes (e.g., API-based or external), configure their parameters, and control their accessibility. Developers can list tools, retrieve tool details, update configurations, publish revisions, set parameters, or delete tools, ensuring tools are seamlessly integrated into the Lab’s workflows.
|
|
35
|
+
|
|
36
|
+
### Defining Reasoning Strategies
|
|
37
|
+
|
|
38
|
+
Reasoning strategies guide how agents process information and make decisions. The `lab` module allows developers to create and manage these strategies, specifying system prompts and access scopes to tailor agent reasoning. Developers can list available strategies, retrieve details, update configurations, and ensure strategies align with project requirements, enhancing agent performance within the Lab.
|
|
39
|
+
|
|
40
|
+
### Orchestrating Processes
|
|
41
|
+
|
|
42
|
+
Processes in the Lab define workflows that combine agents, tasks, and knowledge artifacts to achieve complex objectives. The `lab` module facilitates process management by enabling developers to create processes, define their structure (including activities, signals, and sequence flows), and update configurations. Developers can list processes, retrieve details, publish revisions, or delete processes, providing full control over workflow orchestration within the Lab.
|
|
43
|
+
|
|
44
|
+
### Managing Tasks
|
|
45
|
+
|
|
46
|
+
Tasks are individual units of work within processes, assigned to agents for execution. The `lab` module supports task creation, allowing developers to specify task prompts, artifact types, and descriptions. Developers can list tasks, retrieve task details, update configurations, publish revisions, or delete tasks, ensuring tasks are effectively integrated into the Lab’s workflows.
|
|
47
|
+
|
|
48
|
+
### Controlling Runtime Instances
|
|
49
|
+
|
|
50
|
+
The Lab’s runtime environment executes processes, where agents perform tasks and interact with artifacts. The `lab` module provides commands to manage runtime instances, enabling developers to start process instances, monitor their progress, retrieve instance details, access execution history, send signals to influence workflow, or abort instances as needed. This ensures dynamic control over the Lab’s operational execution.
|
|
51
|
+
|
|
52
|
+
### Running Agents with the Runner
|
|
53
|
+
|
|
54
|
+
The `Runner` class in the `lab` module provides a direct interface for executing agent tasks asynchronously within the Lab’s runtime environment. It allows developers to run agents with flexible input formats—strings, `ChatMessage`, or `ChatMessageList`—and customizable LLM settings, enabling tailored interactions for testing or production use. The `Runner` simplifies agent execution by handling message processing and LLM configuration, returning a `ProviderResponse` object containing the agent’s response and metadata.
|
|
55
|
+
|
|
56
|
+
SDK Tools and Utilities
|
|
57
|
+
-----------------------
|
|
58
|
+
|
|
59
|
+
The PyGEAI SDK provides robust programmatic interfaces for interacting with the Globant Enterprise AI Lab, enabling developers to manage agents, tools, reasoning strategies, processes, tasks, and runtime instances directly within Python applications. Beyond the command-line interface, the SDK offers a high-level manager and low-level client classes, designed to integrate seamlessly into development workflows with structured, object-oriented access or flexible JSON-based interactions.
|
|
60
|
+
|
|
61
|
+
High-Level Interface: AILabManager
|
|
62
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
63
|
+
The AILabManager class serves as the primary high-level interface, offering a Pythonic, object-oriented approach to managing the Lab’s resources. It abstracts the underlying API complexity, mapping responses to structured Python objects such as Agent, Tool, ReasoningStrategy, AgenticProcess, Task, and ProcessInstance. This allows developers to work with strongly typed models, ensuring clarity and reducing errors when creating, updating, retrieving, or deleting Lab entities.
|
|
64
|
+
|
|
65
|
+
- Agent Management: Create, update, retrieve, list, publish, share, or delete agents using methods like create_agent, update_agent, get_agent, and delete_agent. Agents are represented as Agent objects, encapsulating properties like name, prompts, and LLM configurations.
|
|
66
|
+
- Tool Management: Define and manage tools with methods such as create_tool, update_tool, get_tool, list_tools, publish_tool_revision, and delete_tool. Tools are modeled as Tool objects, supporting API-based or custom configurations with parameters (ToolParameter).
|
|
67
|
+
- Reasoning Strategies: Configure agent reasoning with create_reasoning_strategy, update_reasoning_strategy, get_reasoning_strategy, and list_reasoning_strategies. Strategies are represented as ReasoningStrategy objects, defining system prompts and access scopes.
|
|
68
|
+
- Process Orchestration: Manage workflows through create_process, update_process, get_process, list_processes, publish_process_revision, and delete_process. Processes are encapsulated as AgenticProcess objects, detailing activities, signals, and sequence flows.
|
|
69
|
+
- Task Management: Create and manage tasks with create_task, update_task, get_task, list_tasks, publish_task_revision, and delete_task. Tasks are modeled as Task objects, specifying prompts and artifact types.
|
|
70
|
+
- Runtime Control: Start, monitor, and control process instances using start_instance, get_instance, list_process_instances, get_instance_history, send_user_signal, and abort_instance. Instances are represented as ProcessInstance objects, with execution details and thread information accessible via get_thread_information.
|
|
71
|
+
|
|
72
|
+
The AILabManager is initialized with an API key, base URL, and optional alias, providing a unified entry point for all Lab operations. Its methods handle error mapping (ErrorListResponse) and response validation, making it ideal for rapid development and integration into larger applications.
|
|
73
|
+
|
|
74
|
+
Low-Level Interface: Client Classes
|
|
75
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
76
|
+
For developers requiring fine-grained control or preferring to work directly with JSON responses, the SDK includes low-level client classes: AgentClient, ToolClient, ReasoningStrategyClient, and AgenticProcessClient. These clients interact with the Lab’s APIs without mapping responses to Python objects, returning raw JSON or text for maximum flexibility.
|
|
77
|
+
|
|
78
|
+
- AgentClient: Supports operations like create_agent, update_agent, get_agent, list_agents, publish_agent_revision, create_sharing_link, and delete_agent. It handles agent-specific API endpoints, passing parameters like project ID, agent name, prompts, and LLM configurations as dictionaries.
|
|
79
|
+
- ToolClient: Provides methods such as create_tool, update_tool, get_tool, list_tools, publish_tool_revision, get_parameter, set_parameter, and delete_tool. It manages tool configurations, including OpenAPI specifications and parameter lists, with validation for scopes and access levels.
|
|
80
|
+
- ReasoningStrategyClient: Includes create_reasoning_strategy, update_reasoning_strategy, get_reasoning_strategy, and list_reasoning_strategies, allowing direct manipulation of strategy definitions like system prompts and localized descriptions.
|
|
81
|
+
- AgenticProcessClient: Offers comprehensive process and task management with methods like create_process, update_process, get_process, list_processes, publish_process_revision, delete_process, create_task, update_task, get_task, list_tasks, publish_task_revision, delete_task, start_instance, get_instance, list_process_instances, get_instance_history, get_thread_information, send_user_signal, and abort_instance. It handles complex process structures and runtime operations in JSON format.
|
|
82
|
+
|
|
83
|
+
Each client is initialized with an API key and base URL, using a BaseClient for HTTP requests. They provide direct access to the Lab’s endpoints, enabling custom parsing or integration with external systems where object mapping is unnecessary.
|
|
84
|
+
|
|
85
|
+
Integration and Flexibility
|
|
86
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
87
|
+
Both the AILabManager and client classes are installable via pip install pygeai and support cross-platform development. The high-level AILabManager is suited for structured applications requiring type safety and ease of use, while the low-level clients cater to scenarios demanding raw API responses or custom workflows. Developers can combine these interfaces within the same project, leveraging AILabManager for rapid prototyping and clients for specialized tasks.
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
PyGEAI SDK - Lab components
|
|
91
|
+
---------------------------
|
|
92
|
+
|
|
93
|
+
.. toctree::
|
|
94
|
+
:maxdepth: 2
|
|
95
|
+
:caption: Contents:
|
|
96
|
+
|
|
97
|
+
ai_lab/models
|
|
98
|
+
ai_lab/runner
|
|
99
|
+
ai_lab/usage
|
|
100
|
+
ai_lab/cli
|
|
101
|
+
ai_lab/spec
|
|
102
|
+
|
|
@@ -0,0 +1,598 @@
|
|
|
1
|
+
Analytics
|
|
2
|
+
=========
|
|
3
|
+
|
|
4
|
+
The GEAI Analytics module provides comprehensive insights into your GEAI platform usage, costs, performance, and adoption metrics. Through the PyGEAI SDK's ``analytics`` CLI command, you can access detailed analytics data programmatically, enabling you to monitor platform usage, track costs, identify trends, and generate reports for stakeholders.
|
|
5
|
+
|
|
6
|
+
.. contents:: Table of Contents
|
|
7
|
+
:depth: 3
|
|
8
|
+
:local:
|
|
9
|
+
|
|
10
|
+
Overview
|
|
11
|
+
--------
|
|
12
|
+
|
|
13
|
+
The Analytics module offers access to various metrics across different dimensions:
|
|
14
|
+
|
|
15
|
+
- **Lab Metrics**: Track creation and modification of agents, flows, and processes
|
|
16
|
+
- **Request Metrics**: Monitor total requests, error rates, and response times
|
|
17
|
+
- **Cost Metrics**: Analyze spending patterns and cost per request
|
|
18
|
+
- **Token Metrics**: Track token consumption across users and agents
|
|
19
|
+
- **User & Agent Activity**: Monitor active users, agents, and projects
|
|
20
|
+
- **Top Performers**: Identify top agents and users by requests, tokens, and cost
|
|
21
|
+
|
|
22
|
+
All analytics commands support flexible date range filtering, with automatic defaults to the previous month when dates are not specified.
|
|
23
|
+
|
|
24
|
+
Prerequisites
|
|
25
|
+
-------------
|
|
26
|
+
|
|
27
|
+
- **CLI Installation**: Ensure the ``geai`` CLI is installed
|
|
28
|
+
- **Authentication**: Obtain your API token from the GEAI platform
|
|
29
|
+
- **Permissions**: Analytics access permissions are required
|
|
30
|
+
|
|
31
|
+
Set your API token as an environment variable:
|
|
32
|
+
|
|
33
|
+
.. code-block:: bash
|
|
34
|
+
|
|
35
|
+
export GEAI_APITOKEN="your-api-token-here"
|
|
36
|
+
|
|
37
|
+
Date Range Defaults
|
|
38
|
+
-------------------
|
|
39
|
+
|
|
40
|
+
All analytics commands support optional date range parameters. When ``--start-date`` and ``--end-date`` are not specified, commands automatically default to the previous month.
|
|
41
|
+
|
|
42
|
+
**Example**: If today is January 15, 2024, the default range would be:
|
|
43
|
+
|
|
44
|
+
- **Start Date**: 2023-12-01 (first day of December)
|
|
45
|
+
- **End Date**: 2023-12-31 (last day of December)
|
|
46
|
+
|
|
47
|
+
Common Options
|
|
48
|
+
--------------
|
|
49
|
+
|
|
50
|
+
Most analytics commands support the following options:
|
|
51
|
+
|
|
52
|
+
``--start-date, -s DATE``
|
|
53
|
+
Start date for the analytics period in YYYY-MM-DD format.
|
|
54
|
+
**Default**: First day of the previous month
|
|
55
|
+
|
|
56
|
+
``--end-date, -e DATE``
|
|
57
|
+
End date for the analytics period in YYYY-MM-DD format.
|
|
58
|
+
**Default**: Last day of the previous month
|
|
59
|
+
|
|
60
|
+
``--agent-name, -a NAME``
|
|
61
|
+
Filter results by specific agent name (where applicable)
|
|
62
|
+
|
|
63
|
+
Available Commands
|
|
64
|
+
------------------
|
|
65
|
+
|
|
66
|
+
Help
|
|
67
|
+
^^^^
|
|
68
|
+
|
|
69
|
+
Display help information for analytics commands.
|
|
70
|
+
|
|
71
|
+
.. code-block:: bash
|
|
72
|
+
|
|
73
|
+
geai analytics help
|
|
74
|
+
geai analytics h
|
|
75
|
+
|
|
76
|
+
Lab Metrics
|
|
77
|
+
^^^^^^^^^^^
|
|
78
|
+
|
|
79
|
+
Agents Created and Modified
|
|
80
|
+
""""""""""""""""""""""""""""
|
|
81
|
+
|
|
82
|
+
Get the total number of agents created and modified within a date range.
|
|
83
|
+
|
|
84
|
+
**Command:**
|
|
85
|
+
|
|
86
|
+
.. code-block:: bash
|
|
87
|
+
|
|
88
|
+
geai analytics agents-created --start-date "2024-01-01" --end-date "2024-01-31"
|
|
89
|
+
geai analytics ac -s "2024-01-01" -e "2024-01-31"
|
|
90
|
+
|
|
91
|
+
**Example Output:**
|
|
92
|
+
|
|
93
|
+
.. code-block:: text
|
|
94
|
+
|
|
95
|
+
Agents created and modified:
|
|
96
|
+
Created: 15
|
|
97
|
+
Modified: 42
|
|
98
|
+
|
|
99
|
+
Request Metrics
|
|
100
|
+
^^^^^^^^^^^^^^^
|
|
101
|
+
|
|
102
|
+
Requests Per Day
|
|
103
|
+
""""""""""""""""
|
|
104
|
+
|
|
105
|
+
Get total requests per day, including error counts.
|
|
106
|
+
|
|
107
|
+
**Command:**
|
|
108
|
+
|
|
109
|
+
.. code-block:: bash
|
|
110
|
+
|
|
111
|
+
geai analytics requests-per-day --start-date "2024-01-01" --end-date "2024-01-31"
|
|
112
|
+
geai analytics rpd -s "2024-01-01" -e "2024-01-31"
|
|
113
|
+
|
|
114
|
+
**With agent filter:**
|
|
115
|
+
|
|
116
|
+
.. code-block:: bash
|
|
117
|
+
|
|
118
|
+
geai analytics rpd -s "2024-01-01" -e "2024-01-31" --agent-name "Sales Assistant"
|
|
119
|
+
|
|
120
|
+
**Example Output:**
|
|
121
|
+
|
|
122
|
+
.. code-block:: text
|
|
123
|
+
|
|
124
|
+
Total requests per day:
|
|
125
|
+
2024-01-01: 450 requests (5 errors)
|
|
126
|
+
2024-01-02: 523 requests (3 errors)
|
|
127
|
+
2024-01-03: 601 requests (8 errors)
|
|
128
|
+
...
|
|
129
|
+
|
|
130
|
+
Error Rate
|
|
131
|
+
""""""""""
|
|
132
|
+
|
|
133
|
+
Get the overall error rate as a percentage.
|
|
134
|
+
|
|
135
|
+
**Command:**
|
|
136
|
+
|
|
137
|
+
.. code-block:: bash
|
|
138
|
+
|
|
139
|
+
geai analytics error-rate --start-date "2024-01-01" --end-date "2024-01-31"
|
|
140
|
+
geai analytics er -s "2024-01-01" -e "2024-01-31"
|
|
141
|
+
|
|
142
|
+
**Example Output:**
|
|
143
|
+
|
|
144
|
+
.. code-block:: text
|
|
145
|
+
|
|
146
|
+
Overall error rate: 1.24%
|
|
147
|
+
|
|
148
|
+
Cost Metrics
|
|
149
|
+
^^^^^^^^^^^^
|
|
150
|
+
|
|
151
|
+
Total Cost
|
|
152
|
+
""""""""""
|
|
153
|
+
|
|
154
|
+
Get the total cost incurred during the specified period.
|
|
155
|
+
|
|
156
|
+
**Command:**
|
|
157
|
+
|
|
158
|
+
.. code-block:: bash
|
|
159
|
+
|
|
160
|
+
geai analytics total-cost --start-date "2024-01-01" --end-date "2024-01-31"
|
|
161
|
+
geai analytics tc -s "2024-01-01" -e "2024-01-31"
|
|
162
|
+
|
|
163
|
+
**Example Output:**
|
|
164
|
+
|
|
165
|
+
.. code-block:: text
|
|
166
|
+
|
|
167
|
+
Total cost: $456.78
|
|
168
|
+
|
|
169
|
+
Average Cost Per Request
|
|
170
|
+
""""""""""""""""""""""""
|
|
171
|
+
|
|
172
|
+
Get the average cost per request.
|
|
173
|
+
|
|
174
|
+
**Command:**
|
|
175
|
+
|
|
176
|
+
.. code-block:: bash
|
|
177
|
+
|
|
178
|
+
geai analytics average-cost --start-date "2024-01-01" --end-date "2024-01-31"
|
|
179
|
+
geai analytics ac -s "2024-01-01" -e "2024-01-31"
|
|
180
|
+
|
|
181
|
+
**Example Output:**
|
|
182
|
+
|
|
183
|
+
.. code-block:: text
|
|
184
|
+
|
|
185
|
+
Average cost per request: $0.0367
|
|
186
|
+
|
|
187
|
+
Token Metrics
|
|
188
|
+
^^^^^^^^^^^^^
|
|
189
|
+
|
|
190
|
+
Total Tokens
|
|
191
|
+
""""""""""""
|
|
192
|
+
|
|
193
|
+
Get total input, output, and combined token counts.
|
|
194
|
+
|
|
195
|
+
**Command:**
|
|
196
|
+
|
|
197
|
+
.. code-block:: bash
|
|
198
|
+
|
|
199
|
+
geai analytics total-tokens --start-date "2024-01-01" --end-date "2024-01-31"
|
|
200
|
+
geai analytics tt -s "2024-01-01" -e "2024-01-31"
|
|
201
|
+
|
|
202
|
+
**Example Output:**
|
|
203
|
+
|
|
204
|
+
.. code-block:: text
|
|
205
|
+
|
|
206
|
+
Total tokens:
|
|
207
|
+
Input: 1,234,567
|
|
208
|
+
Output: 987,654
|
|
209
|
+
Total: 2,222,221
|
|
210
|
+
|
|
211
|
+
User & Agent Metrics
|
|
212
|
+
^^^^^^^^^^^^^^^^^^^^
|
|
213
|
+
|
|
214
|
+
Active Users
|
|
215
|
+
""""""""""""
|
|
216
|
+
|
|
217
|
+
Get the total number of active users during the period.
|
|
218
|
+
|
|
219
|
+
**Command:**
|
|
220
|
+
|
|
221
|
+
.. code-block:: bash
|
|
222
|
+
|
|
223
|
+
geai analytics active-users --start-date "2024-01-01" --end-date "2024-01-31"
|
|
224
|
+
geai analytics au -s "2024-01-01" -e "2024-01-31"
|
|
225
|
+
|
|
226
|
+
**Example Output:**
|
|
227
|
+
|
|
228
|
+
.. code-block:: text
|
|
229
|
+
|
|
230
|
+
Total active users: 45
|
|
231
|
+
|
|
232
|
+
Top Performers
|
|
233
|
+
^^^^^^^^^^^^^^
|
|
234
|
+
|
|
235
|
+
Top Agents by Requests
|
|
236
|
+
"""""""""""""""""""""""
|
|
237
|
+
|
|
238
|
+
Get the top 10 agents ranked by number of requests.
|
|
239
|
+
|
|
240
|
+
**Command:**
|
|
241
|
+
|
|
242
|
+
.. code-block:: bash
|
|
243
|
+
|
|
244
|
+
geai analytics top-agents --start-date "2024-01-01" --end-date "2024-01-31"
|
|
245
|
+
geai analytics ta -s "2024-01-01" -e "2024-01-31"
|
|
246
|
+
|
|
247
|
+
**Example Output:**
|
|
248
|
+
|
|
249
|
+
.. code-block:: text
|
|
250
|
+
|
|
251
|
+
Top 10 agents by requests:
|
|
252
|
+
1. Sales Assistant: 2,340 requests
|
|
253
|
+
2. Customer Support Bot: 1,890 requests
|
|
254
|
+
3. Code Reviewer: 1,456 requests
|
|
255
|
+
4. Data Analyst: 1,234 requests
|
|
256
|
+
5. Content Generator: 1,089 requests
|
|
257
|
+
...
|
|
258
|
+
|
|
259
|
+
Full Report
|
|
260
|
+
^^^^^^^^^^^
|
|
261
|
+
|
|
262
|
+
Get a comprehensive analytics report combining all metrics.
|
|
263
|
+
|
|
264
|
+
**Command:**
|
|
265
|
+
|
|
266
|
+
.. code-block:: bash
|
|
267
|
+
|
|
268
|
+
geai analytics full-report
|
|
269
|
+
geai analytics fr
|
|
270
|
+
|
|
271
|
+
**With custom date range:**
|
|
272
|
+
|
|
273
|
+
.. code-block:: bash
|
|
274
|
+
|
|
275
|
+
geai analytics full-report --start-date "2024-01-01" --end-date "2024-01-31"
|
|
276
|
+
geai analytics fr -s "2024-01-01" -e "2024-01-31"
|
|
277
|
+
|
|
278
|
+
**Export to CSV:**
|
|
279
|
+
|
|
280
|
+
.. code-block:: bash
|
|
281
|
+
|
|
282
|
+
geai analytics full-report --csv report.csv
|
|
283
|
+
geai analytics fr -s "2024-01-01" -e "2024-01-31" -c january_report.csv
|
|
284
|
+
|
|
285
|
+
**Report Sections:**
|
|
286
|
+
|
|
287
|
+
1. **Lab Metrics**
|
|
288
|
+
|
|
289
|
+
- Agents Created
|
|
290
|
+
- Agents Modified
|
|
291
|
+
- Flows Created
|
|
292
|
+
- Flows Modified
|
|
293
|
+
- Processes Created
|
|
294
|
+
- Processes Modified
|
|
295
|
+
|
|
296
|
+
2. **Request Metrics**
|
|
297
|
+
|
|
298
|
+
- Total Requests
|
|
299
|
+
- Total Requests with Error
|
|
300
|
+
- Overall Error Rate
|
|
301
|
+
- Average Request Time (ms)
|
|
302
|
+
|
|
303
|
+
3. **Cost Metrics**
|
|
304
|
+
|
|
305
|
+
- Total Cost (USD)
|
|
306
|
+
- Average Cost per Request (USD)
|
|
307
|
+
|
|
308
|
+
4. **Token Metrics**
|
|
309
|
+
|
|
310
|
+
- Total Input Tokens
|
|
311
|
+
- Total Output Tokens
|
|
312
|
+
- Total Tokens
|
|
313
|
+
- Average Input Tokens per Request
|
|
314
|
+
- Average Output Tokens per Request
|
|
315
|
+
- Average Total Tokens per Request
|
|
316
|
+
|
|
317
|
+
5. **User & Agent Metrics**
|
|
318
|
+
|
|
319
|
+
- Total Active Users
|
|
320
|
+
- Total Active Agents
|
|
321
|
+
- Total Active Projects
|
|
322
|
+
|
|
323
|
+
6. **Top 10 Agents by Requests**
|
|
324
|
+
7. **Top 10 Agents by Tokens**
|
|
325
|
+
8. **Top 10 Users by Requests**
|
|
326
|
+
9. **Top 10 Users by Cost**
|
|
327
|
+
|
|
328
|
+
**Example Output:**
|
|
329
|
+
|
|
330
|
+
.. code-block:: text
|
|
331
|
+
|
|
332
|
+
Using default date range: 2023-12-01 to 2023-12-31
|
|
333
|
+
|
|
334
|
+
================================================================================
|
|
335
|
+
ANALYTICS FULL REPORT - Period: 2023-12-01 to 2023-12-31
|
|
336
|
+
================================================================================
|
|
337
|
+
|
|
338
|
+
LAB METRICS
|
|
339
|
+
--------------------------------------------------------------------------------
|
|
340
|
+
Agents Created: 15
|
|
341
|
+
Agents Modified: 42
|
|
342
|
+
Flows Created: 8
|
|
343
|
+
Flows Modified: 23
|
|
344
|
+
Processes Created: 5
|
|
345
|
+
Processes Modified: 12
|
|
346
|
+
|
|
347
|
+
REQUEST METRICS
|
|
348
|
+
--------------------------------------------------------------------------------
|
|
349
|
+
Total Requests: 12,450
|
|
350
|
+
Total Requests with Error: 125
|
|
351
|
+
Overall Error Rate: 1.00%
|
|
352
|
+
Average Request Time: 1,234.56 ms
|
|
353
|
+
|
|
354
|
+
COST METRICS
|
|
355
|
+
--------------------------------------------------------------------------------
|
|
356
|
+
Total Cost: $456.78
|
|
357
|
+
Average Cost per Request: $0.0367
|
|
358
|
+
|
|
359
|
+
TOKEN METRICS
|
|
360
|
+
--------------------------------------------------------------------------------
|
|
361
|
+
Total Input Tokens: 1,234,567
|
|
362
|
+
Total Output Tokens: 987,654
|
|
363
|
+
Total Tokens: 2,222,221
|
|
364
|
+
Average Input Tokens per Request: 99.50
|
|
365
|
+
Average Output Tokens per Request: 79.00
|
|
366
|
+
Average Total Tokens per Request: 178.50
|
|
367
|
+
|
|
368
|
+
USER & AGENT METRICS
|
|
369
|
+
--------------------------------------------------------------------------------
|
|
370
|
+
Total Active Users: 45
|
|
371
|
+
Total Active Agents: 28
|
|
372
|
+
Total Active Projects: 12
|
|
373
|
+
|
|
374
|
+
TOP 10 AGENTS BY REQUESTS
|
|
375
|
+
--------------------------------------------------------------------------------
|
|
376
|
+
1. Sales Assistant: 2,340 requests
|
|
377
|
+
2. Customer Support Bot: 1,890 requests
|
|
378
|
+
...
|
|
379
|
+
|
|
380
|
+
================================================================================
|
|
381
|
+
|
|
382
|
+
**CSV Export Format:**
|
|
383
|
+
|
|
384
|
+
.. code-block:: text
|
|
385
|
+
|
|
386
|
+
Metric,Value
|
|
387
|
+
Report Period,2024-01-01 to 2024-01-31
|
|
388
|
+
Generated At,2024-02-15 14:30:45
|
|
389
|
+
|
|
390
|
+
Agents Created,15
|
|
391
|
+
Agents Modified,42
|
|
392
|
+
Flows Created,8
|
|
393
|
+
Flows Modified,23
|
|
394
|
+
Processes Created,5
|
|
395
|
+
Processes Modified,12
|
|
396
|
+
Total Requests,12450
|
|
397
|
+
Total Requests with Error,125
|
|
398
|
+
Overall Error Rate (%),1.00%
|
|
399
|
+
Average Request Time (ms),1234.56
|
|
400
|
+
Total Cost (USD),456.78
|
|
401
|
+
Average Cost per Request (USD),0.0367
|
|
402
|
+
Total Input Tokens,1234567
|
|
403
|
+
Total Output Tokens,987654
|
|
404
|
+
Total Tokens,2222221
|
|
405
|
+
Average Tokens per Request,178.50
|
|
406
|
+
Total Active Users,45
|
|
407
|
+
Total Active Agents,28
|
|
408
|
+
Total Active Projects,12
|
|
409
|
+
|
|
410
|
+
Python SDK Usage
|
|
411
|
+
----------------
|
|
412
|
+
|
|
413
|
+
In addition to the CLI, you can use the Analytics module programmatically through the Python SDK.
|
|
414
|
+
|
|
415
|
+
**Example:**
|
|
416
|
+
|
|
417
|
+
.. code-block:: python
|
|
418
|
+
|
|
419
|
+
from pygeai.analytics.managers import AnalyticsManager
|
|
420
|
+
|
|
421
|
+
# Initialize the manager
|
|
422
|
+
manager = AnalyticsManager()
|
|
423
|
+
|
|
424
|
+
# Get agents created and modified
|
|
425
|
+
result = manager.get_agents_created_and_modified(
|
|
426
|
+
start_date="2024-01-01",
|
|
427
|
+
end_date="2024-01-31"
|
|
428
|
+
)
|
|
429
|
+
print(f"Created: {result.createdAgents}")
|
|
430
|
+
print(f"Modified: {result.modifiedAgents}")
|
|
431
|
+
|
|
432
|
+
# Get total cost
|
|
433
|
+
cost = manager.get_total_cost(
|
|
434
|
+
start_date="2024-01-01",
|
|
435
|
+
end_date="2024-01-31"
|
|
436
|
+
)
|
|
437
|
+
print(f"Total Cost: ${cost.totalCost:.2f}")
|
|
438
|
+
|
|
439
|
+
# Get top agents by requests
|
|
440
|
+
top_agents = manager.get_top_10_agents_by_requests(
|
|
441
|
+
start_date="2024-01-01",
|
|
442
|
+
end_date="2024-01-31"
|
|
443
|
+
)
|
|
444
|
+
for agent in top_agents.topAgents:
|
|
445
|
+
print(f"{agent.agentName}: {agent.totalRequests} requests")
|
|
446
|
+
|
|
447
|
+
Available Manager Methods
|
|
448
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
449
|
+
|
|
450
|
+
**Lab Metrics:**
|
|
451
|
+
|
|
452
|
+
- ``get_agents_created_and_modified(start_date, end_date)``
|
|
453
|
+
- ``get_agents_created_and_modified_per_day(start_date, end_date)``
|
|
454
|
+
- ``get_flows_created_and_modified(start_date, end_date)``
|
|
455
|
+
- ``get_flows_created_and_modified_per_day(start_date, end_date)``
|
|
456
|
+
- ``get_processes_created_and_modified(start_date, end_date)``
|
|
457
|
+
|
|
458
|
+
**Request Metrics:**
|
|
459
|
+
|
|
460
|
+
- ``get_total_requests(start_date, end_date, agent_name=None)``
|
|
461
|
+
- ``get_total_requests_per_day(start_date, end_date, agent_name=None)``
|
|
462
|
+
- ``get_total_requests_with_error(start_date, end_date)``
|
|
463
|
+
- ``get_overall_error_rate(start_date, end_date)``
|
|
464
|
+
- ``get_average_request_time(start_date, end_date)``
|
|
465
|
+
- ``get_average_requests_per_day(start_date, end_date)``
|
|
466
|
+
- ``get_average_requests_per_user(start_date, end_date)``
|
|
467
|
+
- ``get_average_requests_per_user_per_date(start_date, end_date)``
|
|
468
|
+
|
|
469
|
+
**Cost Metrics:**
|
|
470
|
+
|
|
471
|
+
- ``get_total_cost(start_date, end_date)``
|
|
472
|
+
- ``get_total_cost_per_day(start_date, end_date)``
|
|
473
|
+
- ``get_average_cost_per_request(start_date, end_date)``
|
|
474
|
+
- ``get_average_cost_per_user(start_date, end_date)``
|
|
475
|
+
- ``get_average_cost_per_user_per_date(start_date, end_date)``
|
|
476
|
+
|
|
477
|
+
**Token Metrics:**
|
|
478
|
+
|
|
479
|
+
- ``get_total_tokens(start_date, end_date)``
|
|
480
|
+
- ``get_number_of_tokens_per_agent(start_date, end_date)``
|
|
481
|
+
- ``get_number_of_tokens_per_day(start_date, end_date)``
|
|
482
|
+
- ``get_average_tokens_per_request(start_date, end_date)``
|
|
483
|
+
|
|
484
|
+
**User & Agent Metrics:**
|
|
485
|
+
|
|
486
|
+
- ``get_total_active_users(start_date, end_date, agent_name=None)``
|
|
487
|
+
- ``get_total_active_agents(start_date, end_date)``
|
|
488
|
+
- ``get_total_active_projects(start_date, end_date)``
|
|
489
|
+
- ``get_agent_usage_per_user(start_date, end_date)``
|
|
490
|
+
- ``get_average_users_per_agent(start_date, end_date)``
|
|
491
|
+
- ``get_average_users_per_project(start_date, end_date)``
|
|
492
|
+
|
|
493
|
+
**Top Performers:**
|
|
494
|
+
|
|
495
|
+
- ``get_top_10_agents_by_requests(start_date, end_date)``
|
|
496
|
+
- ``get_top_10_agents_by_tokens(start_date, end_date)``
|
|
497
|
+
- ``get_top_10_users_by_requests(start_date, end_date)``
|
|
498
|
+
- ``get_top_10_users_by_cost(start_date, end_date)``
|
|
499
|
+
|
|
500
|
+
Best Practices
|
|
501
|
+
--------------
|
|
502
|
+
|
|
503
|
+
1. **Regular Monitoring**: Run analytics reports regularly to track trends and identify patterns
|
|
504
|
+
2. **CSV Export**: Export to CSV for further analysis in spreadsheet applications or BI tools
|
|
505
|
+
3. **Compare Periods**: Generate reports for different time periods to compare performance
|
|
506
|
+
4. **Cost Optimization**: Monitor cost metrics to identify opportunities for optimization
|
|
507
|
+
5. **Error Analysis**: Track error rates to quickly identify and address issues
|
|
508
|
+
6. **Resource Planning**: Use active user and agent metrics for capacity planning
|
|
509
|
+
7. **Performance Tuning**: Monitor average request times to identify performance bottlenecks
|
|
510
|
+
|
|
511
|
+
Common Use Cases
|
|
512
|
+
----------------
|
|
513
|
+
|
|
514
|
+
Monthly Reporting
|
|
515
|
+
^^^^^^^^^^^^^^^^^
|
|
516
|
+
|
|
517
|
+
Generate a monthly report automatically using default dates:
|
|
518
|
+
|
|
519
|
+
.. code-block:: bash
|
|
520
|
+
|
|
521
|
+
#!/bin/bash
|
|
522
|
+
# Run on the 1st of each month
|
|
523
|
+
REPORT_FILE="analytics_$(date -d 'last month' +%Y-%m).csv"
|
|
524
|
+
geai analytics full-report --csv "$REPORT_FILE"
|
|
525
|
+
|
|
526
|
+
Cost Tracking
|
|
527
|
+
^^^^^^^^^^^^^
|
|
528
|
+
|
|
529
|
+
Track costs over time:
|
|
530
|
+
|
|
531
|
+
.. code-block:: bash
|
|
532
|
+
|
|
533
|
+
# Q1 2024
|
|
534
|
+
geai analytics total-cost -s "2024-01-01" -e "2024-03-31"
|
|
535
|
+
|
|
536
|
+
# Compare to Q4 2023
|
|
537
|
+
geai analytics total-cost -s "2023-10-01" -e "2023-12-31"
|
|
538
|
+
|
|
539
|
+
Performance Monitoring
|
|
540
|
+
^^^^^^^^^^^^^^^^^^^^^^
|
|
541
|
+
|
|
542
|
+
Monitor error rates and response times:
|
|
543
|
+
|
|
544
|
+
.. code-block:: bash
|
|
545
|
+
|
|
546
|
+
geai analytics error-rate -s "2024-01-01" -e "2024-01-31"
|
|
547
|
+
geai analytics requests-per-day -s "2024-01-01" -e "2024-01-31"
|
|
548
|
+
|
|
549
|
+
Agent Analysis
|
|
550
|
+
^^^^^^^^^^^^^^
|
|
551
|
+
|
|
552
|
+
Identify top-performing agents:
|
|
553
|
+
|
|
554
|
+
.. code-block:: bash
|
|
555
|
+
|
|
556
|
+
geai analytics top-agents -s "2024-01-01" -e "2024-01-31"
|
|
557
|
+
|
|
558
|
+
Troubleshooting
|
|
559
|
+
---------------
|
|
560
|
+
|
|
561
|
+
**Error: Authentication Failed**
|
|
562
|
+
|
|
563
|
+
Ensure your API token is properly configured:
|
|
564
|
+
|
|
565
|
+
.. code-block:: bash
|
|
566
|
+
|
|
567
|
+
export GEAI_APITOKEN="your-api-token-here"
|
|
568
|
+
|
|
569
|
+
**Error: Insufficient Permissions**
|
|
570
|
+
|
|
571
|
+
Contact your GEAI administrator to ensure you have analytics access permissions.
|
|
572
|
+
|
|
573
|
+
**Empty Results**
|
|
574
|
+
|
|
575
|
+
If metrics show zero or empty values:
|
|
576
|
+
|
|
577
|
+
- Verify the date range includes periods with activity
|
|
578
|
+
- Check that you're querying the correct organization/project
|
|
579
|
+
- Ensure there was actual usage during the specified period
|
|
580
|
+
|
|
581
|
+
**Date Format Errors**
|
|
582
|
+
|
|
583
|
+
Always use YYYY-MM-DD format for dates:
|
|
584
|
+
|
|
585
|
+
.. code-block:: bash
|
|
586
|
+
|
|
587
|
+
# Correct
|
|
588
|
+
geai analytics total-cost -s "2024-01-01" -e "2024-01-31"
|
|
589
|
+
|
|
590
|
+
# Incorrect
|
|
591
|
+
geai analytics total-cost -s "01/01/2024" -e "01/31/2024"
|
|
592
|
+
|
|
593
|
+
See Also
|
|
594
|
+
--------
|
|
595
|
+
|
|
596
|
+
- :doc:`cli` - General CLI documentation
|
|
597
|
+
- API Documentation: https://docs.globant.ai/en/wiki?2725,Analytics+API
|
|
598
|
+
- ``geai analytics help`` - View all available analytics commands
|