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,738 @@
|
|
|
1
|
+
Project Management
|
|
2
|
+
==================
|
|
3
|
+
|
|
4
|
+
The API Reference provides a comprehensive set of tools for managing projects within your organization. You can perform the following actions:
|
|
5
|
+
* Create project: Creates a new project within your organization.
|
|
6
|
+
* Get project data: Retrieves detailed information about a specific project using its Id.
|
|
7
|
+
* Delete project: Deletes an existing project.
|
|
8
|
+
* List projects: Retrieves a list of all projects within your organization. You can choose to retrieve a summary or detailed information for each project.
|
|
9
|
+
* Update project: Updates the name and description of an existing project.
|
|
10
|
+
* Add project member: Sends an invitation email to add a user to a project with specific roles (supports individual and batch invitations).
|
|
11
|
+
|
|
12
|
+
List projects
|
|
13
|
+
~~~~~~~~~~~~~~
|
|
14
|
+
|
|
15
|
+
Lists existing projects within an organization using `PyGEA </pygeai>`_. You can choose to display a summary or the full project information.
|
|
16
|
+
|
|
17
|
+
To achieve this, you have three options:
|
|
18
|
+
|
|
19
|
+
* `Command Line </docs/source/content/api_reference.rst#command-line>`_
|
|
20
|
+
* `Low-Level Service Layer </docs/source/content/api_reference.rst#low-level-service-layer>`_
|
|
21
|
+
* `High-Level Service Layer </docs/source/content/api_reference.rst#high-level-service-layer>`_
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
Command line
|
|
25
|
+
^^^^^^^^^^^^
|
|
26
|
+
|
|
27
|
+
You can list projects using the following command-line options:
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
List projects with summary details (default)
|
|
31
|
+
############################################
|
|
32
|
+
|
|
33
|
+
You can list the projects without additional options, as follows:
|
|
34
|
+
|
|
35
|
+
.. code-block:: shell
|
|
36
|
+
|
|
37
|
+
geai org list-projects
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
List projects with full details
|
|
41
|
+
###############################
|
|
42
|
+
|
|
43
|
+
Use the optional flag "-d" to indicate "full" detail. The default is summary.
|
|
44
|
+
|
|
45
|
+
.. code-block:: shell
|
|
46
|
+
|
|
47
|
+
geai org list-projects -d full
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
If we need to work with a different API key, we can indicate an alias. Let's suppose we have an 'admin' alias with an
|
|
51
|
+
organization API key.
|
|
52
|
+
|
|
53
|
+
List projects using a different API token (alias)
|
|
54
|
+
#################################################
|
|
55
|
+
|
|
56
|
+
.. code-block:: shell
|
|
57
|
+
|
|
58
|
+
geai --alias <alias_name> org list-projects
|
|
59
|
+
|
|
60
|
+
Replace `<alias_name>` with the actual alias for your `GEAI_API_KEY` (e.g., "admin").
|
|
61
|
+
|
|
62
|
+
**Note**: Each alias defines a profile with a specific access level. Based on the profile's access level, you will need to use SAIA_ORGANIZATION_APITOKEN or SAIA_PROJECT_APITOKEN as GEAI_API_KEY.
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
Low level service layer
|
|
66
|
+
^^^^^^^^^^^^^^^^^^^^^^^
|
|
67
|
+
|
|
68
|
+
Use the following code snippet to list projects with the desired detail level:
|
|
69
|
+
|
|
70
|
+
.. code-block:: python
|
|
71
|
+
|
|
72
|
+
from pygeai.organization.clients import OrganizationClient
|
|
73
|
+
|
|
74
|
+
client = OrganizationClient()
|
|
75
|
+
project_list = client.get_project_list(detail="full") # Use "summary" for less detail
|
|
76
|
+
print(project_list)
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
High level service layer
|
|
80
|
+
^^^^^^^^^^^^^^^^^^^^^^^^
|
|
81
|
+
|
|
82
|
+
Use the following code snippets to list projects using the high-level service layer:
|
|
83
|
+
|
|
84
|
+
List projects with default details
|
|
85
|
+
##################################
|
|
86
|
+
|
|
87
|
+
You can get the list of projects by calling the "get_project_list" method from the OrganizationManager manager class.
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
.. code-block:: python
|
|
91
|
+
|
|
92
|
+
from pygeai.organization.managers import OrganizationManager
|
|
93
|
+
|
|
94
|
+
manager = OrganizationManager()
|
|
95
|
+
|
|
96
|
+
response = manager.get_project_list()
|
|
97
|
+
print(f"response: {response}")
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
List projects with full details and a specific alias
|
|
101
|
+
####################################################
|
|
102
|
+
|
|
103
|
+
Also, you can indicate the alias for the desired environment to use.
|
|
104
|
+
|
|
105
|
+
.. code-block:: python
|
|
106
|
+
|
|
107
|
+
from pygeai.organization.managers import OrganizationManager
|
|
108
|
+
|
|
109
|
+
manager = OrganizationManager(alias="sdkorg")
|
|
110
|
+
|
|
111
|
+
response = manager.get_project_list("full")
|
|
112
|
+
print(f"response: {response}")
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
Create project
|
|
117
|
+
~~~~~~~~~~~~~~
|
|
118
|
+
|
|
119
|
+
Creates a new project in `Globant Enterprise AI <https://wiki.genexus.com/enterprise-ai/wiki?8,Table+of+contents%3AEnterprise+AI>`_ using `PyGEA </pygeai>`_, providing the project name and the administrator's email address. Optionally, you can add a project description and set `usage limits <https://wiki.genexus.com/enterprise-ai/wiki?802,Usage+Limits+API#:~:text=Managing%20quotas%20per%20project>`_.
|
|
120
|
+
|
|
121
|
+
To achieve this, you have three options:
|
|
122
|
+
|
|
123
|
+
* `Command Line </docs/source/content/api_reference.rst#command-line>`_
|
|
124
|
+
* `Low-Level Service Layer </docs/source/content/api_reference.rst#low-level-service-layer>`_
|
|
125
|
+
* `High-Level Service Layer </docs/source/content/api_reference.rst#high-level-service-layer>`_
|
|
126
|
+
|
|
127
|
+
Command line
|
|
128
|
+
^^^^^^^^^^^^
|
|
129
|
+
|
|
130
|
+
The simplest way to create a project is using the command line:
|
|
131
|
+
|
|
132
|
+
1. Open your terminal or command prompt.
|
|
133
|
+
2. Run the following command, replacing the placeholders with your desired values:
|
|
134
|
+
|
|
135
|
+
.. code-block:: shell
|
|
136
|
+
|
|
137
|
+
geai org create-project \
|
|
138
|
+
-n "Project Name" \
|
|
139
|
+
-e "admin@example.com" \
|
|
140
|
+
-d "Project Description"
|
|
141
|
+
|
|
142
|
+
Where:
|
|
143
|
+
|
|
144
|
+
- `n`: Name of your project.
|
|
145
|
+
- `e`: Email address of the project administrator.
|
|
146
|
+
- `d`: Optional description for your project.
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
Low level service layer
|
|
150
|
+
^^^^^^^^^^^^^^^^^^^^^^^
|
|
151
|
+
|
|
152
|
+
For more control, you can use the low-level service layer. To do so:
|
|
153
|
+
|
|
154
|
+
1. Import the necessary modules.
|
|
155
|
+
2. Create an instance of the `OrganizationClient` class.
|
|
156
|
+
3. Call the `create_project` method, providing the required information.
|
|
157
|
+
|
|
158
|
+
.. code-block:: python
|
|
159
|
+
|
|
160
|
+
from pygeai.organization.clients import OrganizationClient
|
|
161
|
+
|
|
162
|
+
name="Project Name"
|
|
163
|
+
description="Project Description"
|
|
164
|
+
email="admin@example.com"
|
|
165
|
+
|
|
166
|
+
client = OrganizationClient()
|
|
167
|
+
new_project = client.create_project(name=name, email=email, description=description)
|
|
168
|
+
print(new_project)
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
High level service layer
|
|
172
|
+
^^^^^^^^^^^^^^^^^^^^^^^^
|
|
173
|
+
|
|
174
|
+
The high-level service layer offers a more structured approach:
|
|
175
|
+
|
|
176
|
+
1. Import the necessary modules.
|
|
177
|
+
2. Create an instance of the `OrganizationManager` class.
|
|
178
|
+
3. Define the project's usage limits (optional).
|
|
179
|
+
4. Create a `Project` object with the necessary information.
|
|
180
|
+
5. Call the `create_project` method of the `OrganizationManager` to create the project.
|
|
181
|
+
|
|
182
|
+
.. code-block:: python
|
|
183
|
+
|
|
184
|
+
from pygeai.organization.managers import OrganizationManager
|
|
185
|
+
from pygeai.core.models import UsageLimit, Project
|
|
186
|
+
|
|
187
|
+
manager = OrganizationManager()
|
|
188
|
+
|
|
189
|
+
usage_limit = UsageLimit(
|
|
190
|
+
subscription_type="Monthly", # Options: Freemium, Daily, Weekly, Monthly
|
|
191
|
+
usage_unit="Requests", # Options: Requests, Cost
|
|
192
|
+
soft_limit=500.0, # Recommended usage limit
|
|
193
|
+
hard_limit=1000.0, # Maximum allowed usage
|
|
194
|
+
renewal_status="Renewable" # Options: Renewable, NonRenewable
|
|
195
|
+
)
|
|
196
|
+
|
|
197
|
+
project = Project(
|
|
198
|
+
name="Project Name",
|
|
199
|
+
description="Project Description",
|
|
200
|
+
email="admin@example.com",
|
|
201
|
+
usage_limit=usage_limit
|
|
202
|
+
)
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
created_project = manager.create_project(project)
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
Update project
|
|
209
|
+
~~~~~~~~~~~~~~
|
|
210
|
+
|
|
211
|
+
Updates an existing project in `Globant Enterprise AI <https://wiki.genexus.com/enterprise-ai/wiki?8,Table+of+contents%3AEnterprise+AI>`_ using `PyGEA </pygeai>`_. You can modify a project's name and description by providing its Id and updated information.
|
|
212
|
+
|
|
213
|
+
To update usage limits, refer to `Managing quotas per project <https://wiki.genexus.com/enterprise-ai/wiki?71,Managing+quotas+per+project>`_.
|
|
214
|
+
|
|
215
|
+
To achieve this, you have three options:
|
|
216
|
+
|
|
217
|
+
* `Command Line </docs/source/content/api_reference.rst#command-line>`_
|
|
218
|
+
* `Low-Level Service Layer </docs/source/content/api_reference.rst#low-level-service-layer>`_
|
|
219
|
+
* `High-Level Service Layer </docs/source/content/api_reference.rst#high-level-service-layer>`_
|
|
220
|
+
|
|
221
|
+
Command line
|
|
222
|
+
^^^^^^^^^^^^
|
|
223
|
+
|
|
224
|
+
Use the following command to update a project:
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
.. code-block:: shell
|
|
228
|
+
|
|
229
|
+
geai org update-project \
|
|
230
|
+
-id <project_id> \
|
|
231
|
+
--name "<new_project_name>" \
|
|
232
|
+
--description "<new_project_description>"
|
|
233
|
+
|
|
234
|
+
Replace the placeholders with the actual values:
|
|
235
|
+
|
|
236
|
+
* `<project_id>`: Id of the project you want to update.
|
|
237
|
+
* `<new_project_name>`: New name for the project.
|
|
238
|
+
* `<new_project_description>`: New description for the project.
|
|
239
|
+
|
|
240
|
+
For example:
|
|
241
|
+
|
|
242
|
+
.. code-block:: shell
|
|
243
|
+
geai org update-project \
|
|
244
|
+
--id 12345678-90ab-cdef-1234-567890abcdef \
|
|
245
|
+
--name "Updated Project Name" \
|
|
246
|
+
--description "This is the updated project description"
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
Low level service layer
|
|
250
|
+
^^^^^^^^^^^^^^^^^^^^^^^
|
|
251
|
+
|
|
252
|
+
Use the following code snippet to update a project using the low-level service layer:
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
.. code-block:: python
|
|
256
|
+
|
|
257
|
+
from pygeai.organization.clients import OrganizationClient
|
|
258
|
+
|
|
259
|
+
project_iid="<project_id>"
|
|
260
|
+
name="<new_project_name>"
|
|
261
|
+
description="<new_project_description>"
|
|
262
|
+
|
|
263
|
+
client = OrganizationClient()
|
|
264
|
+
new_project = client.update_project(
|
|
265
|
+
project_id=project_id,
|
|
266
|
+
name=name,
|
|
267
|
+
description=description
|
|
268
|
+
)
|
|
269
|
+
print(new_project)
|
|
270
|
+
|
|
271
|
+
Replace the placeholders with the actual values for your project.
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
High level service layer
|
|
275
|
+
^^^^^^^^^^^^^^^^^^^^^^^^
|
|
276
|
+
|
|
277
|
+
Use the following code snippet to update a project using the high-level service layer:
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
.. code-block:: python
|
|
281
|
+
|
|
282
|
+
from pygeai.organization.managers import OrganizationManager
|
|
283
|
+
from pygeai.core.models import UsageLimit, Project
|
|
284
|
+
|
|
285
|
+
client = OrganizationManager()
|
|
286
|
+
|
|
287
|
+
project = Project(
|
|
288
|
+
id="<project_id>",
|
|
289
|
+
name="<new_project_name>",
|
|
290
|
+
description="<new_project_description>",
|
|
291
|
+
)
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
project = client.update_project(project)
|
|
295
|
+
print(f"project: {project}")
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
Replace the placeholders with the actual values for your project.
|
|
299
|
+
|
|
300
|
+
|
|
301
|
+
Delete project
|
|
302
|
+
~~~~~~~~~~~~~~
|
|
303
|
+
|
|
304
|
+
Deletes an existing project in `Globant Enterprise AI <https://wiki.genexus.com/enterprise-ai/wiki?8,Table+of+contents%3AEnterprise+AI>`_ using `PyGEA </pygeai>`_. You can delete a project by providing its project Id.
|
|
305
|
+
|
|
306
|
+
A successful deletion results in an empty response. If the project doesn't exist or if you lack the necessary permissions, an error occurs.
|
|
307
|
+
|
|
308
|
+
To delete a project, you have three options:
|
|
309
|
+
|
|
310
|
+
* `Command Line </docs/source/content/api_reference.rst#command-line>`_
|
|
311
|
+
* `Low-Level Service Layer </docs/source/content/api_reference.rst#low-level-service-layer>`_
|
|
312
|
+
* `High-Level Service Layer </docs/source/content/api_reference.rst#high-level-service-layer>`_
|
|
313
|
+
|
|
314
|
+
Command line
|
|
315
|
+
^^^^^^^^^^^^
|
|
316
|
+
|
|
317
|
+
Use the following command to delete a project:
|
|
318
|
+
|
|
319
|
+
.. code-block:: shell
|
|
320
|
+
|
|
321
|
+
geai org delete-project \
|
|
322
|
+
--id <project_id>
|
|
323
|
+
|
|
324
|
+
Replace <`project_id`> with the actual project Id. For example:
|
|
325
|
+
|
|
326
|
+
.. code-block:: shell
|
|
327
|
+
geai org delete-project \
|
|
328
|
+
--id 12345678-90ab-cdef-1234-567890abcdef
|
|
329
|
+
|
|
330
|
+
|
|
331
|
+
Low level service layer
|
|
332
|
+
^^^^^^^^^^^^^^^^^^^^^^^
|
|
333
|
+
|
|
334
|
+
Use the following code snippet to delete a project using the low-level service layer:
|
|
335
|
+
|
|
336
|
+
|
|
337
|
+
.. code-block:: python
|
|
338
|
+
|
|
339
|
+
from pygeai.organization.clients import OrganizationClient
|
|
340
|
+
|
|
341
|
+
project_id = "<project_id>"
|
|
342
|
+
client = OrganizationClient()
|
|
343
|
+
deleted_project = client.delete_project(project_id=project_id)
|
|
344
|
+
print(deleted_project)
|
|
345
|
+
|
|
346
|
+
Replace <`project_id`> with the actual project Id. For example:
|
|
347
|
+
|
|
348
|
+
.. code-block:: python
|
|
349
|
+
|
|
350
|
+
from pygeai.organization.clients import OrganizationClient
|
|
351
|
+
|
|
352
|
+
project_id="12345678-90ab-cdef-1234-567890abcdef"
|
|
353
|
+
client = OrganizationClient()
|
|
354
|
+
deleted_project = client.delete_project(project_id=project_id)
|
|
355
|
+
print(deleted_project)
|
|
356
|
+
|
|
357
|
+
|
|
358
|
+
High level service layer
|
|
359
|
+
^^^^^^^^^^^^^^^^^^^^^^^^
|
|
360
|
+
|
|
361
|
+
Use the following code snippet to delete a project using the high-level service layer:
|
|
362
|
+
|
|
363
|
+
.. code-block:: python
|
|
364
|
+
|
|
365
|
+
from pygeai.organization.managers import OrganizationManager
|
|
366
|
+
|
|
367
|
+
manager = OrganizationManager()
|
|
368
|
+
|
|
369
|
+
response = manager.delete_project("<project_id>")
|
|
370
|
+
print(f"response: {response}")
|
|
371
|
+
|
|
372
|
+
Replace <`project_id`> with the actual project Id. For example:
|
|
373
|
+
|
|
374
|
+
.. code-block:: python
|
|
375
|
+
|
|
376
|
+
from pygeai.organization.managers import OrganizationManager
|
|
377
|
+
|
|
378
|
+
manager = OrganizationManager()
|
|
379
|
+
response = manager.delete_project("12345678-90ab-cdef-1234-567890abcdef")
|
|
380
|
+
print(f"response: {response}")
|
|
381
|
+
|
|
382
|
+
|
|
383
|
+
Get project data
|
|
384
|
+
~~~~~~~~~~~~~~~~
|
|
385
|
+
|
|
386
|
+
Retrieves project data using `PyGEA </pygeai>`_. You can fetch project details by providing the project Id.
|
|
387
|
+
|
|
388
|
+
To achieve this, you have three options:
|
|
389
|
+
|
|
390
|
+
* `Command Line </docs/source/content/api_reference.rst#command-line>`_
|
|
391
|
+
* `Low-Level Service Layer </docs/source/content/api_reference.rst#low-level-service-layer>`_
|
|
392
|
+
* `High-Level Service Layer </docs/source/content/api_reference.rst#high-level-service-layer>`_
|
|
393
|
+
|
|
394
|
+
|
|
395
|
+
Command line
|
|
396
|
+
^^^^^^^^^^^^
|
|
397
|
+
|
|
398
|
+
Use the following command to retrieve the project:
|
|
399
|
+
|
|
400
|
+
.. code-block:: shell
|
|
401
|
+
|
|
402
|
+
geai org get-project \
|
|
403
|
+
--id <project_id>
|
|
404
|
+
|
|
405
|
+
Replace `<project_id>` with the actual project Id. For example:
|
|
406
|
+
|
|
407
|
+
.. code-block:: shell
|
|
408
|
+
|
|
409
|
+
geai org get-project \
|
|
410
|
+
--id 12345678-90ab-cdef-1234-567890abcdef
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
Low level service layer
|
|
414
|
+
^^^^^^^^^^^^^^^^^^^^^^^
|
|
415
|
+
|
|
416
|
+
Use the following code snippet to retrieve project data using the low-level service layer:
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
.. code-block:: python
|
|
420
|
+
|
|
421
|
+
from pygeai.organization.clients import OrganizationClient
|
|
422
|
+
|
|
423
|
+
project_iid="<project_id>"
|
|
424
|
+
client = OrganizationClient()
|
|
425
|
+
project_data = client.get_project_data(project_id=project_id)
|
|
426
|
+
print(project_data)
|
|
427
|
+
|
|
428
|
+
Replace `<project_id>` with the actual project Id. For example:
|
|
429
|
+
|
|
430
|
+
|
|
431
|
+
.. code-block:: python
|
|
432
|
+
|
|
433
|
+
from pygeai.organization.clients import OrganizationClient
|
|
434
|
+
|
|
435
|
+
project_id="12345678-90ab-cdef-1234-567890abcdef"
|
|
436
|
+
client = OrganizationClient()
|
|
437
|
+
project_data = client.get_project_data(project_id=project_id)
|
|
438
|
+
print(project_data)
|
|
439
|
+
|
|
440
|
+
|
|
441
|
+
High level service layer
|
|
442
|
+
^^^^^^^^^^^^^^^^^^^^^^^^
|
|
443
|
+
|
|
444
|
+
Use the following code snippet to retrieve project data using the high-level service layer:
|
|
445
|
+
|
|
446
|
+
|
|
447
|
+
.. code-block:: python
|
|
448
|
+
|
|
449
|
+
from pygeai.organization.managers import OrganizationManager
|
|
450
|
+
|
|
451
|
+
manager = OrganizationManager(alias="sdkorg")
|
|
452
|
+
|
|
453
|
+
project = manager.get_project_data(project_iid="<project_id>")
|
|
454
|
+
print(f"project: {project}")
|
|
455
|
+
|
|
456
|
+
|
|
457
|
+
Replace `<project_id>` with the actual project Id. For example:
|
|
458
|
+
|
|
459
|
+
.. code-block:: python
|
|
460
|
+
|
|
461
|
+
from pygeai.organization.managers import OrganizationManager
|
|
462
|
+
|
|
463
|
+
manager = OrganizationManager(alias="sdkorg")
|
|
464
|
+
project = manager.get_project_data(project_id="12345678-90ab-cdef-1234-567890abcdef")
|
|
465
|
+
print(f"project: {project}")
|
|
466
|
+
|
|
467
|
+
|
|
468
|
+
Member Management
|
|
469
|
+
=================
|
|
470
|
+
You can manage project members to control access and permissions within your projects.
|
|
471
|
+
|
|
472
|
+
* Add Project Member: Sends an invitation email to add a user to a project with specific roles.
|
|
473
|
+
|
|
474
|
+
Add Project Member
|
|
475
|
+
~~~~~~~~~~~~~~~~~~
|
|
476
|
+
|
|
477
|
+
Sends an invitation email to add a user to a project in `Globant Enterprise AI <https://wiki.genexus.com/enterprise-ai/wiki?8,Table+of+contents%3AEnterprise+AI>`_ using `PyGEA </pygeai>`_. You can add individual users or process multiple invitations via a CSV file (batch mode).
|
|
478
|
+
|
|
479
|
+
To achieve this, you have three options:
|
|
480
|
+
|
|
481
|
+
* `Command Line </docs/source/content/api_reference.rst#command-line>`_
|
|
482
|
+
* `Low-Level Service Layer </docs/source/content/api_reference.rst#low-level-service-layer>`_
|
|
483
|
+
* `High-Level Service Layer </docs/source/content/api_reference.rst#high-level-service-layer>`_
|
|
484
|
+
|
|
485
|
+
Command line
|
|
486
|
+
^^^^^^^^^^^^
|
|
487
|
+
|
|
488
|
+
Add a single user to a project
|
|
489
|
+
###############################
|
|
490
|
+
|
|
491
|
+
Use the following command to invite a user to a project:
|
|
492
|
+
|
|
493
|
+
.. code-block:: shell
|
|
494
|
+
|
|
495
|
+
geai org add-project-member \
|
|
496
|
+
--project-id <project_id> \
|
|
497
|
+
--email <user_email> \
|
|
498
|
+
--roles "<role1>,<role2>"
|
|
499
|
+
|
|
500
|
+
Replace the placeholders with the actual values:
|
|
501
|
+
|
|
502
|
+
* `<project_id>`: Id of the project.
|
|
503
|
+
* `<user_email>`: Email address of the user to invite.
|
|
504
|
+
* `<role1>,<role2>`: Comma-separated list of roles (e.g., "Project member,Project administrator").
|
|
505
|
+
|
|
506
|
+
For example:
|
|
507
|
+
|
|
508
|
+
.. code-block:: shell
|
|
509
|
+
|
|
510
|
+
geai org add-project-member \
|
|
511
|
+
--project-id 1956c032-3c66-4435-acb8-6a06e52f819f \
|
|
512
|
+
--email user@example.com \
|
|
513
|
+
--roles "Project member,Project administrator"
|
|
514
|
+
|
|
515
|
+
You can also use the short alias:
|
|
516
|
+
|
|
517
|
+
.. code-block:: shell
|
|
518
|
+
|
|
519
|
+
geai org apm \
|
|
520
|
+
--project-id 1956c032-3c66-4435-acb8-6a06e52f819f \
|
|
521
|
+
--email user@example.com \
|
|
522
|
+
--roles "Project member"
|
|
523
|
+
|
|
524
|
+
|
|
525
|
+
Add multiple users via CSV file (batch mode)
|
|
526
|
+
#############################################
|
|
527
|
+
|
|
528
|
+
Use the `-b` or `--batch` flag to process multiple invitations from a CSV file:
|
|
529
|
+
|
|
530
|
+
.. code-block:: shell
|
|
531
|
+
|
|
532
|
+
geai org add-project-member --batch <path_to_csv_file>
|
|
533
|
+
|
|
534
|
+
The CSV file format should be:
|
|
535
|
+
|
|
536
|
+
.. code-block:: text
|
|
537
|
+
|
|
538
|
+
project_id,email,role1,role2,...
|
|
539
|
+
1956c032-3c66-4435-acb8-6a06e52f819f,user1@example.com,Project member
|
|
540
|
+
1956c032-3c66-4435-acb8-6a06e52f819f,user2@example.com,Project member,Project administrator
|
|
541
|
+
|
|
542
|
+
For example:
|
|
543
|
+
|
|
544
|
+
.. code-block:: shell
|
|
545
|
+
|
|
546
|
+
geai org add-project-member --batch project_members.csv
|
|
547
|
+
|
|
548
|
+
The command will process each line and report successful and failed invitations.
|
|
549
|
+
|
|
550
|
+
|
|
551
|
+
Low level service layer
|
|
552
|
+
^^^^^^^^^^^^^^^^^^^^^^^
|
|
553
|
+
|
|
554
|
+
Use the following code snippet to invite a user to a project using the low-level service layer:
|
|
555
|
+
|
|
556
|
+
.. code-block:: python
|
|
557
|
+
|
|
558
|
+
from pygeai.organization.clients import OrganizationClient
|
|
559
|
+
|
|
560
|
+
project_id = "<project_id>"
|
|
561
|
+
email = "<user_email>"
|
|
562
|
+
roles = ["Project member", "Project administrator"]
|
|
563
|
+
|
|
564
|
+
client = OrganizationClient()
|
|
565
|
+
result = client.add_project_member(project_id=project_id, email=email, roles=roles)
|
|
566
|
+
print(result)
|
|
567
|
+
|
|
568
|
+
Replace the placeholders with the actual values. For example:
|
|
569
|
+
|
|
570
|
+
.. code-block:: python
|
|
571
|
+
|
|
572
|
+
from pygeai.organization.clients import OrganizationClient
|
|
573
|
+
|
|
574
|
+
project_id = "1956c032-3c66-4435-acb8-6a06e52f819f"
|
|
575
|
+
email = "user@example.com"
|
|
576
|
+
roles = ["Project member", "Project administrator"]
|
|
577
|
+
|
|
578
|
+
client = OrganizationClient()
|
|
579
|
+
result = client.add_project_member(project_id=project_id, email=email, roles=roles)
|
|
580
|
+
print(result)
|
|
581
|
+
|
|
582
|
+
For batch processing, you can use:
|
|
583
|
+
|
|
584
|
+
.. code-block:: python
|
|
585
|
+
|
|
586
|
+
import csv
|
|
587
|
+
from pygeai.organization.clients import OrganizationClient
|
|
588
|
+
|
|
589
|
+
client = OrganizationClient()
|
|
590
|
+
|
|
591
|
+
with open('project_members.csv', 'r') as file:
|
|
592
|
+
csv_reader = csv.reader(file)
|
|
593
|
+
for row in csv_reader:
|
|
594
|
+
if len(row) >= 3:
|
|
595
|
+
project_id = row[0]
|
|
596
|
+
email = row[1]
|
|
597
|
+
roles = row[2:]
|
|
598
|
+
try:
|
|
599
|
+
result = client.add_project_member(
|
|
600
|
+
project_id=project_id,
|
|
601
|
+
email=email,
|
|
602
|
+
roles=roles
|
|
603
|
+
)
|
|
604
|
+
print(f"✓ Invited {email} to project {project_id}")
|
|
605
|
+
except Exception as e:
|
|
606
|
+
print(f"✗ Failed to invite {email}: {e}")
|
|
607
|
+
|
|
608
|
+
|
|
609
|
+
High level service layer
|
|
610
|
+
^^^^^^^^^^^^^^^^^^^^^^^^
|
|
611
|
+
|
|
612
|
+
Use the following code snippet to invite a user to a project using the high-level service layer:
|
|
613
|
+
|
|
614
|
+
.. code-block:: python
|
|
615
|
+
|
|
616
|
+
from pygeai.organization.managers import OrganizationManager
|
|
617
|
+
|
|
618
|
+
manager = OrganizationManager()
|
|
619
|
+
|
|
620
|
+
project_id = "<project_id>"
|
|
621
|
+
email = "<user_email>"
|
|
622
|
+
roles = ["Project member", "Project administrator"]
|
|
623
|
+
|
|
624
|
+
response = manager.add_project_member(
|
|
625
|
+
project_id=project_id,
|
|
626
|
+
email=email,
|
|
627
|
+
roles=roles
|
|
628
|
+
)
|
|
629
|
+
print(f"response: {response}")
|
|
630
|
+
|
|
631
|
+
Replace the placeholders with the actual values. For example:
|
|
632
|
+
|
|
633
|
+
.. code-block:: python
|
|
634
|
+
|
|
635
|
+
from pygeai.organization.managers import OrganizationManager
|
|
636
|
+
|
|
637
|
+
manager = OrganizationManager()
|
|
638
|
+
|
|
639
|
+
project_id = "1956c032-3c66-4435-acb8-6a06e52f819f"
|
|
640
|
+
email = "user@example.com"
|
|
641
|
+
roles = ["Project member", "Project administrator"]
|
|
642
|
+
|
|
643
|
+
response = manager.add_project_member(
|
|
644
|
+
project_id=project_id,
|
|
645
|
+
email=email,
|
|
646
|
+
roles=roles
|
|
647
|
+
)
|
|
648
|
+
print(f"response: {response}")
|
|
649
|
+
|
|
650
|
+
|
|
651
|
+
Token Management
|
|
652
|
+
================
|
|
653
|
+
You can manage project tokens, which are essential for authentication and authorization when interacting with specific projects.
|
|
654
|
+
|
|
655
|
+
* Get Project Tokens: Retrieves the tokens associated with a specific project.
|
|
656
|
+
|
|
657
|
+
Get Project Tokens
|
|
658
|
+
~~~~~~~~~~~~~~~~~~
|
|
659
|
+
|
|
660
|
+
Retrieves the tokens associated with a specific project using PyGEA. You can fetch these tokens by providing the project Id.
|
|
661
|
+
|
|
662
|
+
To achieve this, you have three options:
|
|
663
|
+
|
|
664
|
+
* `Command Line </docs/source/content/api_reference.rst#command-line>`_
|
|
665
|
+
* `Low-Level Service Layer </docs/source/content/api_reference.rst#low-level-service-layer>`_
|
|
666
|
+
* `High-Level Service Layer </docs/source/content/api_reference.rst#high-level-service-layer>`_
|
|
667
|
+
|
|
668
|
+
Command line
|
|
669
|
+
^^^^^^^^^^^^
|
|
670
|
+
|
|
671
|
+
Use the following command to retrieve project tokens:
|
|
672
|
+
|
|
673
|
+
.. code-block:: shell
|
|
674
|
+
geai org get-tokens --id <project_id>
|
|
675
|
+
|
|
676
|
+
Replace `<project_id>` with the actual project Id. For example:
|
|
677
|
+
|
|
678
|
+
.. code-block:: shell
|
|
679
|
+
geai org get-tokens --id 12345678-90ab-cdef-1234-567890abcdef
|
|
680
|
+
|
|
681
|
+
|
|
682
|
+
Low level service layer
|
|
683
|
+
^^^^^^^^^^^^^^^^^^^^^^^
|
|
684
|
+
|
|
685
|
+
Use the following code snippet to retrieve project tokens using the low-level service layer:
|
|
686
|
+
|
|
687
|
+
|
|
688
|
+
.. code-block:: python
|
|
689
|
+
|
|
690
|
+
from pygeai.organization.clients import OrganizationClient
|
|
691
|
+
|
|
692
|
+
project_id = "<project_id>"
|
|
693
|
+
|
|
694
|
+
client = OrganizationClient()
|
|
695
|
+
tokens = client.get_project_tokens(project_id=project_id)
|
|
696
|
+
print(tokens)
|
|
697
|
+
|
|
698
|
+
Replace `<project_id>` with the actual project Id. For example:
|
|
699
|
+
|
|
700
|
+
.. code-block:: python
|
|
701
|
+
|
|
702
|
+
from pygeai.organization.clients import OrganizationClient
|
|
703
|
+
|
|
704
|
+
project_id = "12345678-90ab-cdef-1234-567890abcdef"
|
|
705
|
+
|
|
706
|
+
client = OrganizationClient()
|
|
707
|
+
tokens = client.get_project_tokens(project_id=project_id)
|
|
708
|
+
print(tokens)
|
|
709
|
+
|
|
710
|
+
High level service layer
|
|
711
|
+
^^^^^^^^^^^^^^^^^^^^^^^^
|
|
712
|
+
|
|
713
|
+
Use the following code snippet to retrieve project tokens using the high-level service layer:
|
|
714
|
+
|
|
715
|
+
.. code-block:: python
|
|
716
|
+
|
|
717
|
+
from pygeai.organization.managers import OrganizationManager
|
|
718
|
+
from pygeai.core.base.models import ProjectTokensResponse
|
|
719
|
+
|
|
720
|
+
client = OrganizationManager()
|
|
721
|
+
project_id = "<project_id>"
|
|
722
|
+
|
|
723
|
+
tokens: ProjectTokensResponse = client.get_project_tokens(project_id=project_id)
|
|
724
|
+
print(f"tokens: {tokens}")
|
|
725
|
+
|
|
726
|
+
Replace `<project_id>` with the actual project Id. For example:
|
|
727
|
+
|
|
728
|
+
.. code-block:: python
|
|
729
|
+
|
|
730
|
+
from pygeai.organization.managers import OrganizationManager
|
|
731
|
+
from pygeai.core.models import ProjectTokensResponse
|
|
732
|
+
|
|
733
|
+
client = OrganizationManager()
|
|
734
|
+
|
|
735
|
+
project_id = "12345678-90ab-cdef-1234-567890abcdef"
|
|
736
|
+
|
|
737
|
+
tokens: ProjectTokensResponse = client.get_project_tokens(project_id=project_id)
|
|
738
|
+
print(f"tokens: {tokens}")
|