pygeai 0.1.6__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.
- pygeai/__init__.py +11 -2
- 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 +48 -57
- pygeai/assistant/data/__init__.py +0 -0
- pygeai/assistant/data/clients.py +15 -0
- pygeai/assistant/data_analyst/__init__.py +0 -0
- pygeai/assistant/data_analyst/clients.py +75 -0
- pygeai/assistant/data_analyst/endpoints.py +2 -0
- pygeai/assistant/endpoints.py +0 -2
- pygeai/assistant/managers.py +738 -0
- pygeai/assistant/mappers.py +153 -0
- pygeai/assistant/rag/clients.py +132 -21
- pygeai/assistant/rag/mappers.py +228 -0
- pygeai/assistant/rag/models.py +396 -0
- pygeai/assistant/rag/responses.py +10 -0
- pygeai/auth/__init__.py +0 -0
- pygeai/auth/clients.py +129 -0
- pygeai/auth/endpoints.py +6 -0
- pygeai/chat/clients.py +406 -31
- pygeai/chat/endpoints.py +3 -0
- pygeai/chat/iris.py +17 -0
- pygeai/chat/managers.py +64 -0
- 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 +9 -12
- pygeai/cli/commands/analytics.py +533 -0
- pygeai/cli/commands/assistant.py +11 -11
- pygeai/cli/commands/auth.py +299 -0
- pygeai/cli/commands/base.py +201 -7
- pygeai/cli/commands/chat.py +875 -14
- pygeai/cli/commands/common.py +30 -26
- pygeai/cli/commands/configuration.py +84 -9
- pygeai/cli/commands/docs.py +105 -0
- pygeai/cli/commands/embeddings.py +187 -0
- pygeai/cli/commands/evaluation.py +2069 -0
- pygeai/cli/commands/feedback.py +93 -0
- pygeai/cli/commands/files.py +312 -0
- pygeai/cli/commands/flows/__init__.py +0 -0
- pygeai/cli/commands/gam.py +349 -0
- pygeai/cli/commands/lab/__init__.py +0 -0
- pygeai/cli/commands/lab/ai_lab.py +4110 -0
- pygeai/cli/commands/lab/common.py +135 -0
- 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 +164 -0
- pygeai/cli/commands/migrate.py +1198 -0
- pygeai/cli/commands/options.py +86 -0
- pygeai/cli/commands/organization.py +560 -98
- pygeai/cli/commands/rag.py +306 -10
- pygeai/cli/commands/rerank.py +108 -0
- pygeai/cli/commands/secrets.py +357 -0
- pygeai/cli/commands/usage_limits.py +583 -0
- pygeai/cli/commands/validators.py +209 -0
- pygeai/cli/commands/version.py +44 -0
- pygeai/cli/error_handler.py +151 -0
- pygeai/cli/geai.py +171 -30
- pygeai/cli/geai_proxy.py +318 -0
- pygeai/cli/install_man.py +107 -0
- pygeai/cli/parsers.py +78 -25
- pygeai/cli/texts/help.py +712 -55
- pygeai/core/__init__.py +9 -1
- pygeai/core/base/clients.py +61 -10
- pygeai/core/base/mappers.py +208 -30
- pygeai/core/base/models.py +8 -308
- pygeai/core/base/responses.py +18 -1
- pygeai/core/base/session.py +110 -17
- pygeai/core/common/config.py +98 -16
- pygeai/core/common/decorators.py +44 -0
- pygeai/core/common/exceptions.py +104 -4
- pygeai/core/embeddings/__init__.py +19 -0
- pygeai/core/embeddings/clients.py +93 -0
- pygeai/core/embeddings/endpoints.py +1 -0
- pygeai/core/embeddings/managers.py +62 -0
- pygeai/core/embeddings/mappers.py +52 -0
- pygeai/core/embeddings/models.py +14 -0
- pygeai/core/embeddings/responses.py +31 -0
- pygeai/core/feedback/__init__.py +0 -0
- pygeai/core/feedback/clients.py +50 -0
- pygeai/core/feedback/endpoints.py +1 -0
- pygeai/core/feedback/models.py +10 -0
- pygeai/core/files/__init__.py +0 -0
- pygeai/core/files/clients.py +156 -0
- pygeai/core/files/endpoints.py +5 -0
- pygeai/core/files/managers.py +224 -0
- pygeai/core/files/mappers.py +44 -0
- pygeai/core/files/models.py +24 -0
- pygeai/core/files/responses.py +19 -0
- pygeai/core/handlers.py +32 -0
- pygeai/core/llm/__init__.py +0 -0
- pygeai/core/llm/clients.py +53 -0
- pygeai/core/llm/endpoints.py +4 -0
- pygeai/core/models.py +799 -0
- pygeai/core/plugins/__init__.py +0 -0
- pygeai/core/plugins/clients.py +32 -0
- pygeai/core/plugins/endpoints.py +1 -0
- pygeai/core/plugins/models.py +86 -0
- pygeai/core/rerank/__init__.py +0 -0
- pygeai/core/rerank/clients.py +35 -0
- pygeai/core/rerank/endpoints.py +1 -0
- pygeai/core/rerank/managers.py +47 -0
- pygeai/core/rerank/mappers.py +23 -0
- pygeai/core/rerank/models.py +27 -0
- pygeai/core/responses.py +104 -0
- pygeai/core/secrets/__init__.py +0 -0
- pygeai/core/secrets/clients.py +212 -0
- pygeai/core/secrets/endpoints.py +7 -0
- pygeai/core/services/llm/__init__.py +0 -0
- pygeai/core/services/llm/model.py +186 -0
- pygeai/core/services/llm/providers.py +15 -0
- pygeai/core/services/response.py +18 -0
- pygeai/core/services/rest.py +311 -89
- 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 +870 -0
- pygeai/evaluation/__init__.py +0 -0
- pygeai/evaluation/clients.py +19 -0
- pygeai/evaluation/dataset/__init__.py +0 -0
- pygeai/evaluation/dataset/clients.py +514 -0
- pygeai/evaluation/dataset/endpoints.py +26 -0
- pygeai/evaluation/plan/__init__.py +0 -0
- pygeai/evaluation/plan/clients.py +302 -0
- pygeai/evaluation/plan/endpoints.py +16 -0
- pygeai/evaluation/result/__init__.py +0 -0
- pygeai/evaluation/result/clients.py +70 -0
- pygeai/evaluation/result/endpoints.py +2 -0
- pygeai/flows/__init__.py +0 -0
- pygeai/flows/endpoints.py +362 -0
- pygeai/flows/models.py +1304 -0
- pygeai/gam/__init__.py +0 -0
- pygeai/gam/clients.py +178 -0
- pygeai/gam/endpoints.py +4 -0
- pygeai/health/__init__.py +0 -0
- pygeai/health/clients.py +24 -0
- pygeai/health/endpoints.py +1 -0
- pygeai/lab/__init__.py +0 -0
- pygeai/lab/agents/__init__.py +0 -0
- pygeai/lab/agents/clients.py +426 -0
- pygeai/lab/agents/endpoints.py +12 -0
- pygeai/lab/agents/mappers.py +319 -0
- pygeai/lab/clients.py +24 -0
- pygeai/lab/constants.py +3 -0
- pygeai/lab/managers.py +1558 -0
- pygeai/lab/models.py +1719 -0
- pygeai/lab/processes/__init__.py +0 -0
- pygeai/lab/processes/clients.py +1051 -0
- pygeai/lab/processes/endpoints.py +26 -0
- pygeai/lab/processes/mappers.py +395 -0
- 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/__init__.py +0 -0
- pygeai/lab/strategies/clients.py +212 -0
- pygeai/lab/strategies/endpoints.py +5 -0
- pygeai/lab/strategies/mappers.py +58 -0
- pygeai/lab/tools/__init__.py +0 -0
- pygeai/lab/tools/clients.py +465 -0
- pygeai/lab/tools/endpoints.py +13 -0
- pygeai/lab/tools/mappers.py +131 -0
- pygeai/man/__init__.py +1 -0
- pygeai/man/man1/__init__.py +1 -0
- pygeai/man/man1/geai-proxy.1 +246 -0
- pygeai/man/man1/geai.1 +2615 -0
- pygeai/migration/__init__.py +33 -0
- pygeai/migration/strategies.py +603 -0
- pygeai/migration/tools.py +180 -0
- pygeai/organization/clients.py +246 -18
- pygeai/organization/endpoints.py +17 -8
- pygeai/organization/limits/__init__.py +0 -0
- pygeai/organization/limits/clients.py +281 -0
- pygeai/organization/limits/endpoints.py +15 -0
- pygeai/organization/limits/managers.py +331 -0
- pygeai/organization/limits/mappers.py +21 -0
- pygeai/organization/managers.py +537 -0
- pygeai/organization/mappers.py +111 -46
- pygeai/organization/responses.py +61 -11
- pygeai/proxy/__init__.py +0 -0
- pygeai/proxy/clients.py +216 -0
- pygeai/proxy/config.py +128 -0
- pygeai/proxy/managers.py +232 -0
- pygeai/proxy/servers.py +304 -0
- pygeai/proxy/tool.py +69 -0
- 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/__init__.py +0 -0
- pygeai/tests/assistants/rag/test_clients.py +346 -0
- pygeai/tests/assistants/rag/test_mappers.py +189 -0
- pygeai/tests/assistants/rag/test_models.py +292 -0
- pygeai/tests/assistants/test_clients.py +176 -80
- pygeai/tests/assistants/test_managers.py +198 -0
- pygeai/tests/assistants/test_mappers.py +111 -0
- 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/__init__.py +0 -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 +154 -0
- pygeai/tests/core/base/__init__.py +0 -0
- pygeai/tests/core/base/data/__init__.py +0 -0
- pygeai/tests/core/base/data/mappers.py +117 -0
- pygeai/tests/core/base/data/models.py +312 -0
- pygeai/tests/core/base/test_mappers.py +569 -0
- pygeai/tests/core/base/test_models.py +261 -0
- 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/__init__.py +0 -0
- pygeai/tests/core/files/test_clients.py +128 -0
- pygeai/tests/core/files/test_managers.py +219 -0
- 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/__init__.py +0 -0
- pygeai/tests/core/rerank/test_clients.py +76 -0
- pygeai/tests/core/rerank/test_managers.py +99 -0
- pygeai/tests/core/rerank/test_mappers.py +54 -0
- 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/__init__.py +0 -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_mappers.py +245 -0
- pygeai/tests/lab/test_models.py +1154 -0
- 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/__init__.py +0 -0
- pygeai/tests/organization/limits/test_clients.py +567 -0
- pygeai/tests/organization/limits/test_managers.py +402 -0
- pygeai/tests/organization/test_clients.py +615 -64
- 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/__init__.py +0 -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/assistants/__init__.py +0 -0
- pygeai/tests/snippets/assistants/create_chat_assistant.py +54 -0
- pygeai/tests/snippets/assistants/create_text_assistant.py +51 -0
- pygeai/tests/snippets/assistants/data_analyst/__init__.py +0 -0
- pygeai/tests/snippets/assistants/data_analyst/extend_and_check.py +100 -0
- pygeai/tests/snippets/assistants/data_analyst/extend_dataset.py +9 -0
- pygeai/tests/snippets/assistants/data_analyst/get_status.py +9 -0
- pygeai/tests/snippets/assistants/file_summarizer_assistant.py +149 -0
- pygeai/tests/snippets/assistants/get_assistant_data.py +8 -0
- pygeai/tests/snippets/assistants/get_assistant_list.py +7 -0
- pygeai/tests/snippets/assistants/rag/__init__.py +0 -0
- pygeai/tests/snippets/assistants/rag/create_rag_assistant.py +65 -0
- pygeai/tests/snippets/assistants/rag/delete_al_documents.py +7 -0
- pygeai/tests/snippets/assistants/rag/delete_document.py +10 -0
- pygeai/tests/snippets/assistants/rag/delete_rag_assistant.py +8 -0
- pygeai/tests/snippets/assistants/rag/get_document.py +10 -0
- pygeai/tests/snippets/assistants/rag/get_documents.py +7 -0
- pygeai/tests/snippets/assistants/rag/get_rag_assistant_data.py +8 -0
- pygeai/tests/snippets/assistants/rag/update_rag_assistant.py +48 -0
- pygeai/tests/snippets/assistants/rag/upload_document.py +19 -0
- pygeai/tests/snippets/assistants/send_feedback.py +14 -0
- pygeai/tests/snippets/assistants/update_chat_assistant.py +63 -0
- pygeai/tests/snippets/auth/__init__.py +0 -0
- pygeai/tests/snippets/chat/__init__.py +0 -0
- pygeai/tests/snippets/chat/cancel_request.py +7 -0
- pygeai/tests/snippets/chat/chat_completion.py +28 -0
- pygeai/tests/snippets/chat/chat_completion_1.py +40 -0
- pygeai/tests/snippets/chat/chat_completion_2.py +60 -0
- pygeai/tests/snippets/chat/chat_completion_3.py +27 -0
- pygeai/tests/snippets/chat/chat_completion_4.py +67 -0
- pygeai/tests/snippets/chat/chat_completion_streaming.py +63 -0
- pygeai/tests/snippets/chat/chat_completion_with_reasoning_effort.py +18 -0
- pygeai/tests/snippets/chat/get_request_status.py +7 -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/chat/send_chat_request.py +33 -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/__init__.py +0 -0
- pygeai/tests/snippets/embeddings/cache_example.py +31 -0
- pygeai/tests/snippets/embeddings/cohere_example.py +41 -0
- pygeai/tests/snippets/embeddings/generate_embeddings.py +26 -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/__init__.py +0 -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/__init__.py +0 -0
- pygeai/tests/snippets/files/delete_file.py +9 -0
- pygeai/tests/snippets/files/get_file_content.py +10 -0
- pygeai/tests/snippets/files/get_file_data.py +9 -0
- pygeai/tests/snippets/files/get_file_list.py +6 -0
- pygeai/tests/snippets/files/upload_file.py +13 -0
- pygeai/tests/snippets/gam/__init__.py +0 -0
- pygeai/tests/snippets/gam/gam_access_token.py +87 -0
- pygeai/tests/snippets/lab/__init__.py +0 -0
- pygeai/tests/snippets/lab/agentic_flow_example_1.py +326 -0
- pygeai/tests/snippets/lab/agentic_flow_example_2.py +206 -0
- pygeai/tests/snippets/lab/agentic_flow_example_3.py +486 -0
- pygeai/tests/snippets/lab/agentic_flow_example_4.py +446 -0
- pygeai/tests/snippets/lab/agents/__init__.py +0 -0
- pygeai/tests/snippets/lab/agents/create_agent.py +48 -0
- pygeai/tests/snippets/lab/agents/create_agent_2.py +48 -0
- 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 +12 -0
- pygeai/tests/snippets/lab/agents/get_agent.py +24 -0
- pygeai/tests/snippets/lab/agents/get_agent_with_new_fields.py +62 -0
- pygeai/tests/snippets/lab/agents/get_sharing_link.py +13 -0
- pygeai/tests/snippets/lab/agents/list_agents.py +18 -0
- pygeai/tests/snippets/lab/agents/publish_agent_revision.py +12 -0
- pygeai/tests/snippets/lab/agents/update_agent.py +50 -0
- 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/__init__.py +0 -0
- pygeai/tests/snippets/lab/processes/create_process.py +24 -0
- pygeai/tests/snippets/lab/processes/create_task.py +8 -0
- pygeai/tests/snippets/lab/processes/jobs/__init__.py +0 -0
- pygeai/tests/snippets/lab/processes/jobs/list_jobs.py +21 -0
- pygeai/tests/snippets/lab/processes/kbs/__init__.py +0 -0
- pygeai/tests/snippets/lab/processes/kbs/create_kb.py +18 -0
- pygeai/tests/snippets/lab/processes/kbs/get_kb.py +26 -0
- pygeai/tests/snippets/lab/processes/kbs/list_kbs.py +30 -0
- pygeai/tests/snippets/lab/processes/kbs/try_all.py +73 -0
- pygeai/tests/snippets/lab/processes/list_processes.py +10 -0
- pygeai/tests/snippets/lab/runner_1.py +212 -0
- pygeai/tests/snippets/lab/samples/__init__.py +0 -0
- pygeai/tests/snippets/lab/samples/summarize_files.py +162 -0
- pygeai/tests/snippets/lab/strategies/__init__.py +0 -0
- pygeai/tests/snippets/lab/strategies/create_reasoning_strategy.py +22 -0
- pygeai/tests/snippets/lab/strategies/get_reasoning_strategy.py +10 -0
- pygeai/tests/snippets/lab/strategies/list_reasoning_strategies.py +16 -0
- pygeai/tests/snippets/lab/strategies/update_reasoning_strategy.py +26 -0
- pygeai/tests/snippets/lab/tools/__init__.py +0 -0
- pygeai/tests/snippets/lab/tools/create_tool.py +48 -0
- pygeai/tests/snippets/lab/tools/create_tool_edge_case.py +50 -0
- pygeai/tests/snippets/lab/tools/delete_tool.py +21 -0
- pygeai/tests/snippets/lab/tools/get_parameter.py +21 -0
- pygeai/tests/snippets/lab/tools/get_tool.py +22 -0
- pygeai/tests/snippets/lab/tools/list_tools.py +23 -0
- pygeai/tests/snippets/lab/tools/publish_tool_revision.py +13 -0
- pygeai/tests/snippets/lab/tools/set_parameters.py +33 -0
- pygeai/tests/snippets/lab/tools/update_tool.py +52 -0
- pygeai/tests/snippets/lab/use_cases/__init__.py +0 -0
- pygeai/tests/snippets/lab/use_cases/c_code_fixer_agent_flow.py +238 -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/use_cases/file_summarizer_example.py +157 -0
- pygeai/tests/snippets/lab/use_cases/file_summarizer_example_2.py +157 -0
- 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/__init__.py +0 -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 +23 -0
- pygeai/tests/snippets/organization/delete_project.py +7 -0
- pygeai/tests/snippets/organization/export_request_data.py +7 -0
- 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_data.py +7 -0
- pygeai/tests/snippets/organization/get_project_list.py +8 -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/tests/snippets/organization/get_project_tokens.py +7 -0
- pygeai/tests/snippets/organization/update_project.py +14 -0
- pygeai/tests/snippets/rerank/__init__.py +0 -0
- pygeai/tests/snippets/rerank/rerank_chunks.py +19 -0
- pygeai/tests/snippets/secrets/__init__.py +0 -0
- pygeai/tests/snippets/usage_limit/__init__.py +0 -0
- pygeai/tests/snippets/usage_limit/delete_usage_limit.py +16 -0
- pygeai/tests/snippets/usage_limit/get_all_usage_limit_from_organization.py +12 -0
- pygeai/tests/snippets/usage_limit/get_usage_limit_from_organization.py +11 -0
- pygeai/tests/snippets/usage_limit/get_usage_limit_from_project.py +13 -0
- pygeai/tests/snippets/usage_limit/set_usage_limit_organization.py +22 -0
- pygeai/tests/snippets/usage_limit/set_usage_limit_project.py +23 -0
- pygeai/tests/snippets/usage_limit/update_usage_limit_organization.py +23 -0
- pygeai/tests/snippets/usage_limit/update_usage_limit_project.py +24 -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.6.dist-info → pygeai-0.6.0b15.dist-info}/WHEEL +1 -1
- pygeai-0.6.0b15.dist-info/entry_points.txt +5 -0
- {pygeai-0.1.6.dist-info → pygeai-0.6.0b15.dist-info/licenses}/LICENSE +13 -1
- {pygeai-0.1.6.dist-info → pygeai-0.6.0b15.dist-info}/top_level.txt +0 -1
- docs/source/conf.py +0 -45
- pygeai/core/clients.py +0 -240
- pygeai/tests/core/test_clients.py +0 -49
- pygeai-0.1.6.dist-info/METADATA +0 -92
- pygeai-0.1.6.dist-info/RECORD +0 -65
- pygeai-0.1.6.dist-info/SOURCES.sync-conflict-20241223-145950-3QD4F42.txt +0 -41
- pygeai-0.1.6.dist-info/entry_points.txt +0 -2
- /pygeai/{agent → analytics}/__init__.py +0 -0
|
@@ -0,0 +1,2069 @@
|
|
|
1
|
+
import json
|
|
2
|
+
|
|
3
|
+
from pygeai.cli.commands import Command, Option, ArgumentsEnum
|
|
4
|
+
from pygeai.cli.commands.builders import build_help_text
|
|
5
|
+
from pygeai.cli.commands.common import get_boolean_value
|
|
6
|
+
from pygeai.cli.commands.validators import validate_row_structure, validate_system_metric
|
|
7
|
+
from pygeai.cli.texts.help import EVALUATION_HELP_TEXT
|
|
8
|
+
from pygeai.core.common.exceptions import MissingRequirementException, WrongArgumentError
|
|
9
|
+
from pygeai.core.utils.console import Console
|
|
10
|
+
from pygeai.evaluation.dataset.clients import EvaluationDatasetClient
|
|
11
|
+
from pygeai.evaluation.plan.clients import EvaluationPlanClient
|
|
12
|
+
from pygeai.evaluation.result.clients import EvaluationResultClient
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def show_help():
|
|
16
|
+
"""
|
|
17
|
+
Displays help text in stdout
|
|
18
|
+
"""
|
|
19
|
+
help_text = build_help_text(evaluation_commands, EVALUATION_HELP_TEXT)
|
|
20
|
+
Console.write_stdout(help_text)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
"""
|
|
24
|
+
DATASETS COMMANDS
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def list_datasets():
|
|
29
|
+
client = EvaluationDatasetClient()
|
|
30
|
+
result = client.list_datasets()
|
|
31
|
+
Console.write_stdout(f"Feedback detail: \n{result}")
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def create_dataset(option_list: list):
|
|
35
|
+
dataset_file = None
|
|
36
|
+
dataset_name = None
|
|
37
|
+
dataset_description = None
|
|
38
|
+
dataset_type = None
|
|
39
|
+
dataset_active = True
|
|
40
|
+
rows = list()
|
|
41
|
+
|
|
42
|
+
for option_flag, option_arg in option_list:
|
|
43
|
+
if option_flag.name == "dataset_file":
|
|
44
|
+
dataset_file = option_arg
|
|
45
|
+
if option_flag.name == "dataset_name":
|
|
46
|
+
dataset_name = option_arg
|
|
47
|
+
if option_flag.name == "dataset_description":
|
|
48
|
+
dataset_description = option_arg
|
|
49
|
+
if option_flag.name == "dataset_type":
|
|
50
|
+
dataset_type = option_arg
|
|
51
|
+
if option_flag.name == "dataset_type":
|
|
52
|
+
dataset_type = option_arg
|
|
53
|
+
if option_flag.name == "dataset_active":
|
|
54
|
+
dataset_active = get_boolean_value(option_arg)
|
|
55
|
+
if option_flag.name == "row":
|
|
56
|
+
try:
|
|
57
|
+
row_json = json.loads(option_arg)
|
|
58
|
+
if isinstance(row_json, dict):
|
|
59
|
+
rows.append(row_json)
|
|
60
|
+
elif isinstance(row_json, list):
|
|
61
|
+
rows = row_json
|
|
62
|
+
except Exception:
|
|
63
|
+
raise WrongArgumentError(
|
|
64
|
+
'Each dataset row must be in JSON format: '
|
|
65
|
+
'\'{"dataSetRowExpectedAnswer": "string", "dataSetRowContextDocument": "string", '
|
|
66
|
+
'"dataSetRowInput": "string", "expectedSources": [ {...} ], "filterVariables": [ {...} ]}\' '
|
|
67
|
+
'It must be a dictionary containing dataSetRowExpectedAnswer, dataSetRowContextDocument, '
|
|
68
|
+
'and dataSetRowInput as strings. The expectedSources array, if present, must contain dictionaries with '
|
|
69
|
+
'dataSetExpectedSourceId, dataSetExpectedSourceName, dataSetExpectedSourceValue, and dataSetExpectedSourceExtension as strings. '
|
|
70
|
+
'The filterVariables array, if present, must contain dictionaries with dataSetMetadataType, dataSetRowFilterKey, '
|
|
71
|
+
'dataSetRowFilterOperator, dataSetRowFilterValue, and dataSetRowFilterVarId as strings.'
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
client = EvaluationDatasetClient()
|
|
75
|
+
|
|
76
|
+
if dataset_file:
|
|
77
|
+
result = client.create_dataset_from_file(
|
|
78
|
+
file_path=dataset_file
|
|
79
|
+
)
|
|
80
|
+
elif not dataset_name:
|
|
81
|
+
raise MissingRequirementException("Cannot create dataset without specifying dataset name")
|
|
82
|
+
else:
|
|
83
|
+
for row in rows:
|
|
84
|
+
validate_row_structure(row)
|
|
85
|
+
|
|
86
|
+
result = client.create_dataset(
|
|
87
|
+
dataset_name=dataset_name,
|
|
88
|
+
dataset_description=dataset_description,
|
|
89
|
+
dataset_type=dataset_type,
|
|
90
|
+
dataset_active=dataset_active,
|
|
91
|
+
rows=rows
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
Console.write_stdout(f"New dataset detail: \n{result}")
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
create_dataset_options = [
|
|
98
|
+
Option(
|
|
99
|
+
"dataset_name",
|
|
100
|
+
["--dataset-name", "--dn"],
|
|
101
|
+
"dataSetName: string",
|
|
102
|
+
True
|
|
103
|
+
),
|
|
104
|
+
Option(
|
|
105
|
+
"dataset_description",
|
|
106
|
+
["--dataset-description", "--dd"],
|
|
107
|
+
"dataSetDescription: string",
|
|
108
|
+
True
|
|
109
|
+
),
|
|
110
|
+
Option(
|
|
111
|
+
"dataset_type",
|
|
112
|
+
["--dataset-type", "--dt"],
|
|
113
|
+
"dataSetType: string //e.g., 'T' for test, 'E' for evaluation, etc.",
|
|
114
|
+
True
|
|
115
|
+
),
|
|
116
|
+
Option(
|
|
117
|
+
"dataset_active",
|
|
118
|
+
["--dataset-active", "--da"],
|
|
119
|
+
"dataSetActive: boolean. 0: False; 1: True",
|
|
120
|
+
True
|
|
121
|
+
),
|
|
122
|
+
Option(
|
|
123
|
+
"row",
|
|
124
|
+
["--row", "-r"],
|
|
125
|
+
"JSON object containing row data",
|
|
126
|
+
True
|
|
127
|
+
),
|
|
128
|
+
Option(
|
|
129
|
+
"dataset_file",
|
|
130
|
+
["--dataset-file", "--df"],
|
|
131
|
+
"dataSetActive: Creates a new dataset from a JSON file. The file must contain the complete "
|
|
132
|
+
"dataset structure, including header information and rows.",
|
|
133
|
+
True
|
|
134
|
+
),
|
|
135
|
+
]
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
def get_dataset(option_list: list):
|
|
139
|
+
dataset_id = None
|
|
140
|
+
|
|
141
|
+
for option_flag, option_arg in option_list:
|
|
142
|
+
if option_flag.name == "dataset_id":
|
|
143
|
+
dataset_id = option_arg
|
|
144
|
+
|
|
145
|
+
if not dataset_id:
|
|
146
|
+
raise MissingRequirementException("Cannot retrieve dataset without specifying id.")
|
|
147
|
+
|
|
148
|
+
client = EvaluationDatasetClient()
|
|
149
|
+
result = client.get_dataset(
|
|
150
|
+
dataset_id=dataset_id
|
|
151
|
+
)
|
|
152
|
+
Console.write_stdout(f"Dataset detail: \n{result}")
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
get_dataset_options = [
|
|
156
|
+
Option(
|
|
157
|
+
"dataset_id",
|
|
158
|
+
["--dataset-id", "--did"],
|
|
159
|
+
"UUID representing the dataset to retrieve",
|
|
160
|
+
True
|
|
161
|
+
),
|
|
162
|
+
]
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
def update_dataset(option_list: list):
|
|
166
|
+
dataset_id = None
|
|
167
|
+
dataset_name = None
|
|
168
|
+
dataset_description = None
|
|
169
|
+
dataset_type = None
|
|
170
|
+
dataset_active = True
|
|
171
|
+
rows = list()
|
|
172
|
+
|
|
173
|
+
for option_flag, option_arg in option_list:
|
|
174
|
+
if option_flag.name == "dataset_id":
|
|
175
|
+
dataset_id = option_arg
|
|
176
|
+
if option_flag.name == "dataset_name":
|
|
177
|
+
dataset_name = option_arg
|
|
178
|
+
if option_flag.name == "dataset_description":
|
|
179
|
+
dataset_description = option_arg
|
|
180
|
+
if option_flag.name == "dataset_type":
|
|
181
|
+
dataset_type = option_arg
|
|
182
|
+
if option_flag.name == "dataset_type":
|
|
183
|
+
dataset_type = option_arg
|
|
184
|
+
if option_flag.name == "dataset_active":
|
|
185
|
+
dataset_active = get_boolean_value(option_arg)
|
|
186
|
+
if option_flag.name == "row":
|
|
187
|
+
try:
|
|
188
|
+
row_json = json.loads(option_arg)
|
|
189
|
+
if isinstance(row_json, dict):
|
|
190
|
+
rows.append(row_json)
|
|
191
|
+
elif isinstance(row_json, list):
|
|
192
|
+
rows = row_json
|
|
193
|
+
except Exception:
|
|
194
|
+
raise WrongArgumentError(
|
|
195
|
+
'Each dataset row must be in JSON format: '
|
|
196
|
+
'\'{"dataSetRowExpectedAnswer": "string", "dataSetRowContextDocument": "string", '
|
|
197
|
+
'"dataSetRowInput": "string", "expectedSources": [ {...} ], "filterVariables": [ {...} ]}\' '
|
|
198
|
+
'It must be a dictionary containing dataSetRowExpectedAnswer, dataSetRowContextDocument, '
|
|
199
|
+
'and dataSetRowInput as strings. The expectedSources array, if present, must contain dictionaries with '
|
|
200
|
+
'dataSetExpectedSourceId, dataSetExpectedSourceName, dataSetExpectedSourceValue, and dataSetExpectedSourceExtension as strings. '
|
|
201
|
+
'The filterVariables array, if present, must contain dictionaries with dataSetMetadataType, dataSetRowFilterKey, '
|
|
202
|
+
'dataSetRowFilterOperator, dataSetRowFilterValue, and dataSetRowFilterVarId as strings.'
|
|
203
|
+
)
|
|
204
|
+
|
|
205
|
+
if not dataset_id:
|
|
206
|
+
raise MissingRequirementException("Cannot update dataset without specifying id.")
|
|
207
|
+
|
|
208
|
+
for row in rows:
|
|
209
|
+
validate_row_structure(row)
|
|
210
|
+
|
|
211
|
+
client = EvaluationDatasetClient()
|
|
212
|
+
result = client.update_dataset(
|
|
213
|
+
dataset_id=dataset_id,
|
|
214
|
+
dataset_name=dataset_name,
|
|
215
|
+
dataset_description=dataset_description,
|
|
216
|
+
dataset_type=dataset_type,
|
|
217
|
+
dataset_active=dataset_active,
|
|
218
|
+
rows=rows,
|
|
219
|
+
)
|
|
220
|
+
Console.write_stdout(f"Updated dataset detail: \n{result}")
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
update_dataset_options = [
|
|
224
|
+
Option(
|
|
225
|
+
"dataset_id",
|
|
226
|
+
["--dataset-id", "--did"],
|
|
227
|
+
"UUID representing the dataset to retrieve",
|
|
228
|
+
True
|
|
229
|
+
),
|
|
230
|
+
Option(
|
|
231
|
+
"dataset_name",
|
|
232
|
+
["--dataset-name", "--dn"],
|
|
233
|
+
"dataSetName: string",
|
|
234
|
+
True
|
|
235
|
+
),
|
|
236
|
+
Option(
|
|
237
|
+
"dataset_description",
|
|
238
|
+
["--dataset-description", "--dd"],
|
|
239
|
+
"dataSetDescription: string",
|
|
240
|
+
True
|
|
241
|
+
),
|
|
242
|
+
Option(
|
|
243
|
+
"dataset_type",
|
|
244
|
+
["--dataset-type", "--dt"],
|
|
245
|
+
"dataSetType: string //e.g., 'T' for test, 'E' for evaluation, etc.",
|
|
246
|
+
True
|
|
247
|
+
),
|
|
248
|
+
Option(
|
|
249
|
+
"dataset_active",
|
|
250
|
+
["--dataset-active", "--da"],
|
|
251
|
+
"dataSetActive: boolean. 0: False; 1: True",
|
|
252
|
+
True
|
|
253
|
+
),
|
|
254
|
+
Option(
|
|
255
|
+
"row",
|
|
256
|
+
["--row", "-r"],
|
|
257
|
+
"JSON object containing row data",
|
|
258
|
+
True
|
|
259
|
+
),
|
|
260
|
+
]
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
def delete_dataset(option_list: list):
|
|
264
|
+
dataset_id = None
|
|
265
|
+
|
|
266
|
+
for option_flag, option_arg in option_list:
|
|
267
|
+
if option_flag.name == "dataset_id":
|
|
268
|
+
dataset_id = option_arg
|
|
269
|
+
|
|
270
|
+
if not dataset_id:
|
|
271
|
+
raise MissingRequirementException("Cannot delete dataset without specifying id.")
|
|
272
|
+
|
|
273
|
+
client = EvaluationDatasetClient()
|
|
274
|
+
result = client.delete_dataset(
|
|
275
|
+
dataset_id=dataset_id
|
|
276
|
+
)
|
|
277
|
+
Console.write_stdout(f"Deleted dataset detail: \n{result}")
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
delete_dataset_options = [
|
|
281
|
+
Option(
|
|
282
|
+
"dataset_id",
|
|
283
|
+
["--dataset-id", "--did"],
|
|
284
|
+
"UUID representing the dataset to retrieve",
|
|
285
|
+
True
|
|
286
|
+
),
|
|
287
|
+
]
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
def create_dataset_row(option_list: list):
|
|
291
|
+
dataset_id = None
|
|
292
|
+
row = None
|
|
293
|
+
|
|
294
|
+
for option_flag, option_arg in option_list:
|
|
295
|
+
if option_flag.name == "dataset_id":
|
|
296
|
+
dataset_id = option_arg
|
|
297
|
+
if option_flag.name == "row":
|
|
298
|
+
try:
|
|
299
|
+
row_json = json.loads(option_arg)
|
|
300
|
+
if not isinstance(row_json, dict):
|
|
301
|
+
raise ValueError
|
|
302
|
+
|
|
303
|
+
row = row_json
|
|
304
|
+
except Exception:
|
|
305
|
+
raise WrongArgumentError(
|
|
306
|
+
'Each dataset row must be in JSON format: '
|
|
307
|
+
'\'{"dataSetRowExpectedAnswer": "string", "dataSetRowContextDocument": "string", '
|
|
308
|
+
'"dataSetRowInput": "string", "expectedSources": [ {...} ], "filterVariables": [ {...} ]}\' '
|
|
309
|
+
'It must be a dictionary containing dataSetRowExpectedAnswer, dataSetRowContextDocument, '
|
|
310
|
+
'and dataSetRowInput as strings. The expectedSources array, if present, must contain dictionaries with '
|
|
311
|
+
'dataSetExpectedSourceId, dataSetExpectedSourceName, dataSetExpectedSourceValue, and dataSetExpectedSourceExtension as strings. '
|
|
312
|
+
'The filterVariables array, if present, must contain dictionaries with dataSetMetadataType, dataSetRowFilterKey, '
|
|
313
|
+
'dataSetRowFilterOperator, dataSetRowFilterValue, and dataSetRowFilterVarId as strings.'
|
|
314
|
+
)
|
|
315
|
+
|
|
316
|
+
if not dataset_id:
|
|
317
|
+
raise MissingRequirementException("Cannot create dataset row without specifying id.")
|
|
318
|
+
|
|
319
|
+
validate_row_structure(row)
|
|
320
|
+
|
|
321
|
+
client = EvaluationDatasetClient()
|
|
322
|
+
result = client.create_dataset_row(
|
|
323
|
+
dataset_id=dataset_id,
|
|
324
|
+
row=row
|
|
325
|
+
)
|
|
326
|
+
Console.write_stdout(f"Deleted dataset detail: \n{result}")
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
create_dataset_row_options = [
|
|
330
|
+
Option(
|
|
331
|
+
"dataset_id",
|
|
332
|
+
["--dataset-id", "--did"],
|
|
333
|
+
"UUID representing the dataset to retrieve",
|
|
334
|
+
True
|
|
335
|
+
),
|
|
336
|
+
Option(
|
|
337
|
+
"row",
|
|
338
|
+
["--row", "-r"],
|
|
339
|
+
"JSON object containing row data",
|
|
340
|
+
True
|
|
341
|
+
),
|
|
342
|
+
]
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+
def list_dataset_rows(option_list: list):
|
|
346
|
+
dataset_id = None
|
|
347
|
+
|
|
348
|
+
for option_flag, option_arg in option_list:
|
|
349
|
+
if option_flag.name == "dataset_id":
|
|
350
|
+
dataset_id = option_arg
|
|
351
|
+
|
|
352
|
+
if not dataset_id:
|
|
353
|
+
raise MissingRequirementException("Cannot list dataset rows without specifying id.")
|
|
354
|
+
|
|
355
|
+
client = EvaluationDatasetClient()
|
|
356
|
+
result = client.list_dataset_rows(
|
|
357
|
+
dataset_id=dataset_id
|
|
358
|
+
)
|
|
359
|
+
Console.write_stdout(f"Dataset rows: \n{result}")
|
|
360
|
+
|
|
361
|
+
|
|
362
|
+
list_dataset_rows_options = [
|
|
363
|
+
Option(
|
|
364
|
+
"dataset_id",
|
|
365
|
+
["--dataset-id", "--did"],
|
|
366
|
+
"UUID representing the dataset to retrieve",
|
|
367
|
+
True
|
|
368
|
+
),
|
|
369
|
+
]
|
|
370
|
+
|
|
371
|
+
|
|
372
|
+
def get_dataset_row(option_list: list):
|
|
373
|
+
dataset_id = None
|
|
374
|
+
row_id = None
|
|
375
|
+
|
|
376
|
+
for option_flag, option_arg in option_list:
|
|
377
|
+
if option_flag.name == "dataset_id":
|
|
378
|
+
dataset_id = option_arg
|
|
379
|
+
if option_flag.name == "row_id":
|
|
380
|
+
row_id = option_arg
|
|
381
|
+
|
|
382
|
+
if not (dataset_id and row_id):
|
|
383
|
+
raise MissingRequirementException("Cannot get dataset row without specifying id of dataset and row.")
|
|
384
|
+
|
|
385
|
+
client = EvaluationDatasetClient()
|
|
386
|
+
result = client.get_dataset_row(
|
|
387
|
+
dataset_id=dataset_id,
|
|
388
|
+
dataset_row_id=row_id
|
|
389
|
+
)
|
|
390
|
+
Console.write_stdout(f"Row detail: \n{result}")
|
|
391
|
+
|
|
392
|
+
|
|
393
|
+
get_dataset_row_options = [
|
|
394
|
+
Option(
|
|
395
|
+
"dataset_id",
|
|
396
|
+
["--dataset-id", "--did"],
|
|
397
|
+
"UUID representing the dataset to retrieve",
|
|
398
|
+
True
|
|
399
|
+
),
|
|
400
|
+
Option(
|
|
401
|
+
"row_id",
|
|
402
|
+
["--row-id", "--rid"],
|
|
403
|
+
"UUID representing the row dataset to retrieve",
|
|
404
|
+
True
|
|
405
|
+
),
|
|
406
|
+
]
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
def update_dataset_row(option_list: list):
|
|
410
|
+
dataset_id = None
|
|
411
|
+
row_id = None
|
|
412
|
+
row = None
|
|
413
|
+
|
|
414
|
+
for option_flag, option_arg in option_list:
|
|
415
|
+
if option_flag.name == "dataset_id":
|
|
416
|
+
dataset_id = option_arg
|
|
417
|
+
if option_flag.name == "row_id":
|
|
418
|
+
row_id = option_arg
|
|
419
|
+
if option_flag.name == "row":
|
|
420
|
+
try:
|
|
421
|
+
row_json = json.loads(option_arg)
|
|
422
|
+
if not isinstance(row_json, dict):
|
|
423
|
+
raise ValueError
|
|
424
|
+
|
|
425
|
+
row = row_json
|
|
426
|
+
except Exception:
|
|
427
|
+
raise WrongArgumentError(
|
|
428
|
+
'Each dataset row must be in JSON format: '
|
|
429
|
+
'\'{"dataSetRowExpectedAnswer": "string", "dataSetRowContextDocument": "string", '
|
|
430
|
+
'"dataSetRowInput": "string", "expectedSources": [ {...} ], "filterVariables": [ {...} ]}\' '
|
|
431
|
+
'It must be a dictionary containing dataSetRowExpectedAnswer, dataSetRowContextDocument, '
|
|
432
|
+
'and dataSetRowInput as strings. The expectedSources array, if present, must contain dictionaries with '
|
|
433
|
+
'dataSetExpectedSourceId, dataSetExpectedSourceName, dataSetExpectedSourceValue, and dataSetExpectedSourceExtension as strings. '
|
|
434
|
+
'The filterVariables array, if present, must contain dictionaries with dataSetMetadataType, dataSetRowFilterKey, '
|
|
435
|
+
'dataSetRowFilterOperator, dataSetRowFilterValue, and dataSetRowFilterVarId as strings.'
|
|
436
|
+
)
|
|
437
|
+
|
|
438
|
+
if not (dataset_id and row_id):
|
|
439
|
+
raise MissingRequirementException("Cannot update dataset row without specifying id of dataset and row.")
|
|
440
|
+
|
|
441
|
+
validate_row_structure(row)
|
|
442
|
+
|
|
443
|
+
client = EvaluationDatasetClient()
|
|
444
|
+
result = client.update_dataset_row(
|
|
445
|
+
dataset_id=dataset_id,
|
|
446
|
+
dataset_row_id=row_id,
|
|
447
|
+
row=row
|
|
448
|
+
)
|
|
449
|
+
Console.write_stdout(f"Row detail: \n{result}")
|
|
450
|
+
|
|
451
|
+
|
|
452
|
+
update_dataset_row_options = [
|
|
453
|
+
Option(
|
|
454
|
+
"dataset_id",
|
|
455
|
+
["--dataset-id", "--did"],
|
|
456
|
+
"UUID representing the dataset to retrieve",
|
|
457
|
+
True
|
|
458
|
+
),
|
|
459
|
+
Option(
|
|
460
|
+
"row_id",
|
|
461
|
+
["--row-id", "--rid"],
|
|
462
|
+
"UUID representing the row dataset to retrieve",
|
|
463
|
+
True
|
|
464
|
+
),
|
|
465
|
+
Option(
|
|
466
|
+
"row",
|
|
467
|
+
["--row", "-r"],
|
|
468
|
+
"JSON object containing row data",
|
|
469
|
+
True
|
|
470
|
+
),
|
|
471
|
+
]
|
|
472
|
+
|
|
473
|
+
|
|
474
|
+
def delete_dataset_row(option_list: list):
|
|
475
|
+
dataset_id = None
|
|
476
|
+
row_id = None
|
|
477
|
+
|
|
478
|
+
for option_flag, option_arg in option_list:
|
|
479
|
+
if option_flag.name == "dataset_id":
|
|
480
|
+
dataset_id = option_arg
|
|
481
|
+
if option_flag.name == "row_id":
|
|
482
|
+
row_id = option_arg
|
|
483
|
+
|
|
484
|
+
if not (dataset_id and row_id):
|
|
485
|
+
raise MissingRequirementException("Cannot delete dataset row without specifying id of dataset and row.")
|
|
486
|
+
|
|
487
|
+
client = EvaluationDatasetClient()
|
|
488
|
+
result = client.delete_dataset_row(
|
|
489
|
+
dataset_id=dataset_id,
|
|
490
|
+
dataset_row_id=row_id
|
|
491
|
+
)
|
|
492
|
+
Console.write_stdout(f"Deleted row detail: \n{result}")
|
|
493
|
+
|
|
494
|
+
|
|
495
|
+
delete_dataset_row_options = [
|
|
496
|
+
Option(
|
|
497
|
+
"dataset_id",
|
|
498
|
+
["--dataset-id", "--did"],
|
|
499
|
+
"UUID representing the dataset to retrieve",
|
|
500
|
+
True
|
|
501
|
+
),
|
|
502
|
+
Option(
|
|
503
|
+
"row_id",
|
|
504
|
+
["--row-id", "--rid"],
|
|
505
|
+
"UUID representing the row dataset to retrieve",
|
|
506
|
+
True
|
|
507
|
+
),
|
|
508
|
+
]
|
|
509
|
+
|
|
510
|
+
|
|
511
|
+
def create_dataset_row_expected_source(option_list: list):
|
|
512
|
+
dataset_id = None
|
|
513
|
+
row_id = None
|
|
514
|
+
name = None
|
|
515
|
+
value = None
|
|
516
|
+
extension = None
|
|
517
|
+
|
|
518
|
+
for option_flag, option_arg in option_list:
|
|
519
|
+
if option_flag.name == "dataset_id":
|
|
520
|
+
dataset_id = option_arg
|
|
521
|
+
if option_flag.name == "row_id":
|
|
522
|
+
row_id = option_arg
|
|
523
|
+
if option_flag.name == "name":
|
|
524
|
+
name = option_arg
|
|
525
|
+
if option_flag.name == "value":
|
|
526
|
+
value = option_arg
|
|
527
|
+
if option_flag.name == "extension":
|
|
528
|
+
extension = option_arg
|
|
529
|
+
|
|
530
|
+
if not (dataset_id and row_id):
|
|
531
|
+
raise MissingRequirementException("Cannot create dataset row expected source without specifying id of dataset and row.")
|
|
532
|
+
|
|
533
|
+
client = EvaluationDatasetClient()
|
|
534
|
+
result = client.create_expected_source(
|
|
535
|
+
dataset_id=dataset_id,
|
|
536
|
+
dataset_row_id=row_id,
|
|
537
|
+
expected_source_name=name,
|
|
538
|
+
expected_source_value=value,
|
|
539
|
+
expected_source_extension=extension,
|
|
540
|
+
)
|
|
541
|
+
Console.write_stdout(f"Extended source detail: \n{result}")
|
|
542
|
+
|
|
543
|
+
|
|
544
|
+
create_dataset_row_expected_source_options = [
|
|
545
|
+
Option(
|
|
546
|
+
"dataset_id",
|
|
547
|
+
["--dataset-id", "--did"],
|
|
548
|
+
"UUID representing the dataset to retrieve",
|
|
549
|
+
True
|
|
550
|
+
),
|
|
551
|
+
Option(
|
|
552
|
+
"row_id",
|
|
553
|
+
["--row-id", "--rid"],
|
|
554
|
+
"UUID representing the row dataset to retrieve",
|
|
555
|
+
True
|
|
556
|
+
),
|
|
557
|
+
Option(
|
|
558
|
+
"dataset_expected_source_name",
|
|
559
|
+
["--name", "-n"],
|
|
560
|
+
"dataSetExpectedSourceName: string",
|
|
561
|
+
True
|
|
562
|
+
),
|
|
563
|
+
Option(
|
|
564
|
+
"dataset_expected_source_value",
|
|
565
|
+
["--value", "-v"],
|
|
566
|
+
"dataSetExpectedSourceValue: string",
|
|
567
|
+
True
|
|
568
|
+
),
|
|
569
|
+
Option(
|
|
570
|
+
"dataset_expected_source_extension",
|
|
571
|
+
["--extension", "-e"],
|
|
572
|
+
"dataSetExpectedSourceExtension: string //e.g., 'txt', 'pdf', 'json'",
|
|
573
|
+
True
|
|
574
|
+
),
|
|
575
|
+
]
|
|
576
|
+
|
|
577
|
+
|
|
578
|
+
def list_dataset_row_expected_sources(option_list: list):
|
|
579
|
+
dataset_id = None
|
|
580
|
+
row_id = None
|
|
581
|
+
|
|
582
|
+
for option_flag, option_arg in option_list:
|
|
583
|
+
if option_flag.name == "dataset_id":
|
|
584
|
+
dataset_id = option_arg
|
|
585
|
+
if option_flag.name == "row_id":
|
|
586
|
+
row_id = option_arg
|
|
587
|
+
|
|
588
|
+
if not (dataset_id and row_id):
|
|
589
|
+
raise MissingRequirementException("Cannot list dataset row expected sources without specifying id of dataset and row.")
|
|
590
|
+
|
|
591
|
+
client = EvaluationDatasetClient()
|
|
592
|
+
result = client.list_expected_sources(
|
|
593
|
+
dataset_id=dataset_id,
|
|
594
|
+
dataset_row_id=row_id
|
|
595
|
+
)
|
|
596
|
+
Console.write_stdout(f"Expected sources: \n{result}")
|
|
597
|
+
|
|
598
|
+
|
|
599
|
+
list_dataset_row_expected_sources_options = [
|
|
600
|
+
Option(
|
|
601
|
+
"dataset_id",
|
|
602
|
+
["--dataset-id", "--did"],
|
|
603
|
+
"UUID representing the dataset to retrieve",
|
|
604
|
+
True
|
|
605
|
+
),
|
|
606
|
+
Option(
|
|
607
|
+
"row_id",
|
|
608
|
+
["--row-id", "--rid"],
|
|
609
|
+
"UUID representing the row dataset to retrieve",
|
|
610
|
+
True
|
|
611
|
+
),
|
|
612
|
+
]
|
|
613
|
+
|
|
614
|
+
|
|
615
|
+
def get_dataset_row_expected_source(option_list: list):
|
|
616
|
+
dataset_id = None
|
|
617
|
+
row_id = None
|
|
618
|
+
expected_source_id = None
|
|
619
|
+
|
|
620
|
+
for option_flag, option_arg in option_list:
|
|
621
|
+
if option_flag.name == "dataset_id":
|
|
622
|
+
dataset_id = option_arg
|
|
623
|
+
if option_flag.name == "row_id":
|
|
624
|
+
row_id = option_arg
|
|
625
|
+
if option_flag.name == "expected_source_id":
|
|
626
|
+
expected_source_id = option_arg
|
|
627
|
+
|
|
628
|
+
if not (dataset_id and row_id and expected_source_id):
|
|
629
|
+
raise MissingRequirementException("Cannot get expected sources without specifying id of dataset, row and expected source.")
|
|
630
|
+
|
|
631
|
+
client = EvaluationDatasetClient()
|
|
632
|
+
result = client.get_expected_source(
|
|
633
|
+
dataset_id=dataset_id,
|
|
634
|
+
dataset_row_id=row_id,
|
|
635
|
+
expected_source_id=expected_source_id
|
|
636
|
+
)
|
|
637
|
+
Console.write_stdout(f"Expected source detail: \n{result}")
|
|
638
|
+
|
|
639
|
+
|
|
640
|
+
get_dataset_row_expected_source_options = [
|
|
641
|
+
Option(
|
|
642
|
+
"dataset_id",
|
|
643
|
+
["--dataset-id", "--did"],
|
|
644
|
+
"UUID representing the dataset to retrieve",
|
|
645
|
+
True
|
|
646
|
+
),
|
|
647
|
+
Option(
|
|
648
|
+
"row_id",
|
|
649
|
+
["--row-id", "--rid"],
|
|
650
|
+
"UUID representing the row dataset to retrieve",
|
|
651
|
+
True
|
|
652
|
+
),
|
|
653
|
+
Option(
|
|
654
|
+
"expected_source_id",
|
|
655
|
+
["--expected-source-id", "--esid"],
|
|
656
|
+
"UUID representing the expected source to retrieve",
|
|
657
|
+
True
|
|
658
|
+
),
|
|
659
|
+
]
|
|
660
|
+
|
|
661
|
+
|
|
662
|
+
def update_dataset_row_expected_source(option_list: list):
|
|
663
|
+
dataset_id = None
|
|
664
|
+
row_id = None
|
|
665
|
+
expected_source_id = None
|
|
666
|
+
name = None
|
|
667
|
+
value = None
|
|
668
|
+
extension = None
|
|
669
|
+
|
|
670
|
+
for option_flag, option_arg in option_list:
|
|
671
|
+
if option_flag.name == "dataset_id":
|
|
672
|
+
dataset_id = option_arg
|
|
673
|
+
if option_flag.name == "row_id":
|
|
674
|
+
row_id = option_arg
|
|
675
|
+
if option_flag.name == "expected_source_id":
|
|
676
|
+
expected_source_id = option_arg
|
|
677
|
+
if option_flag.name == "name":
|
|
678
|
+
name = option_arg
|
|
679
|
+
if option_flag.name == "value":
|
|
680
|
+
value = option_arg
|
|
681
|
+
if option_flag.name == "extension":
|
|
682
|
+
extension = option_arg
|
|
683
|
+
|
|
684
|
+
if not (dataset_id and row_id and expected_source_id):
|
|
685
|
+
raise MissingRequirementException("Cannot update expected sources without specifying id of dataset, row and expected source.")
|
|
686
|
+
|
|
687
|
+
client = EvaluationDatasetClient()
|
|
688
|
+
result = client.update_expected_source(
|
|
689
|
+
dataset_id=dataset_id,
|
|
690
|
+
dataset_row_id=row_id,
|
|
691
|
+
expected_source_id=expected_source_id,
|
|
692
|
+
expected_source_name=name,
|
|
693
|
+
expected_source_value=value,
|
|
694
|
+
expected_source_extension=extension,
|
|
695
|
+
|
|
696
|
+
)
|
|
697
|
+
Console.write_stdout(f"Updated expected source detail: \n{result}")
|
|
698
|
+
|
|
699
|
+
|
|
700
|
+
update_dataset_row_expected_source_options = [
|
|
701
|
+
Option(
|
|
702
|
+
"dataset_id",
|
|
703
|
+
["--dataset-id", "--did"],
|
|
704
|
+
"UUID representing the dataset to retrieve",
|
|
705
|
+
True
|
|
706
|
+
),
|
|
707
|
+
Option(
|
|
708
|
+
"row_id",
|
|
709
|
+
["--row-id", "--rid"],
|
|
710
|
+
"UUID representing the row dataset to retrieve",
|
|
711
|
+
True
|
|
712
|
+
),
|
|
713
|
+
Option(
|
|
714
|
+
"expected_source_id",
|
|
715
|
+
["--expected-source-id", "--esid"],
|
|
716
|
+
"UUID representing the expected source to retrieve",
|
|
717
|
+
True
|
|
718
|
+
),
|
|
719
|
+
Option(
|
|
720
|
+
"dataset_expected_source_name",
|
|
721
|
+
["--name", "-n"],
|
|
722
|
+
"dataSetExpectedSourceName: string",
|
|
723
|
+
True
|
|
724
|
+
),
|
|
725
|
+
Option(
|
|
726
|
+
"dataset_expected_source_value",
|
|
727
|
+
["--value", "-v"],
|
|
728
|
+
"dataSetExpectedSourceValue: string",
|
|
729
|
+
True
|
|
730
|
+
),
|
|
731
|
+
Option(
|
|
732
|
+
"dataset_expected_source_extension",
|
|
733
|
+
["--extension", "-e"],
|
|
734
|
+
"dataSetExpectedSourceExtension: string //e.g., 'txt', 'pdf', 'json'",
|
|
735
|
+
True
|
|
736
|
+
),
|
|
737
|
+
]
|
|
738
|
+
|
|
739
|
+
|
|
740
|
+
def delete_dataset_row_expected_source(option_list: list):
|
|
741
|
+
dataset_id = None
|
|
742
|
+
row_id = None
|
|
743
|
+
expected_source_id = None
|
|
744
|
+
|
|
745
|
+
for option_flag, option_arg in option_list:
|
|
746
|
+
if option_flag.name == "dataset_id":
|
|
747
|
+
dataset_id = option_arg
|
|
748
|
+
if option_flag.name == "row_id":
|
|
749
|
+
row_id = option_arg
|
|
750
|
+
if option_flag.name == "expected_source_id":
|
|
751
|
+
expected_source_id = option_arg
|
|
752
|
+
|
|
753
|
+
if not (dataset_id and row_id and expected_source_id):
|
|
754
|
+
raise MissingRequirementException("Cannot delete expected sources without specifying id of dataset, row and expected source.")
|
|
755
|
+
|
|
756
|
+
client = EvaluationDatasetClient()
|
|
757
|
+
result = client.delete_expected_source(
|
|
758
|
+
dataset_id=dataset_id,
|
|
759
|
+
dataset_row_id=row_id,
|
|
760
|
+
expected_source_id=expected_source_id
|
|
761
|
+
)
|
|
762
|
+
Console.write_stdout(f"Deleted expected source detail: \n{result}")
|
|
763
|
+
|
|
764
|
+
|
|
765
|
+
delete_dataset_row_expected_source_options = [
|
|
766
|
+
Option(
|
|
767
|
+
"dataset_id",
|
|
768
|
+
["--dataset-id", "--did"],
|
|
769
|
+
"UUID representing the dataset to retrieve",
|
|
770
|
+
True
|
|
771
|
+
),
|
|
772
|
+
Option(
|
|
773
|
+
"row_id",
|
|
774
|
+
["--row-id", "--rid"],
|
|
775
|
+
"UUID representing the row dataset to retrieve",
|
|
776
|
+
True
|
|
777
|
+
),
|
|
778
|
+
Option(
|
|
779
|
+
"expected_source_id",
|
|
780
|
+
["--expected-source-id", "--esid"],
|
|
781
|
+
"UUID representing the expected source to retrieve",
|
|
782
|
+
True
|
|
783
|
+
),
|
|
784
|
+
]
|
|
785
|
+
|
|
786
|
+
|
|
787
|
+
def create_dataset_row_filter_variable(option_list: list):
|
|
788
|
+
dataset_id = None
|
|
789
|
+
row_id = None
|
|
790
|
+
metadata_type = None
|
|
791
|
+
key = None
|
|
792
|
+
value = None
|
|
793
|
+
operator = None
|
|
794
|
+
|
|
795
|
+
for option_flag, option_arg in option_list:
|
|
796
|
+
if option_flag.name == "dataset_id":
|
|
797
|
+
dataset_id = option_arg
|
|
798
|
+
if option_flag.name == "row_id":
|
|
799
|
+
row_id = option_arg
|
|
800
|
+
if option_flag.name == "metadata_type":
|
|
801
|
+
metadata_type = option_arg
|
|
802
|
+
if option_flag.name == "key":
|
|
803
|
+
key = option_arg
|
|
804
|
+
if option_flag.name == "value":
|
|
805
|
+
value = option_arg
|
|
806
|
+
if option_flag.name == "operator":
|
|
807
|
+
operator = option_arg
|
|
808
|
+
|
|
809
|
+
if not (dataset_id and row_id):
|
|
810
|
+
raise MissingRequirementException("Cannot create dataset row filter variable without specifying id of dataset and row.")
|
|
811
|
+
|
|
812
|
+
client = EvaluationDatasetClient()
|
|
813
|
+
result = client.create_filter_variable(
|
|
814
|
+
dataset_id=dataset_id,
|
|
815
|
+
dataset_row_id=row_id,
|
|
816
|
+
metadata_type=metadata_type,
|
|
817
|
+
filter_variable_key=key,
|
|
818
|
+
filter_variable_value=value,
|
|
819
|
+
filter_variable_operator=operator,
|
|
820
|
+
)
|
|
821
|
+
Console.write_stdout(f"Filter variable detail: \n{result}")
|
|
822
|
+
|
|
823
|
+
|
|
824
|
+
create_dataset_row_filter_variable_options = [
|
|
825
|
+
Option(
|
|
826
|
+
"dataset_id",
|
|
827
|
+
["--dataset-id", "--did"],
|
|
828
|
+
"UUID representing the dataset to retrieve",
|
|
829
|
+
True
|
|
830
|
+
),
|
|
831
|
+
Option(
|
|
832
|
+
"row_id",
|
|
833
|
+
["--row-id", "--rid"],
|
|
834
|
+
"UUID representing the row dataset to retrieve",
|
|
835
|
+
True
|
|
836
|
+
),
|
|
837
|
+
Option(
|
|
838
|
+
"dataset_metadata_type",
|
|
839
|
+
["--metadata-type", "--mt"],
|
|
840
|
+
"dataSetMetadataType: string //e.g., 'V' for variable, 'F' for flag, etc.",
|
|
841
|
+
True
|
|
842
|
+
),
|
|
843
|
+
Option(
|
|
844
|
+
"dataset_filter_variable_key",
|
|
845
|
+
["--key", "-k"],
|
|
846
|
+
"dataSetRowFilterKey: string. The name of the filter key",
|
|
847
|
+
True
|
|
848
|
+
),
|
|
849
|
+
Option(
|
|
850
|
+
"dataset_filter_variable_value",
|
|
851
|
+
["--value", "-v"],
|
|
852
|
+
"dataSetRowFilterValue: string. The value to filter by",
|
|
853
|
+
True
|
|
854
|
+
),
|
|
855
|
+
Option(
|
|
856
|
+
"dataset_filter_variable_operator",
|
|
857
|
+
["--operator", "-o"],
|
|
858
|
+
"dataSetRowFilterOperator: string ///e.g., '=', '!=', '>', '<', 'contains', etc.",
|
|
859
|
+
True
|
|
860
|
+
),
|
|
861
|
+
]
|
|
862
|
+
|
|
863
|
+
|
|
864
|
+
def list_dataset_row_filter_variables(option_list: list):
|
|
865
|
+
dataset_id = None
|
|
866
|
+
row_id = None
|
|
867
|
+
|
|
868
|
+
for option_flag, option_arg in option_list:
|
|
869
|
+
if option_flag.name == "dataset_id":
|
|
870
|
+
dataset_id = option_arg
|
|
871
|
+
if option_flag.name == "row_id":
|
|
872
|
+
row_id = option_arg
|
|
873
|
+
|
|
874
|
+
if not (dataset_id and row_id):
|
|
875
|
+
raise MissingRequirementException("Cannot list dataset row filter variables without specifying id of dataset and row.")
|
|
876
|
+
|
|
877
|
+
client = EvaluationDatasetClient()
|
|
878
|
+
result = client.list_filter_variables(
|
|
879
|
+
dataset_id=dataset_id,
|
|
880
|
+
dataset_row_id=row_id
|
|
881
|
+
)
|
|
882
|
+
Console.write_stdout(f"Filter variables: \n{result}")
|
|
883
|
+
|
|
884
|
+
|
|
885
|
+
list_dataset_row_filter_variables_options = [
|
|
886
|
+
Option(
|
|
887
|
+
"dataset_id",
|
|
888
|
+
["--dataset-id", "--did"],
|
|
889
|
+
"UUID representing the dataset to retrieve",
|
|
890
|
+
True
|
|
891
|
+
),
|
|
892
|
+
Option(
|
|
893
|
+
"row_id",
|
|
894
|
+
["--row-id", "--rid"],
|
|
895
|
+
"UUID representing the row dataset to retrieve",
|
|
896
|
+
True
|
|
897
|
+
),
|
|
898
|
+
]
|
|
899
|
+
|
|
900
|
+
|
|
901
|
+
def get_dataset_row_filter_variable(option_list: list):
|
|
902
|
+
dataset_id = None
|
|
903
|
+
row_id = None
|
|
904
|
+
filter_variable_id = None
|
|
905
|
+
|
|
906
|
+
for option_flag, option_arg in option_list:
|
|
907
|
+
if option_flag.name == "dataset_id":
|
|
908
|
+
dataset_id = option_arg
|
|
909
|
+
if option_flag.name == "row_id":
|
|
910
|
+
row_id = option_arg
|
|
911
|
+
if option_flag.name == "filter_variable_id":
|
|
912
|
+
filter_variable_id = option_arg
|
|
913
|
+
|
|
914
|
+
if not (dataset_id and row_id and filter_variable_id):
|
|
915
|
+
raise MissingRequirementException("Cannot get filter variables without specifying id of dataset, row and filter variable.")
|
|
916
|
+
|
|
917
|
+
client = EvaluationDatasetClient()
|
|
918
|
+
result = client.get_filter_variable(
|
|
919
|
+
dataset_id=dataset_id,
|
|
920
|
+
dataset_row_id=row_id,
|
|
921
|
+
filter_variable_id=filter_variable_id
|
|
922
|
+
)
|
|
923
|
+
Console.write_stdout(f"Filter variable detail: \n{result}")
|
|
924
|
+
|
|
925
|
+
|
|
926
|
+
get_dataset_row_filter_variable_options = [
|
|
927
|
+
Option(
|
|
928
|
+
"dataset_id",
|
|
929
|
+
["--dataset-id", "--did"],
|
|
930
|
+
"UUID representing the dataset to retrieve",
|
|
931
|
+
True
|
|
932
|
+
),
|
|
933
|
+
Option(
|
|
934
|
+
"row_id",
|
|
935
|
+
["--row-id", "--rid"],
|
|
936
|
+
"UUID representing the row dataset to retrieve",
|
|
937
|
+
True
|
|
938
|
+
),
|
|
939
|
+
Option(
|
|
940
|
+
"filter_variable_id",
|
|
941
|
+
["--filter-variable-id", "--fvid"],
|
|
942
|
+
"UUID representing the filter variable to retrieve",
|
|
943
|
+
True
|
|
944
|
+
),
|
|
945
|
+
]
|
|
946
|
+
|
|
947
|
+
|
|
948
|
+
def update_dataset_row_filter_variable(option_list: list):
|
|
949
|
+
dataset_id = None
|
|
950
|
+
row_id = None
|
|
951
|
+
filter_variable_id = None
|
|
952
|
+
metadata_type = None
|
|
953
|
+
key = None
|
|
954
|
+
value = None
|
|
955
|
+
operator = None
|
|
956
|
+
|
|
957
|
+
for option_flag, option_arg in option_list:
|
|
958
|
+
if option_flag.name == "dataset_id":
|
|
959
|
+
dataset_id = option_arg
|
|
960
|
+
if option_flag.name == "row_id":
|
|
961
|
+
row_id = option_arg
|
|
962
|
+
if option_flag.name == "filter_variable_id":
|
|
963
|
+
filter_variable_id = option_arg
|
|
964
|
+
if option_flag.name == "metadata_type":
|
|
965
|
+
metadata_type = option_arg
|
|
966
|
+
if option_flag.name == "key":
|
|
967
|
+
key = option_arg
|
|
968
|
+
if option_flag.name == "value":
|
|
969
|
+
value = option_arg
|
|
970
|
+
if option_flag.name == "operator":
|
|
971
|
+
operator = option_arg
|
|
972
|
+
|
|
973
|
+
if not (dataset_id and row_id and filter_variable_id):
|
|
974
|
+
raise MissingRequirementException("Cannot update filter variables without specifying id of dataset, row and filter variable.")
|
|
975
|
+
|
|
976
|
+
client = EvaluationDatasetClient()
|
|
977
|
+
result = client.update_filter_variable(
|
|
978
|
+
dataset_id=dataset_id,
|
|
979
|
+
dataset_row_id=row_id,
|
|
980
|
+
filter_variable_id=filter_variable_id,
|
|
981
|
+
metadata_type=metadata_type,
|
|
982
|
+
filter_variable_key=key,
|
|
983
|
+
filter_variable_value=value,
|
|
984
|
+
filter_variable_operator=operator,
|
|
985
|
+
)
|
|
986
|
+
Console.write_stdout(f"Updated filter variable detail: \n{result}")
|
|
987
|
+
|
|
988
|
+
|
|
989
|
+
update_dataset_row_filter_variable_options = [
|
|
990
|
+
Option(
|
|
991
|
+
"dataset_id",
|
|
992
|
+
["--dataset-id", "--did"],
|
|
993
|
+
"UUID representing the dataset to retrieve",
|
|
994
|
+
True
|
|
995
|
+
),
|
|
996
|
+
Option(
|
|
997
|
+
"row_id",
|
|
998
|
+
["--row-id", "--rid"],
|
|
999
|
+
"UUID representing the row dataset to retrieve",
|
|
1000
|
+
True
|
|
1001
|
+
),
|
|
1002
|
+
Option(
|
|
1003
|
+
"filter_variable_id",
|
|
1004
|
+
["--filter-variable-id", "--fvid"],
|
|
1005
|
+
"UUID representing the filter variable to retrieve",
|
|
1006
|
+
True
|
|
1007
|
+
),
|
|
1008
|
+
Option(
|
|
1009
|
+
"dataset_metadata_type",
|
|
1010
|
+
["--metadata-type", "--mt"],
|
|
1011
|
+
"dataSetMetadataType: string //e.g., 'V' for variable, 'F' for flag, etc.",
|
|
1012
|
+
True
|
|
1013
|
+
),
|
|
1014
|
+
Option(
|
|
1015
|
+
"dataset_filter_variable_key",
|
|
1016
|
+
["--key", "-k"],
|
|
1017
|
+
"dataSetRowFilterKey: string. The name of the filter key",
|
|
1018
|
+
True
|
|
1019
|
+
),
|
|
1020
|
+
Option(
|
|
1021
|
+
"dataset_filter_variable_value",
|
|
1022
|
+
["--value", "-v"],
|
|
1023
|
+
"dataSetRowFilterValue: string. The value to filter by",
|
|
1024
|
+
True
|
|
1025
|
+
),
|
|
1026
|
+
Option(
|
|
1027
|
+
"dataset_filter_variable_operator",
|
|
1028
|
+
["--operator", "-o"],
|
|
1029
|
+
"dataSetRowFilterOperator: string ///e.g., '=', '!=', '>', '<', 'contains', etc.",
|
|
1030
|
+
True
|
|
1031
|
+
),
|
|
1032
|
+
]
|
|
1033
|
+
|
|
1034
|
+
|
|
1035
|
+
def delete_dataset_row_filter_variable(option_list: list):
|
|
1036
|
+
dataset_id = None
|
|
1037
|
+
row_id = None
|
|
1038
|
+
filter_variable_id = None
|
|
1039
|
+
|
|
1040
|
+
for option_flag, option_arg in option_list:
|
|
1041
|
+
if option_flag.name == "dataset_id":
|
|
1042
|
+
dataset_id = option_arg
|
|
1043
|
+
if option_flag.name == "row_id":
|
|
1044
|
+
row_id = option_arg
|
|
1045
|
+
if option_flag.name == "filter_variable_id":
|
|
1046
|
+
filter_variable_id = option_arg
|
|
1047
|
+
|
|
1048
|
+
if not (dataset_id and row_id and filter_variable_id):
|
|
1049
|
+
raise MissingRequirementException("Cannot delete filter variables without specifying id of dataset, row and filter variable.")
|
|
1050
|
+
|
|
1051
|
+
client = EvaluationDatasetClient()
|
|
1052
|
+
result = client.delete_filter_variable(
|
|
1053
|
+
dataset_id=dataset_id,
|
|
1054
|
+
dataset_row_id=row_id,
|
|
1055
|
+
filter_variable_id=filter_variable_id
|
|
1056
|
+
)
|
|
1057
|
+
Console.write_stdout(f"Deleted filter variable detail: \n{result}")
|
|
1058
|
+
|
|
1059
|
+
|
|
1060
|
+
delete_dataset_row_filter_variable_options = [
|
|
1061
|
+
Option(
|
|
1062
|
+
"dataset_id",
|
|
1063
|
+
["--dataset-id", "--did"],
|
|
1064
|
+
"UUID representing the dataset to retrieve",
|
|
1065
|
+
True
|
|
1066
|
+
),
|
|
1067
|
+
Option(
|
|
1068
|
+
"row_id",
|
|
1069
|
+
["--row-id", "--rid"],
|
|
1070
|
+
"UUID representing the row dataset to retrieve",
|
|
1071
|
+
True
|
|
1072
|
+
),
|
|
1073
|
+
Option(
|
|
1074
|
+
"filter_variable_id",
|
|
1075
|
+
["--filter-variable-id", "--fvid"],
|
|
1076
|
+
"UUID representing the filter variable to retrieve",
|
|
1077
|
+
True
|
|
1078
|
+
),
|
|
1079
|
+
]
|
|
1080
|
+
|
|
1081
|
+
|
|
1082
|
+
def update_dataset_rows_file(option_list: list):
|
|
1083
|
+
dataset_id = None
|
|
1084
|
+
dataset_rows_file = None
|
|
1085
|
+
|
|
1086
|
+
for option_flag, option_arg in option_list:
|
|
1087
|
+
if option_flag.name == "dataset_id":
|
|
1088
|
+
dataset_id = option_arg
|
|
1089
|
+
if option_flag.name == "dataset_rows_file":
|
|
1090
|
+
dataset_rows_file = option_arg
|
|
1091
|
+
|
|
1092
|
+
if not (dataset_id and dataset_rows_file):
|
|
1093
|
+
raise MissingRequirementException("Cannot upload dataset rows file without specifying id of dataset, rows file")
|
|
1094
|
+
|
|
1095
|
+
client = EvaluationDatasetClient()
|
|
1096
|
+
result = client.upload_dataset_rows_file(
|
|
1097
|
+
dataset_id=dataset_id,
|
|
1098
|
+
file_path=dataset_rows_file
|
|
1099
|
+
)
|
|
1100
|
+
Console.write_stdout(f"Dataset rows file detail: \n{result}")
|
|
1101
|
+
|
|
1102
|
+
|
|
1103
|
+
update_dataset_rows_file_options = [
|
|
1104
|
+
Option(
|
|
1105
|
+
"dataset_id",
|
|
1106
|
+
["--dataset-id", "--did"],
|
|
1107
|
+
"UUID representing the dataset to retrieve",
|
|
1108
|
+
True
|
|
1109
|
+
),
|
|
1110
|
+
Option(
|
|
1111
|
+
"dataset_rows_file",
|
|
1112
|
+
["--rows-file", "--rf"],
|
|
1113
|
+
"The JSON file should contain an array of DatasetRow objects",
|
|
1114
|
+
True
|
|
1115
|
+
),
|
|
1116
|
+
]
|
|
1117
|
+
|
|
1118
|
+
|
|
1119
|
+
"""
|
|
1120
|
+
EVALUATION PLANS COMMANDS
|
|
1121
|
+
"""
|
|
1122
|
+
|
|
1123
|
+
|
|
1124
|
+
def list_evaluation_plans():
|
|
1125
|
+
client = EvaluationPlanClient()
|
|
1126
|
+
result = client.list_evaluation_plans()
|
|
1127
|
+
Console.write_stdout(f"Evaluation plans: \n{result}")
|
|
1128
|
+
|
|
1129
|
+
|
|
1130
|
+
def create_evaluation_plan(option_list: list):
|
|
1131
|
+
evaluation_plan_name = None
|
|
1132
|
+
evaluation_plan_type = None
|
|
1133
|
+
evaluation_plan_assistant_id = None
|
|
1134
|
+
evaluation_plan_assistant_name = None
|
|
1135
|
+
evaluation_plan_assistant_revision = None
|
|
1136
|
+
evaluation_plan_profile_name = None
|
|
1137
|
+
dataset_id = None
|
|
1138
|
+
system_metrics = list()
|
|
1139
|
+
|
|
1140
|
+
for option_flag, option_arg in option_list:
|
|
1141
|
+
if option_flag.name == "evaluation_plan_name":
|
|
1142
|
+
evaluation_plan_name = option_arg
|
|
1143
|
+
if option_flag.name == "evaluation_plan_type":
|
|
1144
|
+
evaluation_plan_type = option_arg
|
|
1145
|
+
if option_flag.name == "evaluation_plan_assistant_id":
|
|
1146
|
+
evaluation_plan_assistant_id = option_arg
|
|
1147
|
+
if option_flag.name == "evaluation_plan_assistant_name":
|
|
1148
|
+
evaluation_plan_assistant_name = option_arg
|
|
1149
|
+
if option_flag.name == "evaluation_plan_assistant_revision":
|
|
1150
|
+
evaluation_plan_assistant_revision = option_arg
|
|
1151
|
+
if option_flag.name == "evaluation_plan_profile_name":
|
|
1152
|
+
evaluation_plan_profile_name = option_arg
|
|
1153
|
+
if option_flag.name == "dataset_id":
|
|
1154
|
+
dataset_id = option_arg
|
|
1155
|
+
if option_flag.name == "system_metrics":
|
|
1156
|
+
try:
|
|
1157
|
+
metrics_json = json.loads(option_arg)
|
|
1158
|
+
if isinstance(metrics_json, dict):
|
|
1159
|
+
system_metrics.append(metrics_json)
|
|
1160
|
+
elif isinstance(metrics_json, list):
|
|
1161
|
+
system_metrics = metrics_json
|
|
1162
|
+
except Exception:
|
|
1163
|
+
raise WrongArgumentError(
|
|
1164
|
+
'Each system metric must be in JSON format: '
|
|
1165
|
+
'\'{"systemMetricId": "string", "systemMetricWeight": 0.0}\' '
|
|
1166
|
+
'It must be a dictionary containing systemMetricId as a string and systemMetricWeight as a float between 0 and 1.'
|
|
1167
|
+
)
|
|
1168
|
+
|
|
1169
|
+
if not (evaluation_plan_name and evaluation_plan_type):
|
|
1170
|
+
# TODO -> Review required fields
|
|
1171
|
+
raise MissingRequirementException("Cannot create evaluation plan without specifying evaluation plan name and type")
|
|
1172
|
+
|
|
1173
|
+
for metric in system_metrics:
|
|
1174
|
+
validate_system_metric(metric)
|
|
1175
|
+
|
|
1176
|
+
client = EvaluationPlanClient()
|
|
1177
|
+
result = client.create_evaluation_plan(
|
|
1178
|
+
name=evaluation_plan_name,
|
|
1179
|
+
type=evaluation_plan_type,
|
|
1180
|
+
assistant_id=evaluation_plan_assistant_id,
|
|
1181
|
+
assistant_name=evaluation_plan_assistant_name,
|
|
1182
|
+
assistant_revision=evaluation_plan_assistant_revision,
|
|
1183
|
+
profile_name=evaluation_plan_profile_name,
|
|
1184
|
+
dataset_id=dataset_id,
|
|
1185
|
+
system_metrics=system_metrics,
|
|
1186
|
+
)
|
|
1187
|
+
Console.write_stdout(f"New evaluation plan detail: \n{result}")
|
|
1188
|
+
|
|
1189
|
+
|
|
1190
|
+
create_evaluation_plan_options = [
|
|
1191
|
+
Option(
|
|
1192
|
+
"evaluation_plan_name",
|
|
1193
|
+
["--name", "--epn"],
|
|
1194
|
+
"Name of the evaluation plan",
|
|
1195
|
+
True
|
|
1196
|
+
),
|
|
1197
|
+
Option(
|
|
1198
|
+
"evaluation_plan_type",
|
|
1199
|
+
["--assistant-type", "--epat"],
|
|
1200
|
+
"Type of assistant (e.g., 'TextPromptAssistant', 'RAG Assistant')",
|
|
1201
|
+
True
|
|
1202
|
+
),
|
|
1203
|
+
Option(
|
|
1204
|
+
"evaluation_plan_assistant_id",
|
|
1205
|
+
["--assistant-id", "--epai"],
|
|
1206
|
+
"UUID of the assistant (optional, required for TextPromptAssistant)",
|
|
1207
|
+
True
|
|
1208
|
+
),
|
|
1209
|
+
Option(
|
|
1210
|
+
"evaluation_plan_assistant_name",
|
|
1211
|
+
["--assistant-name", "--epan"],
|
|
1212
|
+
"Name of the assistant (optional, required for TextPromptAssistant)",
|
|
1213
|
+
True
|
|
1214
|
+
),
|
|
1215
|
+
Option(
|
|
1216
|
+
"evaluation_plan_assistant_revision",
|
|
1217
|
+
["--assistant-revision", "--epar"],
|
|
1218
|
+
"Revision of the assistant (optional, required for TextPromptAssistant)",
|
|
1219
|
+
True
|
|
1220
|
+
),
|
|
1221
|
+
Option(
|
|
1222
|
+
"evaluation_plan_profile_name",
|
|
1223
|
+
["--profile-name", "--eppn"],
|
|
1224
|
+
"Name of the RAG profile (optional, required for RAG Assistant)",
|
|
1225
|
+
True
|
|
1226
|
+
),
|
|
1227
|
+
Option(
|
|
1228
|
+
"dataset_id",
|
|
1229
|
+
["--dataset-id", "--did"],
|
|
1230
|
+
"ID of the dataset (optional)",
|
|
1231
|
+
True
|
|
1232
|
+
),
|
|
1233
|
+
Option(
|
|
1234
|
+
"system_metrics",
|
|
1235
|
+
["--system-metrics", "--sm"],
|
|
1236
|
+
"Array of system metrics (each with 'systemMetricId' and 'systemMetricWeight')"
|
|
1237
|
+
"Alternatively, multiple instances of --sm can be passes as arguments for a single list.",
|
|
1238
|
+
True
|
|
1239
|
+
)
|
|
1240
|
+
]
|
|
1241
|
+
|
|
1242
|
+
|
|
1243
|
+
def get_evaluation_plan(option_list: list):
|
|
1244
|
+
evaluation_plan_id = None
|
|
1245
|
+
|
|
1246
|
+
for option_flag, option_arg in option_list:
|
|
1247
|
+
if option_flag.name == "evaluation_plan_id":
|
|
1248
|
+
evaluation_plan_id = option_arg
|
|
1249
|
+
|
|
1250
|
+
if not evaluation_plan_id:
|
|
1251
|
+
raise MissingRequirementException("Cannot get evaluation plan without specifying id")
|
|
1252
|
+
|
|
1253
|
+
client = EvaluationPlanClient()
|
|
1254
|
+
result = client.get_evaluation_plan(
|
|
1255
|
+
evaluation_plan_id=evaluation_plan_id
|
|
1256
|
+
)
|
|
1257
|
+
Console.write_stdout(f"Evaluation plan detail: \n{result}")
|
|
1258
|
+
|
|
1259
|
+
|
|
1260
|
+
get_evaluation_plan_options = [
|
|
1261
|
+
Option(
|
|
1262
|
+
"evaluation_plan_id",
|
|
1263
|
+
["--evaluation-plan-id", "--epid"],
|
|
1264
|
+
"UUID representing the evaluation plan to retrieve",
|
|
1265
|
+
True
|
|
1266
|
+
),
|
|
1267
|
+
]
|
|
1268
|
+
|
|
1269
|
+
|
|
1270
|
+
def update_evaluation_plan(option_list: list):
|
|
1271
|
+
evaluation_plan_id = None
|
|
1272
|
+
evaluation_plan_name = None
|
|
1273
|
+
evaluation_plan_type = None
|
|
1274
|
+
evaluation_plan_assistant_id = None
|
|
1275
|
+
evaluation_plan_assistant_name = None
|
|
1276
|
+
evaluation_plan_assistant_revision = None
|
|
1277
|
+
evaluation_plan_profile_name = None
|
|
1278
|
+
dataset_id = None
|
|
1279
|
+
system_metrics = list()
|
|
1280
|
+
|
|
1281
|
+
for option_flag, option_arg in option_list:
|
|
1282
|
+
if option_flag.name == "evaluation_plan_id":
|
|
1283
|
+
evaluation_plan_id = option_arg
|
|
1284
|
+
if option_flag.name == "evaluation_plan_name":
|
|
1285
|
+
evaluation_plan_name = option_arg
|
|
1286
|
+
if option_flag.name == "evaluation_plan_type":
|
|
1287
|
+
evaluation_plan_type = option_arg
|
|
1288
|
+
if option_flag.name == "evaluation_plan_assistant_id":
|
|
1289
|
+
evaluation_plan_assistant_id = option_arg
|
|
1290
|
+
if option_flag.name == "evaluation_plan_assistant_name":
|
|
1291
|
+
evaluation_plan_assistant_name = option_arg
|
|
1292
|
+
if option_flag.name == "evaluation_plan_assistant_revision":
|
|
1293
|
+
evaluation_plan_assistant_revision = option_arg
|
|
1294
|
+
if option_flag.name == "evaluation_plan_profile_name":
|
|
1295
|
+
evaluation_plan_profile_name = option_arg
|
|
1296
|
+
if option_flag.name == "dataset_id":
|
|
1297
|
+
dataset_id = option_arg
|
|
1298
|
+
if option_flag.name == "system_metrics":
|
|
1299
|
+
try:
|
|
1300
|
+
metrics_json = json.loads(option_arg)
|
|
1301
|
+
if isinstance(metrics_json, dict):
|
|
1302
|
+
system_metrics.append(metrics_json)
|
|
1303
|
+
elif isinstance(metrics_json, list):
|
|
1304
|
+
system_metrics = metrics_json
|
|
1305
|
+
except Exception:
|
|
1306
|
+
raise WrongArgumentError(
|
|
1307
|
+
'Each system metric must be in JSON format: '
|
|
1308
|
+
'\'{"systemMetricId": "string", "systemMetricWeight": 0.0}\' '
|
|
1309
|
+
'It must be a dictionary containing systemMetricId as a string and systemMetricWeight as a float between 0 and 1.'
|
|
1310
|
+
)
|
|
1311
|
+
|
|
1312
|
+
if not evaluation_plan_id:
|
|
1313
|
+
raise MissingRequirementException("Cannot update evaluation plan without specifying id")
|
|
1314
|
+
|
|
1315
|
+
for metric in system_metrics:
|
|
1316
|
+
validate_system_metric(metric)
|
|
1317
|
+
|
|
1318
|
+
client = EvaluationPlanClient()
|
|
1319
|
+
result = client.update_evaluation_plan(
|
|
1320
|
+
evaluation_plan_id=evaluation_plan_id,
|
|
1321
|
+
name=evaluation_plan_name,
|
|
1322
|
+
type=evaluation_plan_type,
|
|
1323
|
+
assistant_id=evaluation_plan_assistant_id,
|
|
1324
|
+
assistant_name=evaluation_plan_assistant_name,
|
|
1325
|
+
assistant_revision=evaluation_plan_assistant_revision,
|
|
1326
|
+
profile_name=evaluation_plan_profile_name,
|
|
1327
|
+
dataset_id=dataset_id,
|
|
1328
|
+
system_metrics=system_metrics,
|
|
1329
|
+
)
|
|
1330
|
+
Console.write_stdout(f"Updated evaluation plan: \n{result}")
|
|
1331
|
+
|
|
1332
|
+
|
|
1333
|
+
update_evaluation_plan_options = [
|
|
1334
|
+
Option(
|
|
1335
|
+
"evaluation_plan_id",
|
|
1336
|
+
["--evaluation-plan-id", "--epid"],
|
|
1337
|
+
"UUID representing the evaluation plan to retrieve",
|
|
1338
|
+
True
|
|
1339
|
+
),
|
|
1340
|
+
Option(
|
|
1341
|
+
"evaluation_plan_name",
|
|
1342
|
+
["--name", "--epn"],
|
|
1343
|
+
"Name of the evaluation plan",
|
|
1344
|
+
True
|
|
1345
|
+
),
|
|
1346
|
+
Option(
|
|
1347
|
+
"evaluation_plan_type",
|
|
1348
|
+
["--assistant-type", "--epat"],
|
|
1349
|
+
"Type of assistant (e.g., 'TextPromptAssistant', 'RAG Assistant')",
|
|
1350
|
+
True
|
|
1351
|
+
),
|
|
1352
|
+
Option(
|
|
1353
|
+
"evaluation_plan_assistant_id",
|
|
1354
|
+
["--assistant-id", "--epai"],
|
|
1355
|
+
"UUID of the assistant (optional, required for TextPromptAssistant)",
|
|
1356
|
+
True
|
|
1357
|
+
),
|
|
1358
|
+
Option(
|
|
1359
|
+
"evaluation_plan_assistant_name",
|
|
1360
|
+
["--assistant-name", "--epan"],
|
|
1361
|
+
"Name of the assistant (optional, required for TextPromptAssistant)",
|
|
1362
|
+
True
|
|
1363
|
+
),
|
|
1364
|
+
Option(
|
|
1365
|
+
"evaluation_plan_assistant_revision",
|
|
1366
|
+
["--assistant-revision", "--epar"],
|
|
1367
|
+
"Revision of the assistant (optional, required for TextPromptAssistant)",
|
|
1368
|
+
True
|
|
1369
|
+
),
|
|
1370
|
+
Option(
|
|
1371
|
+
"evaluation_plan_profile_name",
|
|
1372
|
+
["--profile-name", "--eppn"],
|
|
1373
|
+
"Name of the RAG profile (optional, required for RAG Assistant)",
|
|
1374
|
+
True
|
|
1375
|
+
),
|
|
1376
|
+
Option(
|
|
1377
|
+
"dataset_id",
|
|
1378
|
+
["--dataset-id", "--did"],
|
|
1379
|
+
"ID of the dataset (optional)",
|
|
1380
|
+
True
|
|
1381
|
+
),
|
|
1382
|
+
Option(
|
|
1383
|
+
"system_metrics",
|
|
1384
|
+
["--system-metrics", "--sm"],
|
|
1385
|
+
"Array of system metrics (each with 'systemMetricId' and 'systemMetricWeight')"
|
|
1386
|
+
"Alternatively, multiple instances of --sm can be passes as arguments for a single list.",
|
|
1387
|
+
True
|
|
1388
|
+
)
|
|
1389
|
+
]
|
|
1390
|
+
|
|
1391
|
+
|
|
1392
|
+
def delete_evaluation_plan(option_list: list):
|
|
1393
|
+
evaluation_plan_id = None
|
|
1394
|
+
|
|
1395
|
+
for option_flag, option_arg in option_list:
|
|
1396
|
+
if option_flag.name == "evaluation_plan_id":
|
|
1397
|
+
evaluation_plan_id = option_arg
|
|
1398
|
+
|
|
1399
|
+
if not evaluation_plan_id:
|
|
1400
|
+
raise MissingRequirementException("Cannot delete evaluation plan without specifying id")
|
|
1401
|
+
|
|
1402
|
+
client = EvaluationPlanClient()
|
|
1403
|
+
result = client.delete_evaluation_plan(
|
|
1404
|
+
evaluation_plan_id=evaluation_plan_id
|
|
1405
|
+
)
|
|
1406
|
+
Console.write_stdout(f"Deleted evaluation plan: \n{result}")
|
|
1407
|
+
|
|
1408
|
+
|
|
1409
|
+
delete_evaluation_plan_options = [
|
|
1410
|
+
Option(
|
|
1411
|
+
"evaluation_plan_id",
|
|
1412
|
+
["--evaluation-plan-id", "--epid"],
|
|
1413
|
+
"UUID representing the evaluation plan to retrieve",
|
|
1414
|
+
True
|
|
1415
|
+
),
|
|
1416
|
+
]
|
|
1417
|
+
|
|
1418
|
+
|
|
1419
|
+
def list_evaluation_plan_system_metrics(option_list: list):
|
|
1420
|
+
evaluation_plan_id = None
|
|
1421
|
+
|
|
1422
|
+
for option_flag, option_arg in option_list:
|
|
1423
|
+
if option_flag.name == "evaluation_plan_id":
|
|
1424
|
+
evaluation_plan_id = option_arg
|
|
1425
|
+
|
|
1426
|
+
if not evaluation_plan_id:
|
|
1427
|
+
raise MissingRequirementException("Cannot list evaluation plan's system metrics without specifying id")
|
|
1428
|
+
|
|
1429
|
+
client = EvaluationPlanClient()
|
|
1430
|
+
result = client.list_evaluation_plan_system_metrics(
|
|
1431
|
+
evaluation_plan_id=evaluation_plan_id
|
|
1432
|
+
)
|
|
1433
|
+
Console.write_stdout(f"Evaluation plan's system metrics: \n{result}")
|
|
1434
|
+
|
|
1435
|
+
|
|
1436
|
+
list_evaluation_plan_system_metrics_options = [
|
|
1437
|
+
Option(
|
|
1438
|
+
"evaluation_plan_id",
|
|
1439
|
+
["--evaluation-plan-id", "--epid"],
|
|
1440
|
+
"UUID representing the evaluation plan to retrieve",
|
|
1441
|
+
True
|
|
1442
|
+
),
|
|
1443
|
+
]
|
|
1444
|
+
|
|
1445
|
+
|
|
1446
|
+
def add_evaluation_plan_system_metric(option_list: list):
|
|
1447
|
+
evaluation_plan_id = None
|
|
1448
|
+
system_metric_id = None
|
|
1449
|
+
system_metric_weight = None
|
|
1450
|
+
|
|
1451
|
+
for option_flag, option_arg in option_list:
|
|
1452
|
+
if option_flag.name == "evaluation_plan_id":
|
|
1453
|
+
evaluation_plan_id = option_arg
|
|
1454
|
+
if option_flag.name == "system_metric_id":
|
|
1455
|
+
system_metric_id = option_arg
|
|
1456
|
+
if option_flag.name == "system_metric_weight":
|
|
1457
|
+
system_metric_weight = option_arg
|
|
1458
|
+
|
|
1459
|
+
if not evaluation_plan_id:
|
|
1460
|
+
raise MissingRequirementException("Cannot add evaluation plan's system metrics without specifying id")
|
|
1461
|
+
|
|
1462
|
+
client = EvaluationPlanClient()
|
|
1463
|
+
result = client.add_evaluation_plan_system_metric(
|
|
1464
|
+
evaluation_plan_id=evaluation_plan_id,
|
|
1465
|
+
system_metric_id=system_metric_id,
|
|
1466
|
+
system_metric_weight=system_metric_weight
|
|
1467
|
+
|
|
1468
|
+
)
|
|
1469
|
+
Console.write_stdout(f"Evaluation plan's system metrics: \n{result}")
|
|
1470
|
+
|
|
1471
|
+
|
|
1472
|
+
add_evaluation_plan_system_metric_options = [
|
|
1473
|
+
Option(
|
|
1474
|
+
"evaluation_plan_id",
|
|
1475
|
+
["--evaluation-plan-id", "--epid"],
|
|
1476
|
+
"UUID representing the evaluation plan to retrieve",
|
|
1477
|
+
True
|
|
1478
|
+
),
|
|
1479
|
+
Option(
|
|
1480
|
+
"system_metric_id",
|
|
1481
|
+
["--system-metric-id", "--smid"],
|
|
1482
|
+
"systemMetricId: string. ID of the system metric",
|
|
1483
|
+
True
|
|
1484
|
+
),
|
|
1485
|
+
Option(
|
|
1486
|
+
"system_metric_weight",
|
|
1487
|
+
["--system-metric-weight", "--smw"],
|
|
1488
|
+
"systemMetricWeight: number. Weight of the system metric (between 0 and 1)",
|
|
1489
|
+
True
|
|
1490
|
+
),
|
|
1491
|
+
]
|
|
1492
|
+
|
|
1493
|
+
|
|
1494
|
+
def get_evaluation_plan_system_metric(option_list: list):
|
|
1495
|
+
evaluation_plan_id = None
|
|
1496
|
+
system_metric_id = None
|
|
1497
|
+
|
|
1498
|
+
for option_flag, option_arg in option_list:
|
|
1499
|
+
if option_flag.name == "evaluation_plan_id":
|
|
1500
|
+
evaluation_plan_id = option_arg
|
|
1501
|
+
if option_flag.name == "system_metric_id":
|
|
1502
|
+
system_metric_id = option_arg
|
|
1503
|
+
|
|
1504
|
+
if not (evaluation_plan_id and system_metric_id):
|
|
1505
|
+
raise MissingRequirementException("Cannot retrieve evaluation plan's system metric without specifying both ids")
|
|
1506
|
+
|
|
1507
|
+
client = EvaluationPlanClient()
|
|
1508
|
+
result = client.get_evaluation_plan_system_metric(
|
|
1509
|
+
evaluation_plan_id=evaluation_plan_id,
|
|
1510
|
+
system_metric_id=system_metric_id
|
|
1511
|
+
)
|
|
1512
|
+
Console.write_stdout(f"Evaluation plan's system metric: \n{result}")
|
|
1513
|
+
|
|
1514
|
+
|
|
1515
|
+
get_evaluation_plan_system_metric_options = [
|
|
1516
|
+
Option(
|
|
1517
|
+
"evaluation_plan_id",
|
|
1518
|
+
["--evaluation-plan-id", "--epid"],
|
|
1519
|
+
"UUID representing the evaluation plan to retrieve",
|
|
1520
|
+
True
|
|
1521
|
+
),
|
|
1522
|
+
Option(
|
|
1523
|
+
"system_metric_id",
|
|
1524
|
+
["--system-metric-id", "--smid"],
|
|
1525
|
+
"ID of the system metric",
|
|
1526
|
+
True
|
|
1527
|
+
),
|
|
1528
|
+
]
|
|
1529
|
+
|
|
1530
|
+
|
|
1531
|
+
def update_evaluation_plan_system_metric(option_list: list):
|
|
1532
|
+
evaluation_plan_id = None
|
|
1533
|
+
system_metric_id = None
|
|
1534
|
+
system_metric_weight = None
|
|
1535
|
+
|
|
1536
|
+
for option_flag, option_arg in option_list:
|
|
1537
|
+
if option_flag.name == "evaluation_plan_id":
|
|
1538
|
+
evaluation_plan_id = option_arg
|
|
1539
|
+
if option_flag.name == "system_metric_id":
|
|
1540
|
+
system_metric_id = option_arg
|
|
1541
|
+
if option_flag.name == "system_metric_weight":
|
|
1542
|
+
system_metric_weight = option_arg
|
|
1543
|
+
|
|
1544
|
+
if not evaluation_plan_id:
|
|
1545
|
+
raise MissingRequirementException("Cannot update evaluation plan's system metrics without specifying both ids and weight")
|
|
1546
|
+
|
|
1547
|
+
client = EvaluationPlanClient()
|
|
1548
|
+
result = client.update_evaluation_plan_system_metric(
|
|
1549
|
+
evaluation_plan_id=evaluation_plan_id,
|
|
1550
|
+
system_metric_id=system_metric_id,
|
|
1551
|
+
system_metric_weight=system_metric_weight
|
|
1552
|
+
|
|
1553
|
+
)
|
|
1554
|
+
Console.write_stdout(f"Evaluation plan's system metrics: \n{result}")
|
|
1555
|
+
|
|
1556
|
+
|
|
1557
|
+
update_evaluation_plan_system_metric_options = [
|
|
1558
|
+
Option(
|
|
1559
|
+
"evaluation_plan_id",
|
|
1560
|
+
["--evaluation-plan-id", "--epid"],
|
|
1561
|
+
"UUID representing the evaluation plan to retrieve",
|
|
1562
|
+
True
|
|
1563
|
+
),
|
|
1564
|
+
Option(
|
|
1565
|
+
"system_metric_id",
|
|
1566
|
+
["--system-metric-id", "--smid"],
|
|
1567
|
+
"systemMetricId: string. ID of the system metric",
|
|
1568
|
+
True
|
|
1569
|
+
),
|
|
1570
|
+
Option(
|
|
1571
|
+
"system_metric_weight",
|
|
1572
|
+
["--system-metric-weight", "--smw"],
|
|
1573
|
+
"systemMetricWeight: number. Weight of the system metric (between 0 and 1)",
|
|
1574
|
+
True
|
|
1575
|
+
),
|
|
1576
|
+
]
|
|
1577
|
+
|
|
1578
|
+
|
|
1579
|
+
def delete_evaluation_plan_system_metric(option_list: list):
|
|
1580
|
+
evaluation_plan_id = None
|
|
1581
|
+
system_metric_id = None
|
|
1582
|
+
|
|
1583
|
+
for option_flag, option_arg in option_list:
|
|
1584
|
+
if option_flag.name == "evaluation_plan_id":
|
|
1585
|
+
evaluation_plan_id = option_arg
|
|
1586
|
+
if option_flag.name == "system_metric_id":
|
|
1587
|
+
system_metric_id = option_arg
|
|
1588
|
+
|
|
1589
|
+
if not (evaluation_plan_id and system_metric_id):
|
|
1590
|
+
raise MissingRequirementException("Cannot delete evaluation plan's system metric without specifying both ids")
|
|
1591
|
+
|
|
1592
|
+
client = EvaluationPlanClient()
|
|
1593
|
+
result = client.delete_evaluation_plan_system_metric(
|
|
1594
|
+
evaluation_plan_id=evaluation_plan_id,
|
|
1595
|
+
system_metric_id=system_metric_id
|
|
1596
|
+
)
|
|
1597
|
+
Console.write_stdout(f"Evaluation plan's system metric: \n{result}")
|
|
1598
|
+
|
|
1599
|
+
|
|
1600
|
+
delete_evaluation_plan_system_metric_options = [
|
|
1601
|
+
Option(
|
|
1602
|
+
"evaluation_plan_id",
|
|
1603
|
+
["--evaluation-plan-id", "--epid"],
|
|
1604
|
+
"UUID representing the evaluation plan to retrieve",
|
|
1605
|
+
True
|
|
1606
|
+
),
|
|
1607
|
+
Option(
|
|
1608
|
+
"system_metric_id",
|
|
1609
|
+
["--system-metric-id", "--smid"],
|
|
1610
|
+
"ID of the system metric",
|
|
1611
|
+
True
|
|
1612
|
+
),
|
|
1613
|
+
]
|
|
1614
|
+
|
|
1615
|
+
|
|
1616
|
+
def list_system_metrics():
|
|
1617
|
+
client = EvaluationPlanClient()
|
|
1618
|
+
result = client.list_system_metrics()
|
|
1619
|
+
Console.write_stdout(f"Available system metrics: \n{result}")
|
|
1620
|
+
|
|
1621
|
+
|
|
1622
|
+
def get_system_metric(option_list: list):
|
|
1623
|
+
system_metric_id = None
|
|
1624
|
+
|
|
1625
|
+
for option_flag, option_arg in option_list:
|
|
1626
|
+
if option_flag.name == "system_metric_id":
|
|
1627
|
+
system_metric_id = option_arg
|
|
1628
|
+
|
|
1629
|
+
if not system_metric_id:
|
|
1630
|
+
raise MissingRequirementException("Cannot retrieve system metric without specifying id")
|
|
1631
|
+
|
|
1632
|
+
client = EvaluationPlanClient()
|
|
1633
|
+
result = client.get_system_metric(
|
|
1634
|
+
system_metric_id=system_metric_id
|
|
1635
|
+
)
|
|
1636
|
+
Console.write_stdout(f"System metric: \n{result}")
|
|
1637
|
+
|
|
1638
|
+
|
|
1639
|
+
get_system_metric_options = [
|
|
1640
|
+
Option(
|
|
1641
|
+
"system_metric_id",
|
|
1642
|
+
["--system-metric-id", "--smid"],
|
|
1643
|
+
"ID of the system metric",
|
|
1644
|
+
True
|
|
1645
|
+
),
|
|
1646
|
+
]
|
|
1647
|
+
|
|
1648
|
+
|
|
1649
|
+
def execute_evaluation_plan(option_list: list):
|
|
1650
|
+
evaluation_plan_id = None
|
|
1651
|
+
|
|
1652
|
+
for option_flag, option_arg in option_list:
|
|
1653
|
+
if option_flag.name == "evaluation_plan_id":
|
|
1654
|
+
evaluation_plan_id = option_arg
|
|
1655
|
+
|
|
1656
|
+
if not evaluation_plan_id:
|
|
1657
|
+
raise MissingRequirementException("Cannot execute evaluation plan without specifying id")
|
|
1658
|
+
|
|
1659
|
+
client = EvaluationPlanClient()
|
|
1660
|
+
result = client.execute_evaluation_plan(
|
|
1661
|
+
evaluation_plan_id=evaluation_plan_id,
|
|
1662
|
+
)
|
|
1663
|
+
Console.write_stdout(f"Evaluation plan execution: \n{result}")
|
|
1664
|
+
|
|
1665
|
+
|
|
1666
|
+
execute_evaluation_plan_options = [
|
|
1667
|
+
Option(
|
|
1668
|
+
"evaluation_plan_id",
|
|
1669
|
+
["--evaluation-plan-id", "--epid"],
|
|
1670
|
+
"UUID representing the evaluation plan to retrieve",
|
|
1671
|
+
True
|
|
1672
|
+
),
|
|
1673
|
+
]
|
|
1674
|
+
|
|
1675
|
+
"""
|
|
1676
|
+
DATASETS COMMANDS
|
|
1677
|
+
"""
|
|
1678
|
+
|
|
1679
|
+
|
|
1680
|
+
def list_evaluation_results(option_list: list):
|
|
1681
|
+
evaluation_plan_id = None
|
|
1682
|
+
|
|
1683
|
+
for option_flag, option_arg in option_list:
|
|
1684
|
+
if option_flag.name == "evaluation_plan_id":
|
|
1685
|
+
evaluation_plan_id = option_arg
|
|
1686
|
+
|
|
1687
|
+
if not evaluation_plan_id:
|
|
1688
|
+
raise MissingRequirementException("Cannot list evaluation results without specifying id")
|
|
1689
|
+
|
|
1690
|
+
client = EvaluationResultClient()
|
|
1691
|
+
result = client.list_evaluation_results(
|
|
1692
|
+
evaluation_plan_id=evaluation_plan_id,
|
|
1693
|
+
)
|
|
1694
|
+
Console.write_stdout(f"Evaluation results: \n{result}")
|
|
1695
|
+
|
|
1696
|
+
|
|
1697
|
+
list_evaluation_results_options = [
|
|
1698
|
+
Option(
|
|
1699
|
+
"evaluation_plan_id",
|
|
1700
|
+
["--evaluation-plan-id", "--epid"],
|
|
1701
|
+
"UUID representing the evaluation plan to retrieve",
|
|
1702
|
+
True
|
|
1703
|
+
),
|
|
1704
|
+
]
|
|
1705
|
+
|
|
1706
|
+
|
|
1707
|
+
def get_evaluation_result(option_list: list):
|
|
1708
|
+
evaluation_result_id = None
|
|
1709
|
+
|
|
1710
|
+
for option_flag, option_arg in option_list:
|
|
1711
|
+
if option_flag.name == "evaluation_result_id":
|
|
1712
|
+
evaluation_result_id = option_arg
|
|
1713
|
+
|
|
1714
|
+
if not evaluation_result_id:
|
|
1715
|
+
raise MissingRequirementException("Cannot get evaluation results without specifying id")
|
|
1716
|
+
|
|
1717
|
+
client = EvaluationResultClient()
|
|
1718
|
+
result = client.get_evaluation_result(
|
|
1719
|
+
evaluation_result_id=evaluation_result_id,
|
|
1720
|
+
)
|
|
1721
|
+
Console.write_stdout(f"Evaluation result: \n{result}")
|
|
1722
|
+
|
|
1723
|
+
|
|
1724
|
+
get_evaluation_result_options = [
|
|
1725
|
+
Option(
|
|
1726
|
+
"evaluation_result_id",
|
|
1727
|
+
["--evaluation-result-id", "--erid"],
|
|
1728
|
+
"UUID representing the evaluation result to retrieve",
|
|
1729
|
+
True
|
|
1730
|
+
),
|
|
1731
|
+
]
|
|
1732
|
+
|
|
1733
|
+
|
|
1734
|
+
evaluation_commands = [
|
|
1735
|
+
Command(
|
|
1736
|
+
"help",
|
|
1737
|
+
["help", "h"],
|
|
1738
|
+
"Display help text",
|
|
1739
|
+
show_help,
|
|
1740
|
+
ArgumentsEnum.NOT_AVAILABLE,
|
|
1741
|
+
[],
|
|
1742
|
+
[]
|
|
1743
|
+
),
|
|
1744
|
+
Command(
|
|
1745
|
+
"list_datasets",
|
|
1746
|
+
["list-datasets", "ld"],
|
|
1747
|
+
"List all datasets",
|
|
1748
|
+
list_datasets,
|
|
1749
|
+
ArgumentsEnum.NOT_AVAILABLE,
|
|
1750
|
+
[],
|
|
1751
|
+
[]
|
|
1752
|
+
),
|
|
1753
|
+
Command(
|
|
1754
|
+
"create_dataset",
|
|
1755
|
+
["create-dataset", "cd"],
|
|
1756
|
+
"Create dataset",
|
|
1757
|
+
create_dataset,
|
|
1758
|
+
ArgumentsEnum.REQUIRED,
|
|
1759
|
+
[],
|
|
1760
|
+
create_dataset_options
|
|
1761
|
+
),
|
|
1762
|
+
Command(
|
|
1763
|
+
"get_dataset",
|
|
1764
|
+
["get-dataset", "gd"],
|
|
1765
|
+
"Get dataset by ID",
|
|
1766
|
+
get_dataset,
|
|
1767
|
+
ArgumentsEnum.REQUIRED,
|
|
1768
|
+
[],
|
|
1769
|
+
get_dataset_options
|
|
1770
|
+
),
|
|
1771
|
+
Command(
|
|
1772
|
+
"update_dataset",
|
|
1773
|
+
["update-dataset", "ud"],
|
|
1774
|
+
"Update dataset by ID",
|
|
1775
|
+
update_dataset,
|
|
1776
|
+
ArgumentsEnum.REQUIRED,
|
|
1777
|
+
[],
|
|
1778
|
+
update_dataset_options
|
|
1779
|
+
),
|
|
1780
|
+
Command(
|
|
1781
|
+
"delete_dataset",
|
|
1782
|
+
["delete-dataset", "dd"],
|
|
1783
|
+
"Delete dataset by ID",
|
|
1784
|
+
delete_dataset,
|
|
1785
|
+
ArgumentsEnum.REQUIRED,
|
|
1786
|
+
[],
|
|
1787
|
+
delete_dataset_options
|
|
1788
|
+
),
|
|
1789
|
+
Command(
|
|
1790
|
+
"create_dataset_row",
|
|
1791
|
+
["create-dataset-row", "cdr"],
|
|
1792
|
+
"Create dataset row",
|
|
1793
|
+
create_dataset_row,
|
|
1794
|
+
ArgumentsEnum.REQUIRED,
|
|
1795
|
+
[],
|
|
1796
|
+
create_dataset_row_options
|
|
1797
|
+
),
|
|
1798
|
+
Command(
|
|
1799
|
+
"list_dataset_rows",
|
|
1800
|
+
["list-dataset-rows", "ldr"],
|
|
1801
|
+
"List dataset rows",
|
|
1802
|
+
list_dataset_rows,
|
|
1803
|
+
ArgumentsEnum.REQUIRED,
|
|
1804
|
+
[],
|
|
1805
|
+
list_dataset_rows_options
|
|
1806
|
+
),
|
|
1807
|
+
Command(
|
|
1808
|
+
"get_dataset_row",
|
|
1809
|
+
["get-dataset-row", "gdr"],
|
|
1810
|
+
"Get dataset row",
|
|
1811
|
+
get_dataset_row,
|
|
1812
|
+
ArgumentsEnum.REQUIRED,
|
|
1813
|
+
[],
|
|
1814
|
+
get_dataset_row_options
|
|
1815
|
+
),
|
|
1816
|
+
Command(
|
|
1817
|
+
"update_dataset_row",
|
|
1818
|
+
["update-dataset-row", "udr"],
|
|
1819
|
+
"Update dataset row",
|
|
1820
|
+
update_dataset_row,
|
|
1821
|
+
ArgumentsEnum.REQUIRED,
|
|
1822
|
+
[],
|
|
1823
|
+
update_dataset_row_options
|
|
1824
|
+
),
|
|
1825
|
+
Command(
|
|
1826
|
+
"delete_dataset_row",
|
|
1827
|
+
["delete-dataset-row", "ddr"],
|
|
1828
|
+
"Delete dataset row",
|
|
1829
|
+
delete_dataset_row,
|
|
1830
|
+
ArgumentsEnum.REQUIRED,
|
|
1831
|
+
[],
|
|
1832
|
+
delete_dataset_row_options
|
|
1833
|
+
),
|
|
1834
|
+
Command(
|
|
1835
|
+
"create_dataset_row_expected_source",
|
|
1836
|
+
["create-expected-source", "ces"],
|
|
1837
|
+
"Create dataset row expected source",
|
|
1838
|
+
create_dataset_row_expected_source,
|
|
1839
|
+
ArgumentsEnum.REQUIRED,
|
|
1840
|
+
[],
|
|
1841
|
+
create_dataset_row_expected_source_options
|
|
1842
|
+
),
|
|
1843
|
+
Command(
|
|
1844
|
+
"list_dataset_row_expected_sources",
|
|
1845
|
+
["list-expected-sources", "les"],
|
|
1846
|
+
"List dataset row expected sources",
|
|
1847
|
+
list_dataset_row_expected_sources,
|
|
1848
|
+
ArgumentsEnum.REQUIRED,
|
|
1849
|
+
[],
|
|
1850
|
+
list_dataset_row_expected_sources_options
|
|
1851
|
+
),
|
|
1852
|
+
Command(
|
|
1853
|
+
"get_dataset_row_expected_source",
|
|
1854
|
+
["get-expected-source", "ges"],
|
|
1855
|
+
"Get dataset row expected source",
|
|
1856
|
+
get_dataset_row_expected_source,
|
|
1857
|
+
ArgumentsEnum.REQUIRED,
|
|
1858
|
+
[],
|
|
1859
|
+
get_dataset_row_expected_source_options
|
|
1860
|
+
),
|
|
1861
|
+
Command(
|
|
1862
|
+
"update_dataset_row_expected_source",
|
|
1863
|
+
["update-expected-source", "ues"],
|
|
1864
|
+
"Update dataset row expected source",
|
|
1865
|
+
update_dataset_row_expected_source,
|
|
1866
|
+
ArgumentsEnum.REQUIRED,
|
|
1867
|
+
[],
|
|
1868
|
+
update_dataset_row_expected_source_options
|
|
1869
|
+
),
|
|
1870
|
+
Command(
|
|
1871
|
+
"delete_dataset_row_expected_source",
|
|
1872
|
+
["delete-expected-source", "des"],
|
|
1873
|
+
"Delete dataset row expected source",
|
|
1874
|
+
delete_dataset_row_expected_source,
|
|
1875
|
+
ArgumentsEnum.REQUIRED,
|
|
1876
|
+
[],
|
|
1877
|
+
delete_dataset_row_expected_source_options
|
|
1878
|
+
),
|
|
1879
|
+
Command(
|
|
1880
|
+
"create_dataset_row_filter_variable",
|
|
1881
|
+
["create-filter-variable", "cfv"],
|
|
1882
|
+
"Create dataset row filter variable",
|
|
1883
|
+
create_dataset_row_filter_variable,
|
|
1884
|
+
ArgumentsEnum.REQUIRED,
|
|
1885
|
+
[],
|
|
1886
|
+
create_dataset_row_filter_variable_options
|
|
1887
|
+
),
|
|
1888
|
+
Command(
|
|
1889
|
+
"list_dataset_row_filter_variables",
|
|
1890
|
+
["list-filter-variables", "lfv"],
|
|
1891
|
+
"List dataset row filter variables",
|
|
1892
|
+
list_dataset_row_filter_variables,
|
|
1893
|
+
ArgumentsEnum.REQUIRED,
|
|
1894
|
+
[],
|
|
1895
|
+
list_dataset_row_filter_variables_options
|
|
1896
|
+
),
|
|
1897
|
+
Command(
|
|
1898
|
+
"get_dataset_row_filter_variable",
|
|
1899
|
+
["get-filter-variable", "gfv"],
|
|
1900
|
+
"Get dataset row filter variable",
|
|
1901
|
+
get_dataset_row_filter_variable,
|
|
1902
|
+
ArgumentsEnum.REQUIRED,
|
|
1903
|
+
[],
|
|
1904
|
+
get_dataset_row_filter_variable_options
|
|
1905
|
+
),
|
|
1906
|
+
Command(
|
|
1907
|
+
"update_dataset_row_filter_variable",
|
|
1908
|
+
["update-filter-variable", "ufv"],
|
|
1909
|
+
"Update dataset row filter variable",
|
|
1910
|
+
update_dataset_row_filter_variable,
|
|
1911
|
+
ArgumentsEnum.REQUIRED,
|
|
1912
|
+
[],
|
|
1913
|
+
update_dataset_row_filter_variable_options
|
|
1914
|
+
),
|
|
1915
|
+
Command(
|
|
1916
|
+
"delete_dataset_row_filter_variable",
|
|
1917
|
+
["delete-filter-variable", "dfv"],
|
|
1918
|
+
"Delete dataset row filter variable",
|
|
1919
|
+
delete_dataset_row_filter_variable,
|
|
1920
|
+
ArgumentsEnum.REQUIRED,
|
|
1921
|
+
[],
|
|
1922
|
+
delete_dataset_row_filter_variable_options
|
|
1923
|
+
),
|
|
1924
|
+
Command(
|
|
1925
|
+
"update_dataset_rows_file",
|
|
1926
|
+
["upload-dataset-rows", "udrf"],
|
|
1927
|
+
"Upload dataset rows file",
|
|
1928
|
+
update_dataset_rows_file,
|
|
1929
|
+
ArgumentsEnum.REQUIRED,
|
|
1930
|
+
[],
|
|
1931
|
+
update_dataset_rows_file_options
|
|
1932
|
+
),
|
|
1933
|
+
Command(
|
|
1934
|
+
"list_evaluation_plans",
|
|
1935
|
+
["list-evaluation-plans", "lep"],
|
|
1936
|
+
"Retrieves a list of all evaluation plans.",
|
|
1937
|
+
list_evaluation_plans,
|
|
1938
|
+
ArgumentsEnum.NOT_AVAILABLE,
|
|
1939
|
+
[],
|
|
1940
|
+
[]
|
|
1941
|
+
),
|
|
1942
|
+
Command(
|
|
1943
|
+
"create_evaluation_plan",
|
|
1944
|
+
["create-evaluation-plan", "cep"],
|
|
1945
|
+
"Creates a new evaluation plan.",
|
|
1946
|
+
create_evaluation_plan,
|
|
1947
|
+
ArgumentsEnum.REQUIRED,
|
|
1948
|
+
[],
|
|
1949
|
+
create_evaluation_plan_options
|
|
1950
|
+
),
|
|
1951
|
+
Command(
|
|
1952
|
+
"get_evaluation_plan",
|
|
1953
|
+
["get-evaluation-plan", "gep"],
|
|
1954
|
+
"Retrieve evaluation plan by ID.",
|
|
1955
|
+
get_evaluation_plan,
|
|
1956
|
+
ArgumentsEnum.REQUIRED,
|
|
1957
|
+
[],
|
|
1958
|
+
get_evaluation_plan_options
|
|
1959
|
+
),
|
|
1960
|
+
Command(
|
|
1961
|
+
"update_evaluation_plan",
|
|
1962
|
+
["update-evaluation-plan", "uep"],
|
|
1963
|
+
"Update evaluation plan by ID.",
|
|
1964
|
+
update_evaluation_plan,
|
|
1965
|
+
ArgumentsEnum.REQUIRED,
|
|
1966
|
+
[],
|
|
1967
|
+
update_evaluation_plan_options
|
|
1968
|
+
),
|
|
1969
|
+
Command(
|
|
1970
|
+
"delete_evaluation_plan",
|
|
1971
|
+
["delete-evaluation-plan", "dep"],
|
|
1972
|
+
"Delete evaluation plan by ID.",
|
|
1973
|
+
delete_evaluation_plan,
|
|
1974
|
+
ArgumentsEnum.REQUIRED,
|
|
1975
|
+
[],
|
|
1976
|
+
delete_evaluation_plan_options
|
|
1977
|
+
),
|
|
1978
|
+
Command(
|
|
1979
|
+
"list_evaluation_plan_system_metrics",
|
|
1980
|
+
["list-evaluation-plan-system-metrics", "lepsm"],
|
|
1981
|
+
"List system metrics for evaluation plan by ID.",
|
|
1982
|
+
list_evaluation_plan_system_metrics,
|
|
1983
|
+
ArgumentsEnum.REQUIRED,
|
|
1984
|
+
[],
|
|
1985
|
+
list_evaluation_plan_system_metrics_options
|
|
1986
|
+
),
|
|
1987
|
+
Command(
|
|
1988
|
+
"add_evaluation_plan_system_metric",
|
|
1989
|
+
["add-evaluation-plan-system-metric", "aepsm"],
|
|
1990
|
+
"Adds a new system metric to an existing evaluation plan.",
|
|
1991
|
+
add_evaluation_plan_system_metric,
|
|
1992
|
+
ArgumentsEnum.REQUIRED,
|
|
1993
|
+
[],
|
|
1994
|
+
add_evaluation_plan_system_metric_options
|
|
1995
|
+
),
|
|
1996
|
+
Command(
|
|
1997
|
+
"get_evaluation_plan_system_metric",
|
|
1998
|
+
["get-evaluation-plan-system-metric", "gepsm"],
|
|
1999
|
+
"Retrieves a specific system metric from a given evaluation plan.",
|
|
2000
|
+
get_evaluation_plan_system_metric,
|
|
2001
|
+
ArgumentsEnum.REQUIRED,
|
|
2002
|
+
[],
|
|
2003
|
+
get_evaluation_plan_system_metric_options
|
|
2004
|
+
),
|
|
2005
|
+
Command(
|
|
2006
|
+
"update_evaluation_plan_system_metric",
|
|
2007
|
+
["update-evaluation-plan-system-metric", "uepsm"],
|
|
2008
|
+
"Updates a specific system metric within an existing evaluation plan.",
|
|
2009
|
+
update_evaluation_plan_system_metric,
|
|
2010
|
+
ArgumentsEnum.REQUIRED,
|
|
2011
|
+
[],
|
|
2012
|
+
update_evaluation_plan_system_metric_options
|
|
2013
|
+
),
|
|
2014
|
+
Command(
|
|
2015
|
+
"delete_evaluation_plan_system_metric",
|
|
2016
|
+
["delete-evaluation-plan-system-metric", "depsm"],
|
|
2017
|
+
"Delete a specific system metric within an existing evaluation plan.",
|
|
2018
|
+
delete_evaluation_plan_system_metric,
|
|
2019
|
+
ArgumentsEnum.REQUIRED,
|
|
2020
|
+
[],
|
|
2021
|
+
delete_evaluation_plan_system_metric_options
|
|
2022
|
+
),
|
|
2023
|
+
Command(
|
|
2024
|
+
"list_system_metrics",
|
|
2025
|
+
["list-available-system-metrics", "lsm"],
|
|
2026
|
+
"Retrieves a list of all available system metrics that can be used in evaluation plans",
|
|
2027
|
+
list_system_metrics,
|
|
2028
|
+
ArgumentsEnum.NOT_AVAILABLE,
|
|
2029
|
+
[],
|
|
2030
|
+
[]
|
|
2031
|
+
),
|
|
2032
|
+
Command(
|
|
2033
|
+
"get_system_metric",
|
|
2034
|
+
["get-system-metrics", "gsm"],
|
|
2035
|
+
"Retrieves a specific system metric using its ID.",
|
|
2036
|
+
get_system_metric,
|
|
2037
|
+
ArgumentsEnum.REQUIRED,
|
|
2038
|
+
[],
|
|
2039
|
+
get_system_metric_options
|
|
2040
|
+
),
|
|
2041
|
+
Command(
|
|
2042
|
+
"execute_evaluation_plan",
|
|
2043
|
+
["execute-evaluation-plan", "xep"],
|
|
2044
|
+
"Initiates the execution of a previously defined evaluation plan. The evaluation plan's configuration "
|
|
2045
|
+
"(assistant, dataset, metrics, and weights) determines how the assessment is performed.",
|
|
2046
|
+
execute_evaluation_plan,
|
|
2047
|
+
ArgumentsEnum.REQUIRED,
|
|
2048
|
+
[],
|
|
2049
|
+
execute_evaluation_plan_options
|
|
2050
|
+
),
|
|
2051
|
+
Command(
|
|
2052
|
+
"list_evaluation_results",
|
|
2053
|
+
["list-evaluation-results", "ler"],
|
|
2054
|
+
"Retrieves a list of evaluation results associated with a specific evaluation plan.",
|
|
2055
|
+
list_evaluation_results,
|
|
2056
|
+
ArgumentsEnum.REQUIRED,
|
|
2057
|
+
[],
|
|
2058
|
+
list_evaluation_results_options
|
|
2059
|
+
),
|
|
2060
|
+
Command(
|
|
2061
|
+
"get_evaluation_result",
|
|
2062
|
+
["get-evaluation-result", "ger"],
|
|
2063
|
+
"Retrieves a specific evaluation result by its ID.",
|
|
2064
|
+
get_evaluation_result,
|
|
2065
|
+
ArgumentsEnum.REQUIRED,
|
|
2066
|
+
[],
|
|
2067
|
+
get_evaluation_result_options
|
|
2068
|
+
),
|
|
2069
|
+
]
|