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,1734 @@
|
|
|
1
|
+
Data Models
|
|
2
|
+
===========
|
|
3
|
+
|
|
4
|
+
The PyGEAI SDK provides Pydantic-based data models for interacting with the Globant Enterprise AI Lab, enabling developers to configure agents, tools, processes, tasks, and more. These models ensure type safety and API compatibility without requiring hardcoded field details that may change. Many models allow direct dictionary inputs for nested configurations, simplifying instantiation. This section describes each model’s purpose, provides examples of instantiation (via attributes and dictionaries), and notes key restrictions, keeping documentation maintainable and flexible.
|
|
5
|
+
|
|
6
|
+
.. note::
|
|
7
|
+
Models inherit from ``CustomBaseModel``, a Pydantic ``BaseModel`` subclass, providing ``to_dict()`` for serialization.
|
|
8
|
+
|
|
9
|
+
FilterSettings
|
|
10
|
+
--------------
|
|
11
|
+
|
|
12
|
+
Purpose
|
|
13
|
+
~~~~~~~
|
|
14
|
+
|
|
15
|
+
Configures filters for querying Lab entities like agents or tools, supporting pagination and scope.
|
|
16
|
+
|
|
17
|
+
Usage Examples
|
|
18
|
+
~~~~~~~~~~~~~~
|
|
19
|
+
|
|
20
|
+
**Via Attributes**:
|
|
21
|
+
|
|
22
|
+
.. code-block:: python
|
|
23
|
+
|
|
24
|
+
from pygeai.lab.models import FilterSettings
|
|
25
|
+
|
|
26
|
+
filters = FilterSettings(id="agent-123", name="MyAgent", access_scope="private")
|
|
27
|
+
print(filters.to_dict())
|
|
28
|
+
# Output: Dictionary with filter settings
|
|
29
|
+
|
|
30
|
+
**Via Dictionary**:
|
|
31
|
+
|
|
32
|
+
.. code-block:: python
|
|
33
|
+
|
|
34
|
+
from pygeai.lab.models import FilterSettings
|
|
35
|
+
|
|
36
|
+
filters = FilterSettings(**{
|
|
37
|
+
"id": "agent-123",
|
|
38
|
+
"name": "MyAgent",
|
|
39
|
+
"accessScope": "private"
|
|
40
|
+
})
|
|
41
|
+
print(filters.to_dict())
|
|
42
|
+
# Output: Dictionary with filter settings
|
|
43
|
+
|
|
44
|
+
Restrictions and Considerations
|
|
45
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
46
|
+
|
|
47
|
+
- Most fields are optional for flexible queries.
|
|
48
|
+
- Pagination requires non-negative integers.
|
|
49
|
+
- Scope values must match API expectations (e.g., "public", "private").
|
|
50
|
+
- Use dictionaries for quick filter setup in API calls.
|
|
51
|
+
- Avoid over-specifying to ensure results.
|
|
52
|
+
|
|
53
|
+
Sampling
|
|
54
|
+
--------
|
|
55
|
+
|
|
56
|
+
Purpose
|
|
57
|
+
~~~~~~~
|
|
58
|
+
|
|
59
|
+
Controls randomness in LLM token generation.
|
|
60
|
+
|
|
61
|
+
Usage Examples
|
|
62
|
+
~~~~~~~~~~~~~~
|
|
63
|
+
|
|
64
|
+
**Via Attributes**:
|
|
65
|
+
|
|
66
|
+
.. code-block:: python
|
|
67
|
+
|
|
68
|
+
from pygeai.lab.models import Sampling
|
|
69
|
+
|
|
70
|
+
sampling = Sampling(temperature=0.8, top_k=40, top_p=0.95)
|
|
71
|
+
print(sampling.to_dict())
|
|
72
|
+
# Output: {"temperature": 0.8, "topK": 40, "topP": 0.95}
|
|
73
|
+
|
|
74
|
+
**Via Dictionary**:
|
|
75
|
+
|
|
76
|
+
.. code-block:: python
|
|
77
|
+
|
|
78
|
+
from pygeai.lab.models import Sampling
|
|
79
|
+
|
|
80
|
+
sampling = Sampling(**{
|
|
81
|
+
"temperature": 0.8,
|
|
82
|
+
"topK": 40,
|
|
83
|
+
"topP": 0.95
|
|
84
|
+
})
|
|
85
|
+
print(sampling.to_dict())
|
|
86
|
+
# Output: {"temperature": 0.8, "topK": 40, "topP": 0.95}
|
|
87
|
+
|
|
88
|
+
Restrictions and Considerations
|
|
89
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
90
|
+
|
|
91
|
+
- All fields are required.
|
|
92
|
+
- Temperature should range from 0.1 to 2.0.
|
|
93
|
+
- Top-k and top-p need positive, reasonable values.
|
|
94
|
+
- Dictionaries simplify sampling configuration.
|
|
95
|
+
- Test settings to balance creativity and coherence.
|
|
96
|
+
|
|
97
|
+
LlmConfig
|
|
98
|
+
---------
|
|
99
|
+
|
|
100
|
+
Purpose
|
|
101
|
+
~~~~~~~
|
|
102
|
+
|
|
103
|
+
Defines LLM settings, including token limits and sampling.
|
|
104
|
+
|
|
105
|
+
Usage Examples
|
|
106
|
+
~~~~~~~~~~~~~~
|
|
107
|
+
|
|
108
|
+
**Via Attributes**:
|
|
109
|
+
|
|
110
|
+
.. code-block:: python
|
|
111
|
+
|
|
112
|
+
from pygeai.lab.models import LlmConfig, Sampling
|
|
113
|
+
|
|
114
|
+
sampling = Sampling(temperature=0.7, top_k=50, top_p=0.9)
|
|
115
|
+
llm_config = LlmConfig(max_tokens=2048, timeout=30, sampling=sampling)
|
|
116
|
+
print(llm_config.to_dict())
|
|
117
|
+
# Output: Dictionary with LLM settings
|
|
118
|
+
|
|
119
|
+
**Via Dictionary (with Sampling as dict)**:
|
|
120
|
+
|
|
121
|
+
.. code-block:: python
|
|
122
|
+
|
|
123
|
+
from pygeai.lab.models import LlmConfig
|
|
124
|
+
|
|
125
|
+
llm_config = LlmConfig(**{
|
|
126
|
+
"maxTokens": 2048,
|
|
127
|
+
"timeout": 30,
|
|
128
|
+
"sampling": {
|
|
129
|
+
"temperature": 0.7,
|
|
130
|
+
"topK": 50,
|
|
131
|
+
"topP": 0.9
|
|
132
|
+
}
|
|
133
|
+
})
|
|
134
|
+
print(llm_config.to_dict())
|
|
135
|
+
# Output: Dictionary with LLM settings
|
|
136
|
+
|
|
137
|
+
Restrictions and Considerations
|
|
138
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
139
|
+
|
|
140
|
+
- Core fields are mandatory.
|
|
141
|
+
- Token limits depend on LLM capacity.
|
|
142
|
+
- Timeout may be API-capped; use 0 carefully.
|
|
143
|
+
- Accepts sampling as a dictionary for convenience.
|
|
144
|
+
- Verify settings before scaling.
|
|
145
|
+
|
|
146
|
+
Model
|
|
147
|
+
-----
|
|
148
|
+
|
|
149
|
+
Purpose
|
|
150
|
+
~~~~~~~
|
|
151
|
+
|
|
152
|
+
Customizes an LLM for an agent.
|
|
153
|
+
|
|
154
|
+
Usage Examples
|
|
155
|
+
~~~~~~~~~~~~~~
|
|
156
|
+
|
|
157
|
+
**Via Attributes**:
|
|
158
|
+
|
|
159
|
+
.. code-block:: python
|
|
160
|
+
|
|
161
|
+
from pygeai.lab.models import Model, LlmConfig, Sampling
|
|
162
|
+
|
|
163
|
+
sampling = Sampling(temperature=0.7, top_k=50, top_p=0.9)
|
|
164
|
+
llm_config = LlmConfig(max_tokens=2048, timeout=30, sampling=sampling)
|
|
165
|
+
model = Model(name="gpt-4", llm_config=llm_config)
|
|
166
|
+
print(model.to_dict())
|
|
167
|
+
# Output: Dictionary with model settings
|
|
168
|
+
|
|
169
|
+
**Via Dictionary (with LlmConfig as dict)**:
|
|
170
|
+
|
|
171
|
+
.. code-block:: python
|
|
172
|
+
|
|
173
|
+
from pygeai.lab.models import Model
|
|
174
|
+
|
|
175
|
+
model = Model(**{
|
|
176
|
+
"name": "gpt-4",
|
|
177
|
+
"llmConfig": {
|
|
178
|
+
"maxTokens": 2048,
|
|
179
|
+
"timeout": 30,
|
|
180
|
+
"sampling": {
|
|
181
|
+
"temperature": 0.7,
|
|
182
|
+
"topK": 50,
|
|
183
|
+
"topP": 0.9
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
})
|
|
187
|
+
print(model.to_dict())
|
|
188
|
+
# Output: Dictionary with model settings
|
|
189
|
+
|
|
190
|
+
Restrictions and Considerations
|
|
191
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
192
|
+
|
|
193
|
+
- Name is required; must be Lab-supported.
|
|
194
|
+
- Optional LLM config can be a dictionary.
|
|
195
|
+
- Prompt, if used, should align with agent tasks.
|
|
196
|
+
- Useful for flexible model assignments.
|
|
197
|
+
- Check LLM compatibility.
|
|
198
|
+
|
|
199
|
+
PromptExample
|
|
200
|
+
-------------
|
|
201
|
+
|
|
202
|
+
Purpose
|
|
203
|
+
~~~~~~~
|
|
204
|
+
|
|
205
|
+
Provides input-output pairs for few-shot learning.
|
|
206
|
+
|
|
207
|
+
Usage Examples
|
|
208
|
+
~~~~~~~~~~~~~~
|
|
209
|
+
|
|
210
|
+
**Via Attributes**:
|
|
211
|
+
|
|
212
|
+
.. code-block:: python
|
|
213
|
+
|
|
214
|
+
from pygeai.lab.models import PromptExample
|
|
215
|
+
|
|
216
|
+
example = PromptExample(input_data="Summarize: [article]", output='{"summary": "AI news."}')
|
|
217
|
+
print(example.to_dict())
|
|
218
|
+
# Output: Dictionary with example data
|
|
219
|
+
|
|
220
|
+
**Via Dictionary**:
|
|
221
|
+
|
|
222
|
+
.. code-block:: python
|
|
223
|
+
|
|
224
|
+
from pygeai.lab.models import PromptExample
|
|
225
|
+
|
|
226
|
+
example = PromptExample(**{
|
|
227
|
+
"inputData": "Summarize: [article]",
|
|
228
|
+
"output": '{"summary": "AI news."}'
|
|
229
|
+
})
|
|
230
|
+
print(example.to_dict())
|
|
231
|
+
# Output: Dictionary with example data
|
|
232
|
+
|
|
233
|
+
Restrictions and Considerations
|
|
234
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
235
|
+
|
|
236
|
+
- Both fields are required; output must be JSON.
|
|
237
|
+
- Keep examples concise and relevant.
|
|
238
|
+
- Multiple examples improve accuracy.
|
|
239
|
+
- Dictionaries simplify example setup.
|
|
240
|
+
- Monitor token usage with examples.
|
|
241
|
+
|
|
242
|
+
PromptOutput
|
|
243
|
+
------------
|
|
244
|
+
|
|
245
|
+
Purpose
|
|
246
|
+
~~~~~~~
|
|
247
|
+
|
|
248
|
+
Defines expected prompt outputs.
|
|
249
|
+
|
|
250
|
+
Usage Examples
|
|
251
|
+
~~~~~~~~~~~~~~
|
|
252
|
+
|
|
253
|
+
**Via Attributes**:
|
|
254
|
+
|
|
255
|
+
.. code-block:: python
|
|
256
|
+
|
|
257
|
+
from pygeai.lab.models import PromptOutput
|
|
258
|
+
|
|
259
|
+
output = PromptOutput(key="summary", description="Text summary.")
|
|
260
|
+
print(output.to_dict())
|
|
261
|
+
# Output: {"key": "summary", "description": "Text summary."}
|
|
262
|
+
|
|
263
|
+
**Via Dictionary**:
|
|
264
|
+
|
|
265
|
+
.. code-block:: python
|
|
266
|
+
|
|
267
|
+
from pygeai.lab.models import PromptOutput
|
|
268
|
+
|
|
269
|
+
output = PromptOutput(**{
|
|
270
|
+
"key": "summary",
|
|
271
|
+
"description": "Text summary."
|
|
272
|
+
})
|
|
273
|
+
print(output.to_dict())
|
|
274
|
+
# Output: {"key": "summary", "description": "Text summary."}
|
|
275
|
+
|
|
276
|
+
Restrictions and Considerations
|
|
277
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
278
|
+
|
|
279
|
+
- Key and description are required.
|
|
280
|
+
- Keys must be unique per prompt.
|
|
281
|
+
- Use clear descriptions for output format.
|
|
282
|
+
- Dictionaries streamline output definitions.
|
|
283
|
+
- Supports multiple outputs.
|
|
284
|
+
|
|
285
|
+
Prompt
|
|
286
|
+
------
|
|
287
|
+
|
|
288
|
+
Purpose
|
|
289
|
+
~~~~~~~
|
|
290
|
+
|
|
291
|
+
Configures an agent’s prompt behavior.
|
|
292
|
+
|
|
293
|
+
Usage Examples
|
|
294
|
+
~~~~~~~~~~~~~~
|
|
295
|
+
|
|
296
|
+
**Via Attributes**:
|
|
297
|
+
|
|
298
|
+
.. code-block:: python
|
|
299
|
+
|
|
300
|
+
from pygeai.lab.models import Prompt, PromptOutput, PromptExample
|
|
301
|
+
|
|
302
|
+
output = PromptOutput(key="summary", description="Text summary.")
|
|
303
|
+
example = PromptExample(input_data="Article: [content]", output='{"summary": "AI news."}')
|
|
304
|
+
prompt = Prompt(instructions="Summarize article.", inputs=["article"], outputs=[output], examples=[example])
|
|
305
|
+
print(prompt.to_dict())
|
|
306
|
+
# Output: Dictionary with prompt settings
|
|
307
|
+
|
|
308
|
+
**Via Dictionary (with Outputs, Examples as dicts)**:
|
|
309
|
+
|
|
310
|
+
.. code-block:: python
|
|
311
|
+
|
|
312
|
+
from pygeai.lab.models import Prompt
|
|
313
|
+
|
|
314
|
+
prompt = Prompt(**{
|
|
315
|
+
"instructions": "Summarize article.",
|
|
316
|
+
"inputs": ["article"],
|
|
317
|
+
"outputs": [{"key": "summary", "description": "Text summary."}],
|
|
318
|
+
"examples": [{"inputData": "Article: [content]", "output": '{"summary": "AI news."}'}]
|
|
319
|
+
})
|
|
320
|
+
print(prompt.to_dict())
|
|
321
|
+
# Output: Dictionary with prompt settings
|
|
322
|
+
|
|
323
|
+
Restrictions and Considerations
|
|
324
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
325
|
+
|
|
326
|
+
- Instructions, inputs, and outputs are required.
|
|
327
|
+
- Outputs need at least one entry.
|
|
328
|
+
- Accepts outputs and examples as dictionaries.
|
|
329
|
+
- Inputs must be unique.
|
|
330
|
+
- Avoid unimplemented fields like context.
|
|
331
|
+
|
|
332
|
+
ModelList
|
|
333
|
+
---------
|
|
334
|
+
|
|
335
|
+
Purpose
|
|
336
|
+
~~~~~~~
|
|
337
|
+
|
|
338
|
+
Holds multiple model configurations.
|
|
339
|
+
|
|
340
|
+
Usage Examples
|
|
341
|
+
~~~~~~~~~~~~~~
|
|
342
|
+
|
|
343
|
+
**Via Attributes**:
|
|
344
|
+
|
|
345
|
+
.. code-block:: python
|
|
346
|
+
|
|
347
|
+
from pygeai.lab.models import ModelList, Model
|
|
348
|
+
|
|
349
|
+
model = Model(name="gpt-4")
|
|
350
|
+
model_list = ModelList(models=[model])
|
|
351
|
+
print(model_list.to_dict())
|
|
352
|
+
# Output: List of model dictionaries
|
|
353
|
+
|
|
354
|
+
**Via Dictionary (with Models as dicts)**:
|
|
355
|
+
|
|
356
|
+
.. code-block:: python
|
|
357
|
+
|
|
358
|
+
from pygeai.lab.models import ModelList
|
|
359
|
+
|
|
360
|
+
model_list = ModelList(**{
|
|
361
|
+
"models": [
|
|
362
|
+
{"name": "gpt-4"},
|
|
363
|
+
{"name": "gpt-3.5"}
|
|
364
|
+
]
|
|
365
|
+
})
|
|
366
|
+
print(model_list.to_dict())
|
|
367
|
+
# Output: List of model dictionaries
|
|
368
|
+
|
|
369
|
+
Restrictions and Considerations
|
|
370
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
371
|
+
|
|
372
|
+
- Models collection is required; can be empty.
|
|
373
|
+
- Accepts models as dictionaries.
|
|
374
|
+
- Supports iteration and appending.
|
|
375
|
+
- Ensure unique model names.
|
|
376
|
+
- Simplifies bulk model setup.
|
|
377
|
+
|
|
378
|
+
|
|
379
|
+
Permission
|
|
380
|
+
----------
|
|
381
|
+
|
|
382
|
+
Purpose
|
|
383
|
+
~~~~~~~
|
|
384
|
+
|
|
385
|
+
Represents permission settings for an agent, defining access levels for chat sharing and external execution.
|
|
386
|
+
|
|
387
|
+
Usage Examples
|
|
388
|
+
~~~~~~~~~~~~~~
|
|
389
|
+
|
|
390
|
+
**Via Attributes**:
|
|
391
|
+
|
|
392
|
+
.. code-block:: python
|
|
393
|
+
|
|
394
|
+
from pygeai.lab.models import Permission
|
|
395
|
+
|
|
396
|
+
permission = Permission(chat_sharing="organization", external_execution="project")
|
|
397
|
+
print(permission.to_dict())
|
|
398
|
+
# Output: {"chatSharing": "organization", "externalExecution": "project"}
|
|
399
|
+
|
|
400
|
+
**Via Dictionary**:
|
|
401
|
+
|
|
402
|
+
.. code-block:: python
|
|
403
|
+
|
|
404
|
+
from pygeai.lab.models import Permission
|
|
405
|
+
|
|
406
|
+
permission = Permission(**{
|
|
407
|
+
"chatSharing": "organization",
|
|
408
|
+
"externalExecution": "none"
|
|
409
|
+
})
|
|
410
|
+
print(permission.to_dict())
|
|
411
|
+
# Output: {"chatSharing": "organization", "externalExecution": "none"}
|
|
412
|
+
|
|
413
|
+
Restrictions and Considerations
|
|
414
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
415
|
+
|
|
416
|
+
- Valid values for both fields: "none", "organization", "project"
|
|
417
|
+
- Both fields are optional
|
|
418
|
+
- Used to control agent sharing and execution permissions
|
|
419
|
+
- Can be used as `permissions` or `effective_permissions` in Agent model
|
|
420
|
+
|
|
421
|
+
Property
|
|
422
|
+
--------
|
|
423
|
+
|
|
424
|
+
Purpose
|
|
425
|
+
~~~~~~~
|
|
426
|
+
|
|
427
|
+
Represents a custom property for an agent, allowing key-value storage with type information.
|
|
428
|
+
|
|
429
|
+
Usage Examples
|
|
430
|
+
~~~~~~~~~~~~~~
|
|
431
|
+
|
|
432
|
+
**Via Attributes**:
|
|
433
|
+
|
|
434
|
+
.. code-block:: python
|
|
435
|
+
|
|
436
|
+
from pygeai.lab.models import Property
|
|
437
|
+
|
|
438
|
+
property = Property(data_type="string", key="environment", value="production")
|
|
439
|
+
print(property.to_dict())
|
|
440
|
+
# Output: {"dataType": "string", "key": "environment", "value": "production"}
|
|
441
|
+
|
|
442
|
+
**Via Dictionary**:
|
|
443
|
+
|
|
444
|
+
.. code-block:: python
|
|
445
|
+
|
|
446
|
+
from pygeai.lab.models import Property
|
|
447
|
+
|
|
448
|
+
property = Property(**{
|
|
449
|
+
"dataType": "number",
|
|
450
|
+
"key": "max_retries",
|
|
451
|
+
"value": "3"
|
|
452
|
+
})
|
|
453
|
+
print(property.to_dict())
|
|
454
|
+
# Output: {"dataType": "number", "key": "max_retries", "value": "3"}
|
|
455
|
+
|
|
456
|
+
Restrictions and Considerations
|
|
457
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
458
|
+
|
|
459
|
+
- All three fields (data_type, key, value) are required
|
|
460
|
+
- Supported data types: "string", "number", "boolean", "object", "array"
|
|
461
|
+
- Value is always stored as string, regardless of data_type
|
|
462
|
+
- Used in AgentData to store custom configuration
|
|
463
|
+
- Useful for environment-specific settings
|
|
464
|
+
AgentData
|
|
465
|
+
---------
|
|
466
|
+
|
|
467
|
+
Purpose
|
|
468
|
+
~~~~~~~
|
|
469
|
+
|
|
470
|
+
Defines an agent’s core configuration.
|
|
471
|
+
|
|
472
|
+
Usage Examples
|
|
473
|
+
~~~~~~~~~~~~~~
|
|
474
|
+
|
|
475
|
+
**Via Attributes**:
|
|
476
|
+
|
|
477
|
+
.. code-block:: python
|
|
478
|
+
|
|
479
|
+
from pygeai.lab.models import AgentData, Prompt, PromptOutput, LlmConfig, Sampling, ModelList, Model
|
|
480
|
+
|
|
481
|
+
prompt = Prompt(instructions="Summarize.", inputs=["text"], outputs=[PromptOutput(key="summary", description="Summary.")])
|
|
482
|
+
sampling = Sampling(temperature=0.7, top_k=50, top_p=0.9)
|
|
483
|
+
llm_config = LlmConfig(max_tokens=2048, timeout=30, sampling=sampling)
|
|
484
|
+
model_list = ModelList(models=[Model(name="gpt-4")])
|
|
485
|
+
agent_data = AgentData(prompt=prompt, llm_config=llm_config, models=model_list)
|
|
486
|
+
print(agent_data.to_dict())
|
|
487
|
+
# Output: Dictionary with agent data
|
|
488
|
+
|
|
489
|
+
**Via Dictionary (with Prompt, LlmConfig, Models as dicts)**:
|
|
490
|
+
|
|
491
|
+
.. code-block:: python
|
|
492
|
+
|
|
493
|
+
from pygeai.lab.models import AgentData
|
|
494
|
+
|
|
495
|
+
agent_data = AgentData(**{
|
|
496
|
+
"prompt": {
|
|
497
|
+
"instructions": "Summarize.",
|
|
498
|
+
"inputs": ["text"],
|
|
499
|
+
"outputs": [{"key": "summary", "description": "Summary."}]
|
|
500
|
+
},
|
|
501
|
+
"llmConfig": {
|
|
502
|
+
"maxTokens": 2048,
|
|
503
|
+
"timeout": 30,
|
|
504
|
+
"sampling": {"temperature": 0.7, "topK": 50, "topP": 0.9}
|
|
505
|
+
},
|
|
506
|
+
"models": [{"name": "gpt-4"}]
|
|
507
|
+
})
|
|
508
|
+
print(agent_data.to_dict())
|
|
509
|
+
# Output: Dictionary with agent data
|
|
510
|
+
|
|
511
|
+
**With Properties**:
|
|
512
|
+
|
|
513
|
+
.. code-block:: python
|
|
514
|
+
|
|
515
|
+
from pygeai.lab.models import AgentData, Property
|
|
516
|
+
|
|
517
|
+
agent_data = AgentData(**{
|
|
518
|
+
"prompt": {"instructions": "Process data"},
|
|
519
|
+
"models": [{"name": "gpt-4"}],
|
|
520
|
+
"properties": [
|
|
521
|
+
{"dataType": "string", "key": "environment", "value": "production"},
|
|
522
|
+
{"dataType": "number", "key": "timeout", "value": "30"},
|
|
523
|
+
{"dataType": "boolean", "key": "cache_enabled", "value": "true"}
|
|
524
|
+
],
|
|
525
|
+
"strategyName": "Dynamic Prompting"
|
|
526
|
+
})
|
|
527
|
+
print(agent_data.properties[0].key) # Output: "environment"
|
|
528
|
+
print(agent_data.strategy_name) # Output: "Dynamic Prompting"
|
|
529
|
+
|
|
530
|
+
|
|
531
|
+
Restrictions and Considerations
|
|
532
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
533
|
+
|
|
534
|
+
- Core components are required.
|
|
535
|
+
- Accepts prompt, LLM config, and models as dictionaries.
|
|
536
|
+
- Non-draft agents need at least one model.
|
|
537
|
+
- Align settings with LLM capabilities.
|
|
538
|
+
- Simplifies complex agent setups.
|
|
539
|
+
|
|
540
|
+
Agent
|
|
541
|
+
-----
|
|
542
|
+
|
|
543
|
+
Purpose
|
|
544
|
+
~~~~~~~
|
|
545
|
+
|
|
546
|
+
Represents a complete agent with metadata.
|
|
547
|
+
|
|
548
|
+
Usage Examples
|
|
549
|
+
~~~~~~~~~~~~~~
|
|
550
|
+
|
|
551
|
+
**Via Attributes**:
|
|
552
|
+
|
|
553
|
+
.. code-block:: python
|
|
554
|
+
|
|
555
|
+
from pygeai.lab.models import Agent, AgentData, Prompt, PromptOutput, ModelList, Model
|
|
556
|
+
|
|
557
|
+
prompt = Prompt(instructions="Summarize.", inputs=["text"], outputs=[PromptOutput(key="summary", description="Summary.")])
|
|
558
|
+
model_list = ModelList(models=[Model(name="gpt-4")])
|
|
559
|
+
agent_data = AgentData(prompt=prompt, llm_config=LlmConfig(max_tokens=2048, timeout=30, sampling=Sampling(temperature=0.7, top_k=50, top_p=0.9)), models=model_list)
|
|
560
|
+
agent = Agent(name="SummaryAgent", access_scope="public", public_name="summary-agent", agent_data=agent_data)
|
|
561
|
+
print(agent.to_dict())
|
|
562
|
+
# Output: Dictionary with agent settings
|
|
563
|
+
|
|
564
|
+
**Via Dictionary (with AgentData as dict)**:
|
|
565
|
+
|
|
566
|
+
.. code-block:: python
|
|
567
|
+
|
|
568
|
+
from pygeai.lab.models import Agent
|
|
569
|
+
|
|
570
|
+
agent = Agent(**{
|
|
571
|
+
"name": "SummaryAgent",
|
|
572
|
+
"accessScope": "public",
|
|
573
|
+
"publicName": "summary-agent",
|
|
574
|
+
"agentData": {
|
|
575
|
+
"prompt": {
|
|
576
|
+
"instructions": "Summarize.",
|
|
577
|
+
"inputs": ["text"],
|
|
578
|
+
"outputs": [{"key": "summary", "description": "Summary."}]
|
|
579
|
+
},
|
|
580
|
+
"llmConfig": {
|
|
581
|
+
"maxTokens": 2048,
|
|
582
|
+
"timeout": 30,
|
|
583
|
+
"sampling": {"temperature": 0.7, "topK": 50, "topP": 0.9}
|
|
584
|
+
},
|
|
585
|
+
"models": [{"name": "gpt-4"}]
|
|
586
|
+
}
|
|
587
|
+
})
|
|
588
|
+
print(agent.to_dict())
|
|
589
|
+
# Output: Dictionary with agent settings
|
|
590
|
+
|
|
591
|
+
**With New Fields (permissions, sharing_scope)**:
|
|
592
|
+
|
|
593
|
+
.. code-block:: python
|
|
594
|
+
|
|
595
|
+
from pygeai.lab.models import Agent, Permission
|
|
596
|
+
|
|
597
|
+
agent = Agent(**{
|
|
598
|
+
"name": "SecureAgent",
|
|
599
|
+
"accessScope": "private",
|
|
600
|
+
"sharingScope": "organization",
|
|
601
|
+
"permissions": {
|
|
602
|
+
"chatSharing": "organization",
|
|
603
|
+
"externalExecution": "none"
|
|
604
|
+
},
|
|
605
|
+
"agentData": {
|
|
606
|
+
"prompt": {"instructions": "Secure assistant"},
|
|
607
|
+
"models": [{"name": "gpt-4"}],
|
|
608
|
+
"properties": [
|
|
609
|
+
{"dataType": "string", "key": "env", "value": "production"},
|
|
610
|
+
{"dataType": "boolean", "key": "logging", "value": "true"}
|
|
611
|
+
]
|
|
612
|
+
}
|
|
613
|
+
})
|
|
614
|
+
print(agent.sharing_scope) # Output: "organization"
|
|
615
|
+
print(agent.permissions.chat_sharing) # Output: "organization"
|
|
616
|
+
print(agent.agent_data.properties[0].key) # Output: "env"
|
|
617
|
+
|
|
618
|
+
|
|
619
|
+
Restrictions and Considerations
|
|
620
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
621
|
+
|
|
622
|
+
- Name is required; avoid special characters.
|
|
623
|
+
- Accepts `agent_data` as a dictionary.
|
|
624
|
+
- Public agents need valid public names.
|
|
625
|
+
- Non-draft agents require full configuration.
|
|
626
|
+
- API sets identifiers automatically.
|
|
627
|
+
|
|
628
|
+
AgentList
|
|
629
|
+
---------
|
|
630
|
+
|
|
631
|
+
Purpose
|
|
632
|
+
~~~~~~~
|
|
633
|
+
|
|
634
|
+
Manages multiple agents, typically from API responses.
|
|
635
|
+
|
|
636
|
+
Usage Examples
|
|
637
|
+
~~~~~~~~~~~~~~
|
|
638
|
+
|
|
639
|
+
**Via Attributes**:
|
|
640
|
+
|
|
641
|
+
.. code-block:: python
|
|
642
|
+
|
|
643
|
+
from pygeai.lab.models import AgentList, Agent
|
|
644
|
+
|
|
645
|
+
agent = Agent(name="Agent1", access_scope="private")
|
|
646
|
+
agent_list = AgentList(agents=[agent])
|
|
647
|
+
print(agent_list.to_dict())
|
|
648
|
+
# Output: List of agent dictionaries
|
|
649
|
+
|
|
650
|
+
**Via Dictionary (with Agents as dicts)**:
|
|
651
|
+
|
|
652
|
+
.. code-block:: python
|
|
653
|
+
|
|
654
|
+
from pygeai.lab.models import AgentList
|
|
655
|
+
|
|
656
|
+
agent_list = AgentList(**{
|
|
657
|
+
"agents": [
|
|
658
|
+
{"name": "Agent1", "accessScope": "private"},
|
|
659
|
+
{"name": "Agent2", "accessScope": "public", "publicName": "agent-two"}
|
|
660
|
+
]
|
|
661
|
+
})
|
|
662
|
+
print(agent_list.to_dict())
|
|
663
|
+
# Output: List of agent dictionaries
|
|
664
|
+
|
|
665
|
+
Restrictions and Considerations
|
|
666
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
667
|
+
|
|
668
|
+
- Agents collection is required; can be empty.
|
|
669
|
+
- Accepts agents as dictionaries.
|
|
670
|
+
- Supports iteration and appending.
|
|
671
|
+
- Useful for bulk agent management.
|
|
672
|
+
|
|
673
|
+
SharingLink
|
|
674
|
+
-----------
|
|
675
|
+
|
|
676
|
+
Purpose
|
|
677
|
+
~~~~~~~
|
|
678
|
+
|
|
679
|
+
Enables agent sharing via links.
|
|
680
|
+
|
|
681
|
+
Usage Examples
|
|
682
|
+
~~~~~~~~~~~~~~
|
|
683
|
+
|
|
684
|
+
**Via Attributes**:
|
|
685
|
+
|
|
686
|
+
.. code-block:: python
|
|
687
|
+
|
|
688
|
+
from pygeai.lab.models import SharingLink
|
|
689
|
+
|
|
690
|
+
link = SharingLink(agent_id="agent-123", api_token="xyz-token", shared_link="https://lab.globant.ai/share/agent-123")
|
|
691
|
+
print(link.to_dict())
|
|
692
|
+
# Output: Dictionary with link details
|
|
693
|
+
|
|
694
|
+
**Via Dictionary**:
|
|
695
|
+
|
|
696
|
+
.. code-block:: python
|
|
697
|
+
|
|
698
|
+
from pygeai.lab.models import SharingLink
|
|
699
|
+
|
|
700
|
+
link = SharingLink(**{
|
|
701
|
+
"agentId": "agent-123",
|
|
702
|
+
"apiToken": "xyz-token",
|
|
703
|
+
"sharedLink": "https://lab.globant.ai/share/agent-123"
|
|
704
|
+
})
|
|
705
|
+
print(link.to_dict())
|
|
706
|
+
# Output: Dictionary with link details
|
|
707
|
+
|
|
708
|
+
Restrictions and Considerations
|
|
709
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
710
|
+
|
|
711
|
+
- All fields are required, set by API.
|
|
712
|
+
- Links must be valid URLs.
|
|
713
|
+
- Secure tokens to prevent leaks.
|
|
714
|
+
- Dictionaries simplify link creation.
|
|
715
|
+
|
|
716
|
+
ToolParameter
|
|
717
|
+
-------------
|
|
718
|
+
|
|
719
|
+
Purpose
|
|
720
|
+
~~~~~~~
|
|
721
|
+
|
|
722
|
+
Defines tool parameters.
|
|
723
|
+
|
|
724
|
+
Usage Examples
|
|
725
|
+
~~~~~~~~~~~~~~
|
|
726
|
+
|
|
727
|
+
**Via Attributes**:
|
|
728
|
+
|
|
729
|
+
.. code-block:: python
|
|
730
|
+
|
|
731
|
+
from pygeai.lab.models import ToolParameter
|
|
732
|
+
|
|
733
|
+
param = ToolParameter(key="api_key", data_type="String", description="API key.", is_required=True)
|
|
734
|
+
print(param.to_dict())
|
|
735
|
+
# Output: Dictionary with parameter details
|
|
736
|
+
|
|
737
|
+
**Via Dictionary**:
|
|
738
|
+
|
|
739
|
+
.. code-block:: python
|
|
740
|
+
|
|
741
|
+
from pygeai.lab.models import ToolParameter
|
|
742
|
+
|
|
743
|
+
param = ToolParameter(**{
|
|
744
|
+
"key": "api_key",
|
|
745
|
+
"dataType": "String",
|
|
746
|
+
"description": "API key.",
|
|
747
|
+
"isRequired": True
|
|
748
|
+
})
|
|
749
|
+
print(param.to_dict())
|
|
750
|
+
# Output: Dictionary with parameter details
|
|
751
|
+
|
|
752
|
+
Restrictions and Considerations
|
|
753
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
754
|
+
|
|
755
|
+
- Core fields are mandatory.
|
|
756
|
+
- Data types must match API expectations.
|
|
757
|
+
- Keys must be unique per tool.
|
|
758
|
+
- Dictionaries streamline parameter setup.
|
|
759
|
+
|
|
760
|
+
ToolMessage
|
|
761
|
+
-----------
|
|
762
|
+
|
|
763
|
+
Purpose
|
|
764
|
+
~~~~~~~
|
|
765
|
+
|
|
766
|
+
Provides tool feedback messages.
|
|
767
|
+
|
|
768
|
+
Usage Examples
|
|
769
|
+
~~~~~~~~~~~~~~
|
|
770
|
+
|
|
771
|
+
**Via Attributes**:
|
|
772
|
+
|
|
773
|
+
.. code-block:: python
|
|
774
|
+
|
|
775
|
+
from pygeai.lab.models import ToolMessage
|
|
776
|
+
|
|
777
|
+
message = ToolMessage(description="Invalid key.", type="error")
|
|
778
|
+
print(message.to_dict())
|
|
779
|
+
# Output: {"description": "Invalid key.", "type": "error"}
|
|
780
|
+
|
|
781
|
+
**Via Dictionary**:
|
|
782
|
+
|
|
783
|
+
.. code-block:: python
|
|
784
|
+
|
|
785
|
+
from pygeai.lab.models import ToolMessage
|
|
786
|
+
|
|
787
|
+
message = ToolMessage(**{
|
|
788
|
+
"description": "Invalid key.",
|
|
789
|
+
"type": "error"
|
|
790
|
+
})
|
|
791
|
+
print(message.to_dict())
|
|
792
|
+
# Output: {"description": "Invalid key.", "type": "error"}
|
|
793
|
+
|
|
794
|
+
Restrictions and Considerations
|
|
795
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
796
|
+
|
|
797
|
+
- Both fields are required.
|
|
798
|
+
- Types are typically "warning" or "error."
|
|
799
|
+
- Keep messages concise.
|
|
800
|
+
- Dictionaries simplify message creation.
|
|
801
|
+
|
|
802
|
+
Tool
|
|
803
|
+
----
|
|
804
|
+
|
|
805
|
+
Purpose
|
|
806
|
+
~~~~~~~
|
|
807
|
+
|
|
808
|
+
Configures tools for agents.
|
|
809
|
+
|
|
810
|
+
Usage Examples
|
|
811
|
+
~~~~~~~~~~~~~~
|
|
812
|
+
|
|
813
|
+
**Via Attributes**:
|
|
814
|
+
|
|
815
|
+
.. code-block:: python
|
|
816
|
+
|
|
817
|
+
from pygeai.lab.models import Tool, ToolParameter
|
|
818
|
+
|
|
819
|
+
param = ToolParameter(key="api_key", data_type="String", description="API key.", is_required=True)
|
|
820
|
+
tool = Tool(name="WeatherTool", description="Fetches weather.", scope="api", parameters=[param])
|
|
821
|
+
print(tool.to_dict())
|
|
822
|
+
# Output: Dictionary with tool settings
|
|
823
|
+
|
|
824
|
+
**Via Dictionary (with Parameters as dicts)**:
|
|
825
|
+
|
|
826
|
+
.. code-block:: python
|
|
827
|
+
|
|
828
|
+
from pygeai.lab.models import Tool
|
|
829
|
+
|
|
830
|
+
tool = Tool(**{
|
|
831
|
+
"name": "WeatherTool",
|
|
832
|
+
"description": "Fetches weather.",
|
|
833
|
+
"scope": "api",
|
|
834
|
+
"parameters": [
|
|
835
|
+
{"key": "api_key", "dataType": "String", "description": "API key.", "isRequired": True}
|
|
836
|
+
]
|
|
837
|
+
})
|
|
838
|
+
print(tool.to_dict())
|
|
839
|
+
# Output: Dictionary with tool settings
|
|
840
|
+
|
|
841
|
+
Restrictions and Considerations
|
|
842
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
843
|
+
|
|
844
|
+
- Name and description are required.
|
|
845
|
+
- Accepts parameters as dictionaries.
|
|
846
|
+
- API tools need valid OpenAPI specs.
|
|
847
|
+
- Public tools require valid public names.
|
|
848
|
+
- Ensure unique parameter keys.
|
|
849
|
+
|
|
850
|
+
ToolList
|
|
851
|
+
--------
|
|
852
|
+
|
|
853
|
+
Purpose
|
|
854
|
+
~~~~~~~
|
|
855
|
+
|
|
856
|
+
Manages multiple tools.
|
|
857
|
+
|
|
858
|
+
Usage Examples
|
|
859
|
+
~~~~~~~~~~~~~~
|
|
860
|
+
|
|
861
|
+
**Via Attributes**:
|
|
862
|
+
|
|
863
|
+
.. code-block:: python
|
|
864
|
+
|
|
865
|
+
from pygeai.lab.models import ToolList, Tool
|
|
866
|
+
|
|
867
|
+
tool = Tool(name="Tool1", description="Tool one.", scope="builtin")
|
|
868
|
+
tool_list = ToolList(tools=[tool])
|
|
869
|
+
print(tool_list.to_dict())
|
|
870
|
+
# Output: Dictionary with tool list
|
|
871
|
+
|
|
872
|
+
**Via Dictionary (with Tools as dicts)**:
|
|
873
|
+
|
|
874
|
+
.. code-block:: python
|
|
875
|
+
|
|
876
|
+
from pygeai.lab.models import ToolList
|
|
877
|
+
|
|
878
|
+
tool_list = ToolList(**{
|
|
879
|
+
"tools": [
|
|
880
|
+
{"name": "Tool1", "description": "Tool one.", "scope": "builtin"}
|
|
881
|
+
]
|
|
882
|
+
})
|
|
883
|
+
print(tool_list.to_dict())
|
|
884
|
+
# Output: Dictionary with tool list
|
|
885
|
+
|
|
886
|
+
Restrictions and Considerations
|
|
887
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
888
|
+
|
|
889
|
+
- Tools collection is required; can be empty.
|
|
890
|
+
- Accepts tools as dictionaries.
|
|
891
|
+
- Supports iteration and appending.
|
|
892
|
+
- Simplifies bulk tool handling.
|
|
893
|
+
|
|
894
|
+
LocalizedDescription
|
|
895
|
+
--------------------
|
|
896
|
+
|
|
897
|
+
Purpose
|
|
898
|
+
~~~~~~~
|
|
899
|
+
|
|
900
|
+
Provides multilingual strategy descriptions.
|
|
901
|
+
|
|
902
|
+
Usage Examples
|
|
903
|
+
~~~~~~~~~~~~~~
|
|
904
|
+
|
|
905
|
+
**Via Attributes**:
|
|
906
|
+
|
|
907
|
+
.. code-block:: python
|
|
908
|
+
|
|
909
|
+
from pygeai.lab.models import LocalizedDescription
|
|
910
|
+
|
|
911
|
+
desc = LocalizedDescription(language="english", description="Creative strategy.")
|
|
912
|
+
print(desc.to_dict())
|
|
913
|
+
# Output: {"language": "english", "description": "Creative strategy."}
|
|
914
|
+
|
|
915
|
+
**Via Dictionary**:
|
|
916
|
+
|
|
917
|
+
.. code-block:: python
|
|
918
|
+
|
|
919
|
+
from pygeai.lab.models import LocalizedDescription
|
|
920
|
+
|
|
921
|
+
desc = LocalizedDescription(**{
|
|
922
|
+
"language": "english",
|
|
923
|
+
"description": "Creative strategy."
|
|
924
|
+
})
|
|
925
|
+
print(desc.to_dict())
|
|
926
|
+
# Output: {"language": "english", "description": "Creative strategy."}
|
|
927
|
+
|
|
928
|
+
Restrictions and Considerations
|
|
929
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
930
|
+
|
|
931
|
+
- Both fields are required.
|
|
932
|
+
- Use standard language names.
|
|
933
|
+
- Dictionaries simplify descriptions.
|
|
934
|
+
- Supports multiple languages.
|
|
935
|
+
|
|
936
|
+
ReasoningStrategy
|
|
937
|
+
-----------------
|
|
938
|
+
|
|
939
|
+
Purpose
|
|
940
|
+
~~~~~~~
|
|
941
|
+
|
|
942
|
+
Guides agent reasoning behavior.
|
|
943
|
+
|
|
944
|
+
Usage Examples
|
|
945
|
+
~~~~~~~~~~~~~~
|
|
946
|
+
|
|
947
|
+
**Via Attributes**:
|
|
948
|
+
|
|
949
|
+
.. code-block:: python
|
|
950
|
+
|
|
951
|
+
from pygeai.lab.models import ReasoningStrategy, LocalizedDescription
|
|
952
|
+
|
|
953
|
+
desc = LocalizedDescription(language="english", description="Creative strategy.")
|
|
954
|
+
strategy = ReasoningStrategy(name="CreativeStrategy", access_scope="public", type="addendum", localized_descriptions=[desc])
|
|
955
|
+
print(strategy.to_dict())
|
|
956
|
+
# Output: Dictionary with strategy settings
|
|
957
|
+
|
|
958
|
+
**Via Dictionary (with Descriptions as dicts)**:
|
|
959
|
+
|
|
960
|
+
.. code-block:: python
|
|
961
|
+
|
|
962
|
+
from pygeai.lab.models import ReasoningStrategy
|
|
963
|
+
|
|
964
|
+
strategy = ReasoningStrategy(**{
|
|
965
|
+
"name": "CreativeStrategy",
|
|
966
|
+
"accessScope": "public",
|
|
967
|
+
"type": "addendum",
|
|
968
|
+
"localizedDescriptions": [
|
|
969
|
+
{"language": "english", "description": "Creative strategy."}
|
|
970
|
+
]
|
|
971
|
+
})
|
|
972
|
+
print(strategy.to_dict())
|
|
973
|
+
# Output: Dictionary with strategy settings
|
|
974
|
+
|
|
975
|
+
Restrictions and Considerations
|
|
976
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
977
|
+
|
|
978
|
+
- Name, scope, and type are required.
|
|
979
|
+
- Accepts descriptions as dictionaries.
|
|
980
|
+
- Scope and type depend on Lab values.
|
|
981
|
+
- API sets identifiers.
|
|
982
|
+
|
|
983
|
+
ReasoningStrategyList
|
|
984
|
+
---------------------
|
|
985
|
+
|
|
986
|
+
Purpose
|
|
987
|
+
~~~~~~~
|
|
988
|
+
|
|
989
|
+
Manages multiple reasoning strategies.
|
|
990
|
+
|
|
991
|
+
Usage Examples
|
|
992
|
+
~~~~~~~~~~~~~~
|
|
993
|
+
|
|
994
|
+
**Via Attributes**:
|
|
995
|
+
|
|
996
|
+
.. code-block:: python
|
|
997
|
+
|
|
998
|
+
from pygeai.lab.models import ReasoningStrategyList, ReasoningStrategy
|
|
999
|
+
|
|
1000
|
+
strategy = ReasoningStrategy(name="Strategy1", access_scope="private", type="addendum")
|
|
1001
|
+
strategy_list = ReasoningStrategyList(strategies=[strategy])
|
|
1002
|
+
print(strategy_list.to_dict())
|
|
1003
|
+
# Output: List of strategy dictionaries
|
|
1004
|
+
|
|
1005
|
+
**Via Dictionary (with Strategies as dicts)**:
|
|
1006
|
+
|
|
1007
|
+
.. code-block:: python
|
|
1008
|
+
|
|
1009
|
+
from pygeai.lab.models import ReasoningStrategyList
|
|
1010
|
+
|
|
1011
|
+
strategy_list = ReasoningStrategyList(**{
|
|
1012
|
+
"strategies": [
|
|
1013
|
+
{"name": "Strategy1", "accessScope": "private", "type": "addendum"}
|
|
1014
|
+
]
|
|
1015
|
+
})
|
|
1016
|
+
print(strategy_list.to_dict())
|
|
1017
|
+
# Output: List of strategy dictionaries
|
|
1018
|
+
|
|
1019
|
+
Restrictions and Considerations
|
|
1020
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
1021
|
+
|
|
1022
|
+
- Strategies collection is required; can be empty.
|
|
1023
|
+
- Accepts strategies as dictionaries.
|
|
1024
|
+
- Supports iteration and appending.
|
|
1025
|
+
|
|
1026
|
+
KnowledgeBase
|
|
1027
|
+
-------------
|
|
1028
|
+
|
|
1029
|
+
Purpose
|
|
1030
|
+
~~~~~~~
|
|
1031
|
+
|
|
1032
|
+
Manages process artifacts.
|
|
1033
|
+
|
|
1034
|
+
Usage Examples
|
|
1035
|
+
~~~~~~~~~~~~~~
|
|
1036
|
+
|
|
1037
|
+
**Via Attributes**:
|
|
1038
|
+
|
|
1039
|
+
.. code-block:: python
|
|
1040
|
+
|
|
1041
|
+
from pygeai.lab.models import KnowledgeBase
|
|
1042
|
+
|
|
1043
|
+
kb = KnowledgeBase(name="DocsKB", artifact_type_name=["document"])
|
|
1044
|
+
print(kb.to_dict())
|
|
1045
|
+
# Output: Dictionary with knowledge base settings
|
|
1046
|
+
|
|
1047
|
+
**Via Dictionary**:
|
|
1048
|
+
|
|
1049
|
+
.. code-block:: python
|
|
1050
|
+
|
|
1051
|
+
from pygeai.lab.models import KnowledgeBase
|
|
1052
|
+
|
|
1053
|
+
kb = KnowledgeBase(**{
|
|
1054
|
+
"name": "DocsKB",
|
|
1055
|
+
"artifactTypeName": ["document"]
|
|
1056
|
+
})
|
|
1057
|
+
print(kb.to_dict())
|
|
1058
|
+
# Output: Dictionary with knowledge base settings
|
|
1059
|
+
|
|
1060
|
+
Restrictions and Considerations
|
|
1061
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
1062
|
+
|
|
1063
|
+
- Name and artifact types are required.
|
|
1064
|
+
- Dictionaries simplify setup.
|
|
1065
|
+
- API sets identifiers.
|
|
1066
|
+
- Ensure valid artifact types.
|
|
1067
|
+
|
|
1068
|
+
AgenticActivity
|
|
1069
|
+
---------------
|
|
1070
|
+
|
|
1071
|
+
Purpose
|
|
1072
|
+
~~~~~~~
|
|
1073
|
+
|
|
1074
|
+
Links tasks and agents in processes.
|
|
1075
|
+
|
|
1076
|
+
Usage Examples
|
|
1077
|
+
~~~~~~~~~~~~~~
|
|
1078
|
+
|
|
1079
|
+
**Via Attributes**:
|
|
1080
|
+
|
|
1081
|
+
.. code-block:: python
|
|
1082
|
+
|
|
1083
|
+
from pygeai.lab.models import AgenticActivity
|
|
1084
|
+
|
|
1085
|
+
activity = AgenticActivity(key="act1", name="Summarize", task_name="SummaryTask", agent_name="SummaryAgent", agent_revision_id=1)
|
|
1086
|
+
print(activity.to_dict())
|
|
1087
|
+
# Output: Dictionary with activity settings
|
|
1088
|
+
|
|
1089
|
+
**Via Dictionary**:
|
|
1090
|
+
|
|
1091
|
+
.. code-block:: python
|
|
1092
|
+
|
|
1093
|
+
from pygeai.lab.models import AgenticActivity
|
|
1094
|
+
|
|
1095
|
+
activity = AgenticActivity(**{
|
|
1096
|
+
"key": "act1",
|
|
1097
|
+
"name": "Summarize",
|
|
1098
|
+
"taskName": "SummaryTask",
|
|
1099
|
+
"agentName": "SummaryAgent",
|
|
1100
|
+
"agentRevisionId": 1
|
|
1101
|
+
})
|
|
1102
|
+
print(activity.to_dict())
|
|
1103
|
+
# Output: Dictionary with activity settings
|
|
1104
|
+
|
|
1105
|
+
Restrictions and Considerations
|
|
1106
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
1107
|
+
|
|
1108
|
+
- Core fields are required.
|
|
1109
|
+
- Keys must be unique.
|
|
1110
|
+
- Dictionaries streamline activity setup.
|
|
1111
|
+
- Reference existing tasks and agents.
|
|
1112
|
+
|
|
1113
|
+
ArtifactSignal
|
|
1114
|
+
--------------
|
|
1115
|
+
|
|
1116
|
+
Purpose
|
|
1117
|
+
~~~~~~~
|
|
1118
|
+
|
|
1119
|
+
Triggers process actions via artifacts.
|
|
1120
|
+
|
|
1121
|
+
Usage Examples
|
|
1122
|
+
~~~~~~~~~~~~~~
|
|
1123
|
+
|
|
1124
|
+
**Via Attributes**:
|
|
1125
|
+
|
|
1126
|
+
.. code-block:: python
|
|
1127
|
+
|
|
1128
|
+
from pygeai.lab.models import ArtifactSignal
|
|
1129
|
+
|
|
1130
|
+
signal = ArtifactSignal(key="sig1", name="DocSignal", handling_type="C", artifact_type_name=["document"])
|
|
1131
|
+
print(signal.to_dict())
|
|
1132
|
+
# Output: Dictionary with signal settings
|
|
1133
|
+
|
|
1134
|
+
**Via Dictionary**:
|
|
1135
|
+
|
|
1136
|
+
.. code-block:: python
|
|
1137
|
+
|
|
1138
|
+
from pygeai.lab.models import ArtifactSignal
|
|
1139
|
+
|
|
1140
|
+
signal = ArtifactSignal(**{
|
|
1141
|
+
"key": "sig1",
|
|
1142
|
+
"name": "DocSignal",
|
|
1143
|
+
"handlingType": "C",
|
|
1144
|
+
"artifactTypeName": ["document"]
|
|
1145
|
+
})
|
|
1146
|
+
print(signal.to_dict())
|
|
1147
|
+
# Output: Dictionary with signal settings
|
|
1148
|
+
|
|
1149
|
+
Restrictions and Considerations
|
|
1150
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
1151
|
+
|
|
1152
|
+
- All fields are required.
|
|
1153
|
+
- Keys must be unique.
|
|
1154
|
+
- Dictionaries simplify signal setup.
|
|
1155
|
+
- Handling types depend on Lab engine.
|
|
1156
|
+
|
|
1157
|
+
UserSignal
|
|
1158
|
+
----------
|
|
1159
|
+
|
|
1160
|
+
Purpose
|
|
1161
|
+
~~~~~~~
|
|
1162
|
+
|
|
1163
|
+
Enables user-driven process signals.
|
|
1164
|
+
|
|
1165
|
+
Usage Examples
|
|
1166
|
+
~~~~~~~~~~~~~~
|
|
1167
|
+
|
|
1168
|
+
**Via Attributes**:
|
|
1169
|
+
|
|
1170
|
+
.. code-block:: python
|
|
1171
|
+
|
|
1172
|
+
from pygeai.lab.models import UserSignal
|
|
1173
|
+
|
|
1174
|
+
signal = UserSignal(key="user1", name="UserInput")
|
|
1175
|
+
print(signal.to_dict())
|
|
1176
|
+
# Output: {"key": "user1", "name": "UserInput"}
|
|
1177
|
+
|
|
1178
|
+
**Via Dictionary**:
|
|
1179
|
+
|
|
1180
|
+
.. code-block:: python
|
|
1181
|
+
|
|
1182
|
+
from pygeai.lab.models import UserSignal
|
|
1183
|
+
|
|
1184
|
+
signal = UserSignal(**{
|
|
1185
|
+
"key": "user1",
|
|
1186
|
+
"name": "UserInput"
|
|
1187
|
+
})
|
|
1188
|
+
print(signal.to_dict())
|
|
1189
|
+
# Output: {"key": "user1", "name": "UserInput"}
|
|
1190
|
+
|
|
1191
|
+
Restrictions and Considerations
|
|
1192
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
1193
|
+
|
|
1194
|
+
- Both fields are required.
|
|
1195
|
+
- Keys must be unique.
|
|
1196
|
+
- Dictionaries simplify setup.
|
|
1197
|
+
- Use descriptive names.
|
|
1198
|
+
|
|
1199
|
+
Event
|
|
1200
|
+
-----
|
|
1201
|
+
|
|
1202
|
+
Purpose
|
|
1203
|
+
~~~~~~~
|
|
1204
|
+
|
|
1205
|
+
Marks process start or end points.
|
|
1206
|
+
|
|
1207
|
+
Usage Examples
|
|
1208
|
+
~~~~~~~~~~~~~~
|
|
1209
|
+
|
|
1210
|
+
**Via Attributes**:
|
|
1211
|
+
|
|
1212
|
+
.. code-block:: python
|
|
1213
|
+
|
|
1214
|
+
from pygeai.lab.models import Event
|
|
1215
|
+
|
|
1216
|
+
event = Event(key="start1", name="ProcessStart")
|
|
1217
|
+
print(event.to_dict())
|
|
1218
|
+
# Output: {"key": "start1", "name": "ProcessStart"}
|
|
1219
|
+
|
|
1220
|
+
**Via Dictionary**:
|
|
1221
|
+
|
|
1222
|
+
.. code-block:: python
|
|
1223
|
+
|
|
1224
|
+
from pygeai.lab.models import Event
|
|
1225
|
+
|
|
1226
|
+
event = Event(**{
|
|
1227
|
+
"key": "start1",
|
|
1228
|
+
"name": "ProcessStart"
|
|
1229
|
+
})
|
|
1230
|
+
print(event.to_dict())
|
|
1231
|
+
# Output: {"key": "start1", "name": "ProcessStart"}
|
|
1232
|
+
|
|
1233
|
+
Restrictions and Considerations
|
|
1234
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
1235
|
+
|
|
1236
|
+
- Both fields are required.
|
|
1237
|
+
- Keys must be unique.
|
|
1238
|
+
- Dictionaries simplify event setup.
|
|
1239
|
+
- Ensure flow connectivity.
|
|
1240
|
+
|
|
1241
|
+
SequenceFlow
|
|
1242
|
+
------------
|
|
1243
|
+
|
|
1244
|
+
Purpose
|
|
1245
|
+
~~~~~~~
|
|
1246
|
+
|
|
1247
|
+
Connects process elements.
|
|
1248
|
+
|
|
1249
|
+
Usage Examples
|
|
1250
|
+
~~~~~~~~~~~~~~
|
|
1251
|
+
|
|
1252
|
+
**Via Attributes**:
|
|
1253
|
+
|
|
1254
|
+
.. code-block:: python
|
|
1255
|
+
|
|
1256
|
+
from pygeai.lab.models import SequenceFlow
|
|
1257
|
+
|
|
1258
|
+
flow = SequenceFlow(key="flow1", source_key="start1", target_key="act1")
|
|
1259
|
+
print(flow.to_dict())
|
|
1260
|
+
# Output: Dictionary with flow settings
|
|
1261
|
+
|
|
1262
|
+
**Via Dictionary**:
|
|
1263
|
+
|
|
1264
|
+
.. code-block:: python
|
|
1265
|
+
|
|
1266
|
+
from pygeai.lab.models import SequenceFlow
|
|
1267
|
+
|
|
1268
|
+
flow = SequenceFlow(**{
|
|
1269
|
+
"key": "flow1",
|
|
1270
|
+
"sourceKey": "start1",
|
|
1271
|
+
"targetKey": "act1"
|
|
1272
|
+
})
|
|
1273
|
+
print(flow.to_dict())
|
|
1274
|
+
# Output: Dictionary with flow settings
|
|
1275
|
+
|
|
1276
|
+
Restrictions and Considerations
|
|
1277
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
1278
|
+
|
|
1279
|
+
- All fields are required.
|
|
1280
|
+
- Keys must be unique.
|
|
1281
|
+
- Dictionaries simplify flow setup.
|
|
1282
|
+
- Reference valid elements.
|
|
1283
|
+
|
|
1284
|
+
Variable
|
|
1285
|
+
--------
|
|
1286
|
+
|
|
1287
|
+
Purpose
|
|
1288
|
+
~~~~~~~
|
|
1289
|
+
|
|
1290
|
+
Stores dynamic process data.
|
|
1291
|
+
|
|
1292
|
+
Usage Examples
|
|
1293
|
+
~~~~~~~~~~~~~~
|
|
1294
|
+
|
|
1295
|
+
**Via Attributes**:
|
|
1296
|
+
|
|
1297
|
+
.. code-block:: python
|
|
1298
|
+
|
|
1299
|
+
from pygeai.lab.models import Variable
|
|
1300
|
+
|
|
1301
|
+
var = Variable(key="input_text", value="Sample text")
|
|
1302
|
+
print(var.to_dict())
|
|
1303
|
+
# Output: {"key": "input_text", "value": "Sample text"}
|
|
1304
|
+
|
|
1305
|
+
**Via Dictionary**:
|
|
1306
|
+
|
|
1307
|
+
.. code-block:: python
|
|
1308
|
+
|
|
1309
|
+
from pygeai.lab.models import Variable
|
|
1310
|
+
|
|
1311
|
+
var = Variable(**{
|
|
1312
|
+
"key": "input_text",
|
|
1313
|
+
"value": "Sample text"
|
|
1314
|
+
})
|
|
1315
|
+
print(var.to_dict())
|
|
1316
|
+
# Output: {"key": "input_text", "value": "Sample text"}
|
|
1317
|
+
|
|
1318
|
+
Restrictions and Considerations
|
|
1319
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
1320
|
+
|
|
1321
|
+
- Both fields are required.
|
|
1322
|
+
- Keys should be unique.
|
|
1323
|
+
- Dictionaries simplify variable setup.
|
|
1324
|
+
- Values must be strings.
|
|
1325
|
+
|
|
1326
|
+
VariableList
|
|
1327
|
+
------------
|
|
1328
|
+
|
|
1329
|
+
Purpose
|
|
1330
|
+
~~~~~~~
|
|
1331
|
+
|
|
1332
|
+
Manages process variables.
|
|
1333
|
+
|
|
1334
|
+
Usage Examples
|
|
1335
|
+
~~~~~~~~~~~~~~
|
|
1336
|
+
|
|
1337
|
+
**Via Attributes**:
|
|
1338
|
+
|
|
1339
|
+
.. code-block:: python
|
|
1340
|
+
|
|
1341
|
+
from pygeai.lab.models import VariableList, Variable
|
|
1342
|
+
|
|
1343
|
+
var = Variable(key="input_text", value="Sample text")
|
|
1344
|
+
var_list = VariableList(variables=[var])
|
|
1345
|
+
print(var_list.to_dict())
|
|
1346
|
+
# Output: List of variable dictionaries
|
|
1347
|
+
|
|
1348
|
+
**Via Dictionary (with Variables as dicts)**:
|
|
1349
|
+
|
|
1350
|
+
.. code-block:: python
|
|
1351
|
+
|
|
1352
|
+
from pygeai.lab.models import VariableList
|
|
1353
|
+
|
|
1354
|
+
var_list = VariableList(**{
|
|
1355
|
+
"variables": [
|
|
1356
|
+
{"key": "input_text", "value": "Sample text"}
|
|
1357
|
+
]
|
|
1358
|
+
})
|
|
1359
|
+
print(var_list.to_dict())
|
|
1360
|
+
# Output: List of variable dictionaries
|
|
1361
|
+
|
|
1362
|
+
Restrictions and Considerations
|
|
1363
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
1364
|
+
|
|
1365
|
+
- Variables collection is optional; defaults to empty.
|
|
1366
|
+
- Accepts variables as dictionaries.
|
|
1367
|
+
- Supports iteration and appending.
|
|
1368
|
+
|
|
1369
|
+
AgenticProcess
|
|
1370
|
+
--------------
|
|
1371
|
+
|
|
1372
|
+
Purpose
|
|
1373
|
+
~~~~~~~
|
|
1374
|
+
|
|
1375
|
+
Orchestrates process workflows.
|
|
1376
|
+
|
|
1377
|
+
Usage Examples
|
|
1378
|
+
~~~~~~~~~~~~~~
|
|
1379
|
+
|
|
1380
|
+
**Via Attributes**:
|
|
1381
|
+
|
|
1382
|
+
.. code-block:: python
|
|
1383
|
+
|
|
1384
|
+
from pygeai.lab.models import AgenticProcess, AgenticActivity, Event, SequenceFlow
|
|
1385
|
+
|
|
1386
|
+
activity = AgenticActivity(key="act1", name="Summarize", task_name="SummaryTask", agent_name="SummaryAgent", agent_revision_id=1)
|
|
1387
|
+
start_event = Event(key="start1", name="Start")
|
|
1388
|
+
flow = SequenceFlow(key="flow1", source_key="start1", target_key="act1")
|
|
1389
|
+
process = AgenticProcess(name="SummaryProcess", agentic_activities=[activity], start_event=start_event, sequence_flows=[flow])
|
|
1390
|
+
print(process.to_dict())
|
|
1391
|
+
# Output: Dictionary with process settings
|
|
1392
|
+
|
|
1393
|
+
**Via Dictionary (with Activities, Event, Flows as dicts)**:
|
|
1394
|
+
|
|
1395
|
+
.. code-block:: python
|
|
1396
|
+
|
|
1397
|
+
from pygeai.lab.models import AgenticProcess
|
|
1398
|
+
|
|
1399
|
+
process = AgenticProcess(**{
|
|
1400
|
+
"name": "SummaryProcess",
|
|
1401
|
+
"agenticActivities": [
|
|
1402
|
+
{
|
|
1403
|
+
"key": "act1",
|
|
1404
|
+
"name": "Summarize",
|
|
1405
|
+
"taskName": "SummaryTask",
|
|
1406
|
+
"agentName": "SummaryAgent",
|
|
1407
|
+
"agentRevisionId": 1
|
|
1408
|
+
}
|
|
1409
|
+
],
|
|
1410
|
+
"startEvent": {"key": "start1", "name": "Start"},
|
|
1411
|
+
"sequenceFlows": [
|
|
1412
|
+
{"key": "flow1", "sourceKey": "start1", "targetKey": "act1"}
|
|
1413
|
+
]
|
|
1414
|
+
})
|
|
1415
|
+
print(process.to_dict())
|
|
1416
|
+
# Output: Dictionary with process settings
|
|
1417
|
+
|
|
1418
|
+
Restrictions and Considerations
|
|
1419
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
1420
|
+
|
|
1421
|
+
- Name is required; avoid special characters.
|
|
1422
|
+
- Accepts activities, events, and flows as dictionaries.
|
|
1423
|
+
- Flows must reference valid keys.
|
|
1424
|
+
- API sets identifiers.
|
|
1425
|
+
- Ensure valid process structure.
|
|
1426
|
+
|
|
1427
|
+
ArtifactType
|
|
1428
|
+
------------
|
|
1429
|
+
|
|
1430
|
+
Purpose
|
|
1431
|
+
~~~~~~~
|
|
1432
|
+
|
|
1433
|
+
Defines task artifacts.
|
|
1434
|
+
|
|
1435
|
+
Usage Examples
|
|
1436
|
+
~~~~~~~~~~~~~~
|
|
1437
|
+
|
|
1438
|
+
**Via Attributes**:
|
|
1439
|
+
|
|
1440
|
+
.. code-block:: python
|
|
1441
|
+
|
|
1442
|
+
from pygeai.lab.models import ArtifactType
|
|
1443
|
+
|
|
1444
|
+
artifact = ArtifactType(name="document", usage_type="input")
|
|
1445
|
+
print(artifact.to_dict())
|
|
1446
|
+
# Output: Dictionary with artifact settings
|
|
1447
|
+
|
|
1448
|
+
**Via Dictionary**:
|
|
1449
|
+
|
|
1450
|
+
.. code-block:: python
|
|
1451
|
+
|
|
1452
|
+
from pygeai.lab.models import ArtifactType
|
|
1453
|
+
|
|
1454
|
+
artifact = ArtifactType(**{
|
|
1455
|
+
"name": "document",
|
|
1456
|
+
"usageType": "input"
|
|
1457
|
+
})
|
|
1458
|
+
print(artifact.to_dict())
|
|
1459
|
+
# Output: Dictionary with artifact settings
|
|
1460
|
+
|
|
1461
|
+
Restrictions and Considerations
|
|
1462
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
1463
|
+
|
|
1464
|
+
- Name and usage type are required.
|
|
1465
|
+
- Usage type is "input" or "output."
|
|
1466
|
+
- Dictionaries simplify artifact setup.
|
|
1467
|
+
- Variable keys have length limits.
|
|
1468
|
+
|
|
1469
|
+
ArtifactTypeList
|
|
1470
|
+
----------------
|
|
1471
|
+
|
|
1472
|
+
Purpose
|
|
1473
|
+
~~~~~~~
|
|
1474
|
+
|
|
1475
|
+
Manages task artifact types.
|
|
1476
|
+
|
|
1477
|
+
Usage Examples
|
|
1478
|
+
~~~~~~~~~~~~~~
|
|
1479
|
+
|
|
1480
|
+
**Via Attributes**:
|
|
1481
|
+
|
|
1482
|
+
.. code-block:: python
|
|
1483
|
+
|
|
1484
|
+
from pygeai.lab.models import ArtifactTypeList, ArtifactType
|
|
1485
|
+
|
|
1486
|
+
artifact = ArtifactType(name="document", usage_type="input")
|
|
1487
|
+
artifact_list = ArtifactTypeList(artifact_types=[artifact])
|
|
1488
|
+
print(artifact_list.to_dict())
|
|
1489
|
+
# Output: List of artifact dictionaries
|
|
1490
|
+
|
|
1491
|
+
**Via Dictionary (with ArtifactTypes as dicts)**:
|
|
1492
|
+
|
|
1493
|
+
.. code-block:: python
|
|
1494
|
+
|
|
1495
|
+
from pygeai.lab.models import ArtifactTypeList
|
|
1496
|
+
|
|
1497
|
+
artifact_list = ArtifactTypeList(**{
|
|
1498
|
+
"artifact_types": [
|
|
1499
|
+
{"name": "document", "usageType": "input"}
|
|
1500
|
+
]
|
|
1501
|
+
})
|
|
1502
|
+
print(artifact_list.to_dict())
|
|
1503
|
+
# Output: List of artifact dictionaries
|
|
1504
|
+
|
|
1505
|
+
Restrictions and Considerations
|
|
1506
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
1507
|
+
|
|
1508
|
+
- Artifact types collection is optional; defaults to empty.
|
|
1509
|
+
- Accepts artifact types as dictionaries.
|
|
1510
|
+
- Supports iteration and appending.
|
|
1511
|
+
|
|
1512
|
+
Task
|
|
1513
|
+
----
|
|
1514
|
+
|
|
1515
|
+
Purpose
|
|
1516
|
+
~~~~~~~
|
|
1517
|
+
|
|
1518
|
+
Configures agent tasks.
|
|
1519
|
+
|
|
1520
|
+
Usage Examples
|
|
1521
|
+
~~~~~~~~~~~~~~
|
|
1522
|
+
|
|
1523
|
+
**Via Attributes**:
|
|
1524
|
+
|
|
1525
|
+
.. code-block:: python
|
|
1526
|
+
|
|
1527
|
+
from pygeai.lab.models import Task, Prompt, PromptOutput, ArtifactTypeList, ArtifactType
|
|
1528
|
+
|
|
1529
|
+
prompt = Prompt(instructions="Summarize.", inputs=["text"], outputs=[PromptOutput(key="summary", description="Summary.")])
|
|
1530
|
+
artifact = ArtifactType(name="document", usage_type="input")
|
|
1531
|
+
task = Task(name="SummaryTask", prompt_data=prompt, artifact_types=ArtifactTypeList(artifact_types=[artifact]))
|
|
1532
|
+
print(task.to_dict())
|
|
1533
|
+
# Output: Dictionary with task settings
|
|
1534
|
+
|
|
1535
|
+
**Via Dictionary (with Prompt, ArtifactTypes as dicts)**:
|
|
1536
|
+
|
|
1537
|
+
.. code-block:: python
|
|
1538
|
+
|
|
1539
|
+
from pygeai.lab.models import Task
|
|
1540
|
+
|
|
1541
|
+
task = Task(**{
|
|
1542
|
+
"name": "SummaryTask",
|
|
1543
|
+
"promptData": {
|
|
1544
|
+
"instructions": "Summarize.",
|
|
1545
|
+
"inputs": ["text"],
|
|
1546
|
+
"outputs": [{"key": "summary", "description": "Summary."}]
|
|
1547
|
+
},
|
|
1548
|
+
"artifactTypes": [
|
|
1549
|
+
{"name": "document", "usageType": "input"}
|
|
1550
|
+
]
|
|
1551
|
+
})
|
|
1552
|
+
print(task.to_dict())
|
|
1553
|
+
# Output: Dictionary with task settings
|
|
1554
|
+
|
|
1555
|
+
Restrictions and Considerations
|
|
1556
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
1557
|
+
|
|
1558
|
+
- Name is required; avoid special characters.
|
|
1559
|
+
- Accepts prompt and artifact types as dictionaries.
|
|
1560
|
+
- Artifact types must use valid usage types.
|
|
1561
|
+
- Prompt is optional but recommended.
|
|
1562
|
+
|
|
1563
|
+
AgenticProcessList
|
|
1564
|
+
------------------
|
|
1565
|
+
|
|
1566
|
+
Purpose
|
|
1567
|
+
~~~~~~~
|
|
1568
|
+
|
|
1569
|
+
Manages multiple processes.
|
|
1570
|
+
|
|
1571
|
+
Usage Examples
|
|
1572
|
+
~~~~~~~~~~~~~~
|
|
1573
|
+
|
|
1574
|
+
**Via Attributes**:
|
|
1575
|
+
|
|
1576
|
+
.. code-block:: python
|
|
1577
|
+
|
|
1578
|
+
from pygeai.lab.models import AgenticProcessList, AgenticProcess
|
|
1579
|
+
|
|
1580
|
+
process = AgenticProcess(name="Process1")
|
|
1581
|
+
process_list = AgenticProcessList(processes=[process])
|
|
1582
|
+
print(process_list.to_dict())
|
|
1583
|
+
# Output: Dictionary with process list
|
|
1584
|
+
|
|
1585
|
+
**Via Dictionary (with Processes as dicts)**:
|
|
1586
|
+
|
|
1587
|
+
.. code-block:: python
|
|
1588
|
+
|
|
1589
|
+
from pygeai.lab.models import AgenticProcessList
|
|
1590
|
+
|
|
1591
|
+
process_list = AgenticProcessList(**{
|
|
1592
|
+
"processes": [
|
|
1593
|
+
{"name": "Process1"}
|
|
1594
|
+
]
|
|
1595
|
+
})
|
|
1596
|
+
print(process_list.to_dict())
|
|
1597
|
+
# Output: Dictionary with process list
|
|
1598
|
+
|
|
1599
|
+
Restrictions and Considerations
|
|
1600
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
1601
|
+
|
|
1602
|
+
- Processes collection is required; can be empty.
|
|
1603
|
+
- Accepts processes as dictionaries.
|
|
1604
|
+
- Supports iteration and appending.
|
|
1605
|
+
|
|
1606
|
+
TaskList
|
|
1607
|
+
--------
|
|
1608
|
+
|
|
1609
|
+
Purpose
|
|
1610
|
+
~~~~~~~
|
|
1611
|
+
|
|
1612
|
+
Manages multiple tasks.
|
|
1613
|
+
|
|
1614
|
+
Usage Examples
|
|
1615
|
+
~~~~~~~~~~~~~~
|
|
1616
|
+
|
|
1617
|
+
**Via Attributes**:
|
|
1618
|
+
|
|
1619
|
+
.. code-block:: python
|
|
1620
|
+
|
|
1621
|
+
from pygeai.lab.models import TaskList, Task
|
|
1622
|
+
|
|
1623
|
+
task = Task(name="Task1")
|
|
1624
|
+
task_list = TaskList(tasks=[task])
|
|
1625
|
+
print(task_list.to_dict())
|
|
1626
|
+
# Output: List of task dictionaries
|
|
1627
|
+
|
|
1628
|
+
**Via Dictionary (with Tasks as dicts)**:
|
|
1629
|
+
|
|
1630
|
+
.. code-block:: python
|
|
1631
|
+
|
|
1632
|
+
from pygeai.lab.models import TaskList
|
|
1633
|
+
|
|
1634
|
+
task_list = TaskList(**{
|
|
1635
|
+
"tasks": [
|
|
1636
|
+
{"name": "Task1"}
|
|
1637
|
+
]
|
|
1638
|
+
})
|
|
1639
|
+
print(task_list.to_dict())
|
|
1640
|
+
# Output: List of task dictionaries
|
|
1641
|
+
|
|
1642
|
+
Restrictions and Considerations
|
|
1643
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
1644
|
+
|
|
1645
|
+
- Tasks collection is required; can be empty.
|
|
1646
|
+
- Accepts tasks as dictionaries.
|
|
1647
|
+
- Supports iteration and appending.
|
|
1648
|
+
|
|
1649
|
+
ProcessInstance
|
|
1650
|
+
---------------
|
|
1651
|
+
|
|
1652
|
+
Purpose
|
|
1653
|
+
~~~~~~~
|
|
1654
|
+
|
|
1655
|
+
Tracks running process instances.
|
|
1656
|
+
|
|
1657
|
+
Usage Examples
|
|
1658
|
+
~~~~~~~~~~~~~~
|
|
1659
|
+
|
|
1660
|
+
**Via Attributes**:
|
|
1661
|
+
|
|
1662
|
+
.. code-block:: python
|
|
1663
|
+
|
|
1664
|
+
from pygeai.lab.models import ProcessInstance, AgenticProcess
|
|
1665
|
+
|
|
1666
|
+
process = AgenticProcess(name="SummaryProcess")
|
|
1667
|
+
instance = ProcessInstance(process=process, subject="Summary")
|
|
1668
|
+
print(instance.to_dict())
|
|
1669
|
+
# Output: Dictionary with instance settings
|
|
1670
|
+
|
|
1671
|
+
**Via Dictionary (with Process as dict)**:
|
|
1672
|
+
|
|
1673
|
+
.. code-block:: python
|
|
1674
|
+
|
|
1675
|
+
from pygeai.lab.models import ProcessInstance
|
|
1676
|
+
|
|
1677
|
+
instance = ProcessInstance(**{
|
|
1678
|
+
"process": {"name": "SummaryProcess"},
|
|
1679
|
+
"subject": "Summary"
|
|
1680
|
+
})
|
|
1681
|
+
print(instance.to_dict())
|
|
1682
|
+
# Output: Dictionary with instance settings
|
|
1683
|
+
|
|
1684
|
+
Restrictions and Considerations
|
|
1685
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
1686
|
+
|
|
1687
|
+
- Process and subject are required.
|
|
1688
|
+
- Accepts process as a dictionary.
|
|
1689
|
+
- API sets identifiers.
|
|
1690
|
+
- Align variables with process needs.
|
|
1691
|
+
|
|
1692
|
+
ProcessInstanceList
|
|
1693
|
+
-------------------
|
|
1694
|
+
|
|
1695
|
+
Purpose
|
|
1696
|
+
~~~~~~~
|
|
1697
|
+
|
|
1698
|
+
Manages multiple process instances.
|
|
1699
|
+
|
|
1700
|
+
Usage Examples
|
|
1701
|
+
~~~~~~~~~~~~~~
|
|
1702
|
+
|
|
1703
|
+
**Via Attributes**:
|
|
1704
|
+
|
|
1705
|
+
.. code-block:: python
|
|
1706
|
+
|
|
1707
|
+
from pygeai.lab.models import ProcessInstanceList, ProcessInstance, AgenticProcess
|
|
1708
|
+
|
|
1709
|
+
process = AgenticProcess(name="Process1")
|
|
1710
|
+
instance = ProcessInstance(process=process, subject="Instance1")
|
|
1711
|
+
instance_list = ProcessInstanceList(instances=[instance])
|
|
1712
|
+
print(instance_list.to_dict())
|
|
1713
|
+
# Output: List of instance dictionaries
|
|
1714
|
+
|
|
1715
|
+
**Via Dictionary (with Instances as dicts)**:
|
|
1716
|
+
|
|
1717
|
+
.. code-block:: python
|
|
1718
|
+
|
|
1719
|
+
from pygeai.lab.models import ProcessInstanceList
|
|
1720
|
+
|
|
1721
|
+
instance_list = ProcessInstanceList(**{
|
|
1722
|
+
"instances": [
|
|
1723
|
+
{"process": {"name": "Process1"}, "subject": "Instance1"}
|
|
1724
|
+
]
|
|
1725
|
+
})
|
|
1726
|
+
print(instance_list.to_dict())
|
|
1727
|
+
# Output: List of instance dictionaries
|
|
1728
|
+
|
|
1729
|
+
Restrictions and Considerations
|
|
1730
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
1731
|
+
|
|
1732
|
+
- Instances collection is required; can be empty.
|
|
1733
|
+
- Accepts instances as dictionaries.
|
|
1734
|
+
- Supports iteration and appending.
|