pygeai 0.1.51b3__py3-none-any.whl → 0.6.0b15__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pygeai might be problematic. Click here for more details.
- pygeai/__init__.py +9 -1
- pygeai/_docs/Makefile +20 -0
- pygeai/_docs/make.bat +35 -0
- pygeai/_docs/source/conf.py +117 -0
- pygeai/_docs/source/content/ai_lab/cli.rst +747 -0
- pygeai/_docs/source/content/ai_lab/models.rst +1734 -0
- pygeai/_docs/source/content/ai_lab/runner.rst +253 -0
- pygeai/_docs/source/content/ai_lab/spec.rst +431 -0
- pygeai/_docs/source/content/ai_lab/usage.rst +1011 -0
- pygeai/_docs/source/content/ai_lab.rst +102 -0
- pygeai/_docs/source/content/analytics.rst +598 -0
- pygeai/_docs/source/content/api_reference/admin.rst +161 -0
- pygeai/_docs/source/content/api_reference/assistant.rst +326 -0
- pygeai/_docs/source/content/api_reference/auth.rst +379 -0
- pygeai/_docs/source/content/api_reference/chat.rst +754 -0
- pygeai/_docs/source/content/api_reference/embeddings.rst +154 -0
- pygeai/_docs/source/content/api_reference/evaluation.rst +590 -0
- pygeai/_docs/source/content/api_reference/feedback.rst +237 -0
- pygeai/_docs/source/content/api_reference/files.rst +592 -0
- pygeai/_docs/source/content/api_reference/gam.rst +401 -0
- pygeai/_docs/source/content/api_reference/health.rst +58 -0
- pygeai/_docs/source/content/api_reference/project.rst +738 -0
- pygeai/_docs/source/content/api_reference/proxy.rst +318 -0
- pygeai/_docs/source/content/api_reference/rag.rst +710 -0
- pygeai/_docs/source/content/api_reference/rerank.rst +94 -0
- pygeai/_docs/source/content/api_reference/secrets.rst +495 -0
- pygeai/_docs/source/content/api_reference/usage_limits.rst +390 -0
- pygeai/_docs/source/content/api_reference.rst +58 -0
- pygeai/_docs/source/content/authentication.rst +295 -0
- pygeai/_docs/source/content/chat_gui.rst +121 -0
- pygeai/_docs/source/content/cli.rst +203 -0
- pygeai/_docs/source/content/debugger.rst +651 -0
- pygeai/_docs/source/content/intro.rst +67 -0
- pygeai/_docs/source/content/migration.rst +929 -0
- pygeai/_docs/source/content/modules.rst +7 -0
- pygeai/_docs/source/content/quickstart.rst +143 -0
- pygeai/_docs/source/content/samples.rst +394 -0
- pygeai/_docs/source/index.rst +75 -0
- pygeai/_docs/source/modules.rst +7 -0
- pygeai/_docs/source/pygeai.admin.rst +29 -0
- pygeai/_docs/source/pygeai.analytics.rst +53 -0
- pygeai/_docs/source/pygeai.assistant.data.rst +21 -0
- pygeai/_docs/source/pygeai.assistant.data_analyst.rst +29 -0
- pygeai/_docs/source/pygeai.assistant.rag.rst +53 -0
- pygeai/_docs/source/pygeai.assistant.rst +55 -0
- pygeai/_docs/source/pygeai.auth.rst +29 -0
- pygeai/_docs/source/pygeai.chat.rst +69 -0
- pygeai/_docs/source/pygeai.cli.commands.flows.rst +10 -0
- pygeai/_docs/source/pygeai.cli.commands.lab.rst +53 -0
- pygeai/_docs/source/pygeai.cli.commands.rst +222 -0
- pygeai/_docs/source/pygeai.cli.rst +62 -0
- pygeai/_docs/source/pygeai.cli.texts.rst +21 -0
- pygeai/_docs/source/pygeai.core.base.rst +53 -0
- pygeai/_docs/source/pygeai.core.common.rst +37 -0
- pygeai/_docs/source/pygeai.core.embeddings.rst +61 -0
- pygeai/_docs/source/pygeai.core.feedback.rst +37 -0
- pygeai/_docs/source/pygeai.core.files.rst +61 -0
- pygeai/_docs/source/pygeai.core.llm.rst +29 -0
- pygeai/_docs/source/pygeai.core.plugins.rst +37 -0
- pygeai/_docs/source/pygeai.core.rerank.rst +53 -0
- pygeai/_docs/source/pygeai.core.rst +63 -0
- pygeai/_docs/source/pygeai.core.secrets.rst +29 -0
- pygeai/_docs/source/pygeai.core.services.llm.rst +29 -0
- pygeai/_docs/source/pygeai.core.services.rst +37 -0
- pygeai/_docs/source/pygeai.core.utils.rst +37 -0
- pygeai/_docs/source/pygeai.dbg.rst +21 -0
- pygeai/_docs/source/pygeai.evaluation.dataset.rst +29 -0
- pygeai/_docs/source/pygeai.evaluation.plan.rst +29 -0
- pygeai/_docs/source/pygeai.evaluation.result.rst +29 -0
- pygeai/_docs/source/pygeai.evaluation.rst +31 -0
- pygeai/_docs/source/pygeai.flows.rst +29 -0
- pygeai/_docs/source/pygeai.gam.rst +29 -0
- pygeai/_docs/source/pygeai.health.rst +29 -0
- pygeai/_docs/source/pygeai.lab.agents.rst +37 -0
- pygeai/_docs/source/pygeai.lab.processes.rst +37 -0
- pygeai/_docs/source/pygeai.lab.rst +65 -0
- pygeai/_docs/source/pygeai.lab.spec.rst +29 -0
- pygeai/_docs/source/pygeai.lab.strategies.rst +37 -0
- pygeai/_docs/source/pygeai.lab.tools.rst +37 -0
- pygeai/_docs/source/pygeai.man.man1.rst +10 -0
- pygeai/_docs/source/pygeai.man.rst +18 -0
- pygeai/_docs/source/pygeai.migration.rst +29 -0
- pygeai/_docs/source/pygeai.organization.limits.rst +45 -0
- pygeai/_docs/source/pygeai.organization.rst +61 -0
- pygeai/_docs/source/pygeai.proxy.rst +53 -0
- pygeai/_docs/source/pygeai.rst +35 -0
- pygeai/_docs/source/pygeai.tests.admin.rst +21 -0
- pygeai/_docs/source/pygeai.tests.analytics.rst +45 -0
- pygeai/_docs/source/pygeai.tests.assistants.rag.rst +37 -0
- pygeai/_docs/source/pygeai.tests.assistants.rst +45 -0
- pygeai/_docs/source/pygeai.tests.auth.rst +29 -0
- pygeai/_docs/source/pygeai.tests.chat.rst +45 -0
- pygeai/_docs/source/pygeai.tests.cli.commands.lab.rst +37 -0
- pygeai/_docs/source/pygeai.tests.cli.commands.rst +165 -0
- pygeai/_docs/source/pygeai.tests.cli.docker.rst +10 -0
- pygeai/_docs/source/pygeai.tests.cli.rst +46 -0
- pygeai/_docs/source/pygeai.tests.core.base.data.rst +29 -0
- pygeai/_docs/source/pygeai.tests.core.base.rst +45 -0
- pygeai/_docs/source/pygeai.tests.core.common.data.rst +10 -0
- pygeai/_docs/source/pygeai.tests.core.common.rst +37 -0
- pygeai/_docs/source/pygeai.tests.core.embeddings.rst +37 -0
- pygeai/_docs/source/pygeai.tests.core.feedback.rst +21 -0
- pygeai/_docs/source/pygeai.tests.core.files.rst +53 -0
- pygeai/_docs/source/pygeai.tests.core.llm.rst +21 -0
- pygeai/_docs/source/pygeai.tests.core.plugins.rst +21 -0
- pygeai/_docs/source/pygeai.tests.core.rerank.rst +37 -0
- pygeai/_docs/source/pygeai.tests.core.rst +39 -0
- pygeai/_docs/source/pygeai.tests.core.secrets.rst +21 -0
- pygeai/_docs/source/pygeai.tests.core.services.rst +21 -0
- pygeai/_docs/source/pygeai.tests.core.utils.rst +21 -0
- pygeai/_docs/source/pygeai.tests.dbg.rst +21 -0
- pygeai/_docs/source/pygeai.tests.evaluation.dataset.rst +21 -0
- pygeai/_docs/source/pygeai.tests.evaluation.plan.rst +21 -0
- pygeai/_docs/source/pygeai.tests.evaluation.result.rst +21 -0
- pygeai/_docs/source/pygeai.tests.evaluation.rst +20 -0
- pygeai/_docs/source/pygeai.tests.gam.rst +21 -0
- pygeai/_docs/source/pygeai.tests.health.rst +21 -0
- pygeai/_docs/source/pygeai.tests.integration.assistants.rag.rst +21 -0
- pygeai/_docs/source/pygeai.tests.integration.assistants.rst +18 -0
- pygeai/_docs/source/pygeai.tests.integration.chat.rst +21 -0
- pygeai/_docs/source/pygeai.tests.integration.lab.agents.rst +69 -0
- pygeai/_docs/source/pygeai.tests.integration.lab.processes.rst +77 -0
- pygeai/_docs/source/pygeai.tests.integration.lab.reasoning_strategies.rst +37 -0
- pygeai/_docs/source/pygeai.tests.integration.lab.rst +21 -0
- pygeai/_docs/source/pygeai.tests.integration.lab.tools.rst +77 -0
- pygeai/_docs/source/pygeai.tests.integration.rst +20 -0
- pygeai/_docs/source/pygeai.tests.lab.agents.rst +29 -0
- pygeai/_docs/source/pygeai.tests.lab.processes.rst +29 -0
- pygeai/_docs/source/pygeai.tests.lab.rst +49 -0
- pygeai/_docs/source/pygeai.tests.lab.spec.rst +29 -0
- pygeai/_docs/source/pygeai.tests.lab.strategies.rst +29 -0
- pygeai/_docs/source/pygeai.tests.lab.tools.rst +29 -0
- pygeai/_docs/source/pygeai.tests.migration.rst +29 -0
- pygeai/_docs/source/pygeai.tests.organization.limits.rst +29 -0
- pygeai/_docs/source/pygeai.tests.organization.rst +53 -0
- pygeai/_docs/source/pygeai.tests.proxy.rst +61 -0
- pygeai/_docs/source/pygeai.tests.rst +33 -0
- pygeai/admin/clients.py +14 -11
- pygeai/admin/endpoints.py +2 -2
- pygeai/analytics/clients.py +505 -0
- pygeai/analytics/endpoints.py +35 -0
- pygeai/analytics/managers.py +606 -0
- pygeai/analytics/mappers.py +207 -0
- pygeai/analytics/responses.py +240 -0
- pygeai/assistant/clients.py +18 -45
- pygeai/assistant/data/clients.py +1 -0
- pygeai/assistant/data_analyst/clients.py +8 -12
- pygeai/assistant/managers.py +195 -157
- pygeai/assistant/mappers.py +4 -2
- pygeai/assistant/rag/clients.py +27 -67
- pygeai/assistant/rag/mappers.py +12 -6
- pygeai/assistant/rag/models.py +301 -159
- pygeai/auth/__init__.py +0 -0
- pygeai/auth/clients.py +129 -0
- pygeai/auth/endpoints.py +6 -0
- pygeai/chat/clients.py +308 -37
- pygeai/chat/endpoints.py +3 -0
- pygeai/chat/iris.py +2 -8
- pygeai/chat/managers.py +9 -6
- pygeai/chat/session.py +38 -0
- pygeai/chat/settings.py +6 -0
- pygeai/chat/ui.py +678 -0
- pygeai/cli/__init__.py +0 -1
- pygeai/cli/commands/admin.py +7 -10
- pygeai/cli/commands/analytics.py +533 -0
- pygeai/cli/commands/assistant.py +9 -9
- pygeai/cli/commands/auth.py +299 -0
- pygeai/cli/commands/base.py +71 -9
- pygeai/cli/commands/chat.py +676 -19
- pygeai/cli/commands/common.py +28 -24
- pygeai/cli/commands/configuration.py +66 -13
- pygeai/cli/commands/docs.py +105 -0
- pygeai/cli/commands/embeddings.py +58 -11
- pygeai/cli/commands/evaluation.py +38 -38
- pygeai/cli/commands/feedback.py +3 -4
- pygeai/cli/commands/files.py +7 -8
- pygeai/cli/commands/gam.py +85 -10
- pygeai/cli/commands/lab/ai_lab.py +340 -484
- pygeai/cli/commands/lab/options.py +8 -0
- pygeai/cli/commands/lab/spec.py +273 -0
- pygeai/cli/commands/lab/utils.py +13 -0
- pygeai/cli/commands/llm.py +6 -7
- pygeai/cli/commands/migrate.py +1064 -436
- pygeai/cli/commands/organization.py +516 -11
- pygeai/cli/commands/rag.py +13 -14
- pygeai/cli/commands/rerank.py +3 -5
- pygeai/cli/commands/secrets.py +8 -9
- pygeai/cli/commands/usage_limits.py +18 -20
- pygeai/cli/commands/validators.py +144 -1
- pygeai/cli/commands/version.py +4 -5
- pygeai/cli/error_handler.py +151 -0
- pygeai/cli/geai.py +170 -31
- pygeai/cli/geai_proxy.py +86 -25
- pygeai/cli/install_man.py +93 -22
- pygeai/cli/parsers.py +75 -25
- pygeai/cli/texts/help.py +265 -28
- pygeai/core/base/clients.py +53 -12
- pygeai/core/base/mappers.py +11 -2
- pygeai/core/base/session.py +95 -11
- pygeai/core/common/config.py +78 -14
- pygeai/core/common/exceptions.py +96 -6
- pygeai/core/embeddings/__init__.py +19 -0
- pygeai/core/embeddings/clients.py +23 -5
- pygeai/core/embeddings/managers.py +9 -4
- pygeai/core/embeddings/mappers.py +16 -2
- pygeai/core/embeddings/responses.py +9 -2
- pygeai/core/feedback/clients.py +8 -3
- pygeai/core/files/clients.py +23 -24
- pygeai/core/files/managers.py +121 -30
- pygeai/core/files/responses.py +4 -3
- pygeai/core/handlers.py +10 -1
- pygeai/core/llm/clients.py +22 -29
- pygeai/core/models.py +127 -11
- pygeai/core/plugins/clients.py +6 -6
- pygeai/core/rerank/clients.py +9 -3
- pygeai/core/rerank/managers.py +22 -5
- pygeai/core/secrets/clients.py +16 -37
- pygeai/core/services/response.py +18 -0
- pygeai/core/services/rest.py +159 -49
- pygeai/core/utils/__init__.py +0 -0
- pygeai/core/utils/console.py +83 -0
- pygeai/core/utils/parsers.py +32 -0
- pygeai/core/utils/validators.py +10 -0
- pygeai/dbg/__init__.py +3 -0
- pygeai/dbg/debugger.py +854 -14
- pygeai/evaluation/clients.py +7 -4
- pygeai/evaluation/dataset/clients.py +46 -44
- pygeai/evaluation/plan/clients.py +28 -26
- pygeai/evaluation/result/clients.py +38 -5
- pygeai/gam/clients.py +50 -28
- pygeai/gam/endpoints.py +2 -1
- pygeai/health/__init__.py +0 -0
- pygeai/health/clients.py +24 -0
- pygeai/health/endpoints.py +1 -0
- pygeai/lab/__init__.py +0 -90
- pygeai/lab/agents/clients.py +203 -162
- pygeai/lab/agents/endpoints.py +4 -0
- pygeai/lab/agents/mappers.py +57 -7
- pygeai/lab/clients.py +24 -0
- pygeai/lab/constants.py +3 -0
- pygeai/lab/managers.py +571 -541
- pygeai/lab/models.py +108 -19
- pygeai/lab/processes/clients.py +332 -340
- pygeai/lab/processes/mappers.py +3 -3
- pygeai/lab/runners.py +90 -0
- pygeai/lab/spec/__init__.py +0 -0
- pygeai/lab/spec/loader.py +24 -0
- pygeai/lab/spec/parsers.py +39 -0
- pygeai/lab/strategies/clients.py +67 -63
- pygeai/lab/strategies/mappers.py +1 -1
- pygeai/lab/tools/clients.py +85 -118
- pygeai/lab/tools/endpoints.py +4 -0
- pygeai/lab/tools/mappers.py +5 -5
- pygeai/man/man1/geai-proxy.1 +116 -0
- pygeai/man/man1/geai.1 +2580 -66
- pygeai/migration/__init__.py +33 -0
- pygeai/migration/strategies.py +468 -146
- pygeai/migration/tools.py +170 -3
- pygeai/organization/clients.py +245 -50
- pygeai/organization/endpoints.py +17 -8
- pygeai/organization/limits/clients.py +34 -32
- pygeai/organization/limits/managers.py +108 -49
- pygeai/organization/managers.py +347 -53
- pygeai/organization/mappers.py +102 -2
- pygeai/organization/responses.py +58 -1
- pygeai/proxy/clients.py +6 -3
- pygeai/proxy/config.py +14 -1
- pygeai/proxy/managers.py +61 -33
- pygeai/proxy/servers.py +196 -51
- pygeai/proxy/tool.py +33 -16
- pygeai/tests/admin/__init__.py +0 -0
- pygeai/tests/admin/test_clients.py +148 -0
- pygeai/tests/analytics/__init__.py +0 -0
- pygeai/tests/analytics/test_clients.py +86 -0
- pygeai/tests/analytics/test_managers.py +94 -0
- pygeai/tests/analytics/test_mappers.py +84 -0
- pygeai/tests/analytics/test_responses.py +73 -0
- pygeai/tests/assistants/rag/test_clients.py +346 -0
- pygeai/tests/assistants/rag/test_models.py +292 -0
- pygeai/tests/assistants/test_clients.py +176 -82
- pygeai/tests/assistants/test_managers.py +191 -57
- pygeai/tests/auth/__init__.py +0 -0
- pygeai/tests/auth/test_clients.py +289 -0
- pygeai/tests/auth/test_oauth.py +172 -0
- pygeai/tests/auth/test_session_logging.py +150 -0
- pygeai/tests/chat/__init__.py +0 -0
- pygeai/tests/chat/test_clients.py +393 -0
- pygeai/tests/chat/test_iris.py +38 -0
- pygeai/tests/chat/test_session.py +62 -0
- pygeai/tests/chat/test_ui.py +224 -0
- pygeai/tests/cli/commands/__init__.py +0 -0
- pygeai/tests/cli/commands/lab/__init__.py +0 -0
- pygeai/tests/cli/commands/lab/test_ai_lab.py +786 -0
- pygeai/tests/cli/commands/lab/test_common.py +208 -0
- pygeai/tests/cli/commands/lab/test_spec.py +246 -0
- pygeai/tests/cli/commands/test_assistant.py +202 -0
- pygeai/tests/cli/commands/test_chat.py +130 -0
- pygeai/tests/cli/commands/test_common.py +350 -0
- pygeai/tests/cli/commands/test_embeddings.py +132 -0
- pygeai/tests/cli/commands/test_evaluation.py +656 -0
- pygeai/tests/cli/commands/test_feedback.py +65 -0
- pygeai/tests/cli/commands/test_files.py +161 -0
- pygeai/tests/cli/commands/test_gam.py +201 -0
- pygeai/tests/cli/commands/test_llm.py +114 -0
- pygeai/tests/cli/commands/test_migrate.py +176 -0
- pygeai/tests/cli/commands/test_organization.py +276 -0
- pygeai/tests/cli/commands/test_rag.py +266 -0
- pygeai/tests/cli/commands/test_rerank.py +110 -0
- pygeai/tests/cli/commands/test_secrets.py +171 -0
- pygeai/tests/cli/commands/test_show_help.py +41 -0
- pygeai/tests/cli/commands/test_usage_limits.py +412 -0
- pygeai/tests/cli/commands/test_validators.py +160 -0
- pygeai/tests/cli/commands/test_version.py +81 -0
- pygeai/tests/cli/docker/__init__.py +0 -0
- pygeai/tests/cli/test_credentials_flag.py +316 -0
- pygeai/tests/cli/test_error_handler.py +225 -0
- pygeai/tests/cli/test_geai_driver.py +154 -0
- pygeai/tests/cli/test_parsers.py +5 -5
- pygeai/tests/core/base/data/models.py +7 -0
- pygeai/tests/core/base/test_mappers.py +43 -11
- pygeai/tests/core/base/test_models.py +3 -1
- pygeai/tests/core/base/test_responses.py +53 -0
- pygeai/tests/core/common/__init__.py +0 -0
- pygeai/tests/core/common/data/__init__.py +0 -0
- pygeai/tests/core/common/test_config.py +186 -0
- pygeai/tests/core/common/test_decorators.py +69 -0
- pygeai/tests/core/embeddings/__init__.py +0 -0
- pygeai/tests/core/embeddings/test_clients.py +225 -0
- pygeai/tests/core/embeddings/test_managers.py +171 -0
- pygeai/tests/core/embeddings/test_mappers.py +142 -0
- pygeai/tests/core/feedback/__init__.py +0 -0
- pygeai/tests/core/feedback/test_clients.py +64 -0
- pygeai/tests/core/files/test_clients.py +128 -0
- pygeai/tests/core/files/test_managers.py +124 -78
- pygeai/tests/core/files/test_mappers.py +137 -0
- pygeai/tests/core/files/test_models.py +103 -0
- pygeai/tests/core/files/test_responses.py +122 -0
- pygeai/tests/core/llm/__init__.py +0 -0
- pygeai/tests/core/llm/test_clients.py +142 -0
- pygeai/tests/core/plugins/__init__.py +0 -0
- pygeai/tests/core/plugins/test_clients.py +66 -0
- pygeai/tests/core/rerank/test_clients.py +76 -0
- pygeai/tests/core/rerank/test_managers.py +61 -39
- pygeai/tests/core/secrets/__init__.py +0 -0
- pygeai/tests/core/secrets/test_clients.py +264 -0
- pygeai/tests/core/services/__init__.py +0 -0
- pygeai/tests/core/services/test_rest.py +273 -0
- pygeai/tests/core/test_handlers.py +66 -0
- pygeai/tests/core/utils/__init__.py +0 -0
- pygeai/tests/core/utils/test_console.py +80 -0
- pygeai/tests/dbg/__init__.py +0 -0
- pygeai/tests/dbg/test_debugger.py +591 -0
- pygeai/tests/evaluation/__init__.py +0 -0
- pygeai/tests/evaluation/dataset/__init__.py +0 -0
- pygeai/tests/evaluation/dataset/test_clients.py +265 -0
- pygeai/tests/evaluation/plan/__init__.py +0 -0
- pygeai/tests/evaluation/plan/test_clients.py +195 -0
- pygeai/tests/evaluation/result/__init__.py +0 -0
- pygeai/tests/evaluation/result/test_clients.py +66 -0
- pygeai/tests/gam/__init__.py +0 -0
- pygeai/tests/gam/test_clients.py +195 -0
- pygeai/tests/health/__init__.py +0 -0
- pygeai/tests/health/test_clients.py +41 -0
- pygeai/tests/integration/__init__.py +0 -0
- pygeai/tests/integration/assistants/__init__.py +0 -0
- pygeai/tests/integration/assistants/rag/__init__.py +0 -0
- pygeai/tests/integration/assistants/rag/test_create_rag.py +91 -0
- pygeai/tests/integration/chat/__init__.py +0 -0
- pygeai/tests/integration/chat/test_generate_image.py +158 -0
- pygeai/tests/integration/lab/__init__.py +0 -0
- pygeai/tests/integration/lab/agents/__init__.py +0 -0
- pygeai/tests/integration/lab/agents/test_agents_list.py +106 -0
- pygeai/tests/integration/lab/agents/test_create_agent.py +319 -0
- pygeai/tests/integration/lab/agents/test_create_sharing_link.py +70 -0
- pygeai/tests/integration/lab/agents/test_delete_agent.py +75 -0
- pygeai/tests/integration/lab/agents/test_get_agent.py +94 -0
- pygeai/tests/integration/lab/agents/test_publish_agent_revision.py +127 -0
- pygeai/tests/integration/lab/agents/test_update_agent.py +250 -0
- pygeai/tests/integration/lab/processes/__init__.py +0 -0
- pygeai/tests/integration/lab/processes/test_create_process.py +345 -0
- pygeai/tests/integration/lab/processes/test_create_task.py +211 -0
- pygeai/tests/integration/lab/processes/test_delete_process.py +111 -0
- pygeai/tests/integration/lab/processes/test_get_process.py +201 -0
- pygeai/tests/integration/lab/processes/test_list_process_instances.py +91 -0
- pygeai/tests/integration/lab/processes/test_list_processes.py +138 -0
- pygeai/tests/integration/lab/processes/test_publish_process_revision.py +232 -0
- pygeai/tests/integration/lab/processes/test_update_process.py +289 -0
- pygeai/tests/integration/lab/reasoning_strategies/__init__.py +0 -0
- pygeai/tests/integration/lab/reasoning_strategies/test_get_reasoning_strategy.py +70 -0
- pygeai/tests/integration/lab/reasoning_strategies/test_list_reasoning_strategies.py +93 -0
- pygeai/tests/integration/lab/reasoning_strategies/test_update_reasoning_strategy.py +149 -0
- pygeai/tests/integration/lab/tools/__init__.py +0 -0
- pygeai/tests/integration/lab/tools/test_create_tool.py +288 -0
- pygeai/tests/integration/lab/tools/test_delete_tool.py +87 -0
- pygeai/tests/integration/lab/tools/test_get_parameter.py +98 -0
- pygeai/tests/integration/lab/tools/test_get_tool.py +91 -0
- pygeai/tests/integration/lab/tools/test_list_tools.py +106 -0
- pygeai/tests/integration/lab/tools/test_publish_tool_revision.py +119 -0
- pygeai/tests/integration/lab/tools/test_set_parameter.py +114 -0
- pygeai/tests/integration/lab/tools/test_update_tool.py +267 -0
- pygeai/tests/lab/agents/__init__.py +0 -0
- pygeai/tests/lab/agents/test_clients.py +481 -0
- pygeai/tests/lab/agents/test_mappers.py +440 -0
- pygeai/tests/lab/processes/__init__.py +0 -0
- pygeai/tests/lab/processes/test_clients.py +1416 -0
- pygeai/tests/lab/processes/test_mappers.py +1092 -0
- pygeai/tests/lab/spec/__init__.py +0 -0
- pygeai/tests/lab/spec/test_loader.py +59 -0
- pygeai/tests/lab/spec/test_parsers.py +182 -0
- pygeai/tests/lab/strategies/__init__.py +0 -0
- pygeai/tests/lab/strategies/test_clients.py +241 -0
- pygeai/tests/lab/strategies/test_mappers.py +132 -0
- pygeai/tests/lab/test_managers.py +553 -0
- pygeai/tests/lab/test_models.py +500 -3
- pygeai/tests/lab/tools/__init__.py +0 -0
- pygeai/tests/lab/tools/test_clients.py +521 -0
- pygeai/tests/lab/tools/test_mappers.py +198 -0
- pygeai/tests/migration/__init__.py +0 -0
- pygeai/tests/migration/test_strategies.py +405 -0
- pygeai/tests/migration/test_tools.py +159 -0
- pygeai/tests/organization/limits/test_clients.py +567 -0
- pygeai/tests/organization/limits/test_managers.py +298 -56
- pygeai/tests/organization/test_clients.py +600 -30
- pygeai/tests/organization/test_managers.py +424 -0
- pygeai/tests/organization/test_mappers.py +153 -0
- pygeai/tests/organization/test_responses.py +137 -0
- pygeai/tests/proxy/__init__.py +1 -0
- pygeai/tests/proxy/test_clients.py +397 -0
- pygeai/tests/proxy/test_config.py +171 -0
- pygeai/tests/proxy/test_integration.py +305 -0
- pygeai/tests/proxy/test_managers.py +312 -0
- pygeai/tests/proxy/test_servers.py +387 -0
- pygeai/tests/proxy/test_tool.py +176 -0
- pygeai/tests/snippets/analytics/__init__.py +0 -0
- pygeai/tests/snippets/analytics/get_agent_usage_per_user.py +16 -0
- pygeai/tests/snippets/analytics/get_agents_created_and_modified.py +11 -0
- pygeai/tests/snippets/analytics/get_average_cost_per_request.py +10 -0
- pygeai/tests/snippets/analytics/get_overall_error_rate.py +10 -0
- pygeai/tests/snippets/analytics/get_top_10_agents_by_requests.py +12 -0
- pygeai/tests/snippets/analytics/get_total_active_users.py +10 -0
- pygeai/tests/snippets/analytics/get_total_cost.py +10 -0
- pygeai/tests/snippets/analytics/get_total_requests_per_day.py +12 -0
- pygeai/tests/snippets/analytics/get_total_tokens.py +12 -0
- pygeai/tests/snippets/auth/__init__.py +0 -0
- pygeai/tests/snippets/chat/chat_completion_with_reasoning_effort.py +18 -0
- pygeai/tests/snippets/chat/get_response.py +15 -0
- pygeai/tests/snippets/chat/get_response_complete_example.py +67 -0
- pygeai/tests/snippets/chat/get_response_streaming.py +20 -0
- pygeai/tests/snippets/chat/get_response_with_files.py +16 -0
- pygeai/tests/snippets/chat/get_response_with_instructions.py +19 -0
- pygeai/tests/snippets/chat/get_response_with_metadata.py +24 -0
- pygeai/tests/snippets/chat/get_response_with_parallel_tools.py +58 -0
- pygeai/tests/snippets/chat/get_response_with_reasoning.py +21 -0
- pygeai/tests/snippets/chat/get_response_with_store.py +38 -0
- pygeai/tests/snippets/chat/get_response_with_tools.py +36 -0
- pygeai/tests/snippets/chat/get_response_with_truncation.py +24 -0
- pygeai/tests/snippets/dbg/__init__.py +0 -0
- pygeai/tests/snippets/dbg/basic_debugging.py +32 -0
- pygeai/tests/snippets/dbg/breakpoint_management.py +48 -0
- pygeai/tests/snippets/dbg/file_debugging.py +72 -0
- pygeai/tests/snippets/dbg/module_debugging.py +61 -0
- pygeai/tests/snippets/dbg/stack_navigation.py +45 -0
- pygeai/tests/snippets/dbg/stepping_example.py +40 -0
- pygeai/tests/snippets/embeddings/cache_example.py +31 -0
- pygeai/tests/snippets/embeddings/cohere_example.py +41 -0
- pygeai/tests/snippets/embeddings/openai_base64_example.py +27 -0
- pygeai/tests/snippets/embeddings/openai_example.py +30 -0
- pygeai/tests/snippets/embeddings/similarity_example.py +42 -0
- pygeai/tests/snippets/evaluation/dataset/__init__.py +0 -0
- pygeai/tests/snippets/evaluation/dataset/complete_workflow_example.py +195 -0
- pygeai/tests/snippets/evaluation/dataset/create_dataset.py +26 -0
- pygeai/tests/snippets/evaluation/dataset/create_dataset_from_file.py +11 -0
- pygeai/tests/snippets/evaluation/dataset/create_dataset_row.py +17 -0
- pygeai/tests/snippets/evaluation/dataset/create_expected_source.py +18 -0
- pygeai/tests/snippets/evaluation/dataset/create_filter_variable.py +19 -0
- pygeai/tests/snippets/evaluation/dataset/delete_dataset.py +9 -0
- pygeai/tests/snippets/evaluation/dataset/delete_dataset_row.py +10 -0
- pygeai/tests/snippets/evaluation/dataset/delete_expected_source.py +15 -0
- pygeai/tests/snippets/evaluation/dataset/delete_filter_variable.py +15 -0
- pygeai/tests/snippets/evaluation/dataset/get_dataset.py +9 -0
- pygeai/tests/snippets/evaluation/dataset/get_dataset_row.py +10 -0
- pygeai/tests/snippets/evaluation/dataset/get_expected_source.py +15 -0
- pygeai/tests/snippets/evaluation/dataset/get_filter_variable.py +15 -0
- pygeai/tests/snippets/evaluation/dataset/list_dataset_rows.py +9 -0
- pygeai/tests/snippets/evaluation/dataset/list_datasets.py +6 -0
- pygeai/tests/snippets/evaluation/dataset/list_expected_sources.py +10 -0
- pygeai/tests/snippets/evaluation/dataset/list_filter_variables.py +10 -0
- pygeai/tests/snippets/evaluation/dataset/update_dataset.py +15 -0
- pygeai/tests/snippets/evaluation/dataset/update_dataset_row.py +20 -0
- pygeai/tests/snippets/evaluation/dataset/update_expected_source.py +18 -0
- pygeai/tests/snippets/evaluation/dataset/update_filter_variable.py +19 -0
- pygeai/tests/snippets/evaluation/dataset/upload_dataset_rows_file.py +10 -0
- pygeai/tests/snippets/evaluation/plan/__init__.py +0 -0
- pygeai/tests/snippets/evaluation/plan/add_plan_system_metric.py +13 -0
- pygeai/tests/snippets/evaluation/plan/complete_workflow_example.py +136 -0
- pygeai/tests/snippets/evaluation/plan/create_evaluation_plan.py +24 -0
- pygeai/tests/snippets/evaluation/plan/create_rag_evaluation_plan.py +22 -0
- pygeai/tests/snippets/evaluation/plan/delete_evaluation_plan.py +9 -0
- pygeai/tests/snippets/evaluation/plan/delete_plan_system_metric.py +13 -0
- pygeai/tests/snippets/evaluation/plan/execute_evaluation_plan.py +11 -0
- pygeai/tests/snippets/evaluation/plan/get_evaluation_plan.py +9 -0
- pygeai/tests/snippets/evaluation/plan/get_plan_system_metric.py +13 -0
- pygeai/tests/snippets/evaluation/plan/get_system_metric.py +9 -0
- pygeai/tests/snippets/evaluation/plan/list_evaluation_plans.py +7 -0
- pygeai/tests/snippets/evaluation/plan/list_plan_system_metrics.py +9 -0
- pygeai/tests/snippets/evaluation/plan/list_system_metrics.py +7 -0
- pygeai/tests/snippets/evaluation/plan/update_evaluation_plan.py +22 -0
- pygeai/tests/snippets/evaluation/plan/update_plan_system_metric.py +14 -0
- pygeai/tests/snippets/evaluation/result/__init__.py +0 -0
- pygeai/tests/snippets/evaluation/result/complete_workflow_example.py +150 -0
- pygeai/tests/snippets/evaluation/result/get_evaluation_result.py +26 -0
- pygeai/tests/snippets/evaluation/result/list_evaluation_results.py +17 -0
- pygeai/tests/snippets/files/delete_file.py +1 -4
- pygeai/tests/snippets/files/get_file_content.py +2 -4
- pygeai/tests/snippets/files/get_file_data.py +1 -4
- pygeai/tests/snippets/files/get_file_list.py +1 -6
- pygeai/tests/snippets/files/upload_file.py +1 -5
- pygeai/tests/snippets/gam/gam_access_token.py +87 -0
- pygeai/tests/snippets/lab/agentic_flow_example_1.py +25 -23
- pygeai/tests/snippets/lab/agentic_flow_example_4.py +23 -23
- pygeai/tests/snippets/lab/agents/create_agent.py +5 -8
- pygeai/tests/snippets/lab/agents/create_agent_2.py +1 -5
- pygeai/tests/snippets/lab/agents/create_agent_edge_case.py +48 -0
- pygeai/tests/snippets/lab/agents/create_agent_with_permissions.py +39 -0
- pygeai/tests/snippets/lab/agents/create_agent_with_properties.py +46 -0
- pygeai/tests/snippets/lab/agents/create_agent_without_instructions.py +48 -0
- pygeai/tests/snippets/lab/agents/delete_agent.py +1 -5
- pygeai/tests/snippets/lab/agents/get_agent.py +2 -11
- pygeai/tests/snippets/lab/agents/get_agent_with_new_fields.py +62 -0
- pygeai/tests/snippets/lab/agents/get_sharing_link.py +2 -7
- pygeai/tests/snippets/lab/agents/list_agents.py +4 -7
- pygeai/tests/snippets/lab/agents/publish_agent_revision.py +2 -6
- pygeai/tests/snippets/lab/agents/update_agent.py +1 -5
- pygeai/tests/snippets/lab/agents/update_agent_properties.py +50 -0
- pygeai/tests/snippets/lab/assistant_to_agent.py +191 -0
- pygeai/tests/snippets/lab/crud_ui.py +462 -0
- pygeai/tests/snippets/lab/processes/create_process.py +3 -5
- pygeai/tests/snippets/lab/processes/create_task.py +3 -5
- pygeai/tests/snippets/lab/processes/jobs/list_jobs.py +10 -19
- pygeai/tests/snippets/lab/processes/kbs/create_kb.py +2 -5
- pygeai/tests/snippets/lab/processes/kbs/get_kb.py +10 -16
- pygeai/tests/snippets/lab/processes/kbs/list_kbs.py +13 -20
- pygeai/tests/snippets/lab/processes/kbs/try_all.py +5 -7
- pygeai/tests/snippets/lab/processes/list_processes.py +5 -7
- pygeai/tests/snippets/lab/runner_1.py +1 -1
- pygeai/tests/snippets/lab/samples/summarize_files.py +3 -3
- pygeai/tests/snippets/lab/strategies/create_reasoning_strategy.py +2 -5
- pygeai/tests/snippets/lab/strategies/get_reasoning_strategy.py +2 -5
- pygeai/tests/snippets/lab/strategies/list_reasoning_strategies.py +3 -6
- pygeai/tests/snippets/lab/strategies/update_reasoning_strategy.py +2 -5
- pygeai/tests/snippets/lab/tools/create_tool.py +4 -10
- pygeai/tests/snippets/lab/tools/create_tool_edge_case.py +50 -0
- pygeai/tests/snippets/lab/tools/delete_tool.py +2 -6
- pygeai/tests/snippets/lab/tools/get_parameter.py +5 -7
- pygeai/tests/snippets/lab/tools/get_tool.py +5 -7
- pygeai/tests/snippets/lab/tools/list_tools.py +3 -7
- pygeai/tests/snippets/lab/tools/publish_tool_revision.py +3 -5
- pygeai/tests/snippets/lab/tools/set_parameters.py +4 -9
- pygeai/tests/snippets/lab/tools/update_tool.py +4 -8
- pygeai/tests/snippets/lab/use_cases/__init__.py +0 -0
- pygeai/tests/snippets/lab/use_cases/create_cli_expert.py +1640 -0
- pygeai/tests/snippets/lab/use_cases/create_lab_expert.py +4541 -0
- pygeai/tests/snippets/lab/use_cases/create_tool_headless_web_browser.py +133 -0
- pygeai/tests/snippets/lab/use_cases/create_web_designer.py +189 -0
- pygeai/tests/snippets/lab/use_cases/create_web_reader.py +185 -0
- pygeai/tests/snippets/lab/{file_summarizer_example.py → use_cases/file_summarizer_example.py} +3 -3
- pygeai/tests/snippets/lab/{file_summarizer_example_2.py → use_cases/file_summarizer_example_2.py} +12 -12
- pygeai/tests/snippets/lab/use_cases/update_cli_expert.py +1773 -0
- pygeai/tests/snippets/lab/use_cases/update_lab_expert.py +4541 -0
- pygeai/tests/snippets/lab/use_cases/update_web_designer.py +188 -0
- pygeai/tests/snippets/lab/use_cases/update_web_reader.py +195 -0
- pygeai/tests/snippets/lab/use_cases/update_web_reader_with_tool.py +210 -0
- pygeai/tests/snippets/migrate/__init__.py +45 -0
- pygeai/tests/snippets/migrate/agent_migration.py +110 -0
- pygeai/tests/snippets/migrate/assistant_migration.py +64 -0
- pygeai/tests/snippets/migrate/orchestrator_examples.py +179 -0
- pygeai/tests/snippets/migrate/process_migration.py +64 -0
- pygeai/tests/snippets/migrate/project_migration.py +42 -0
- pygeai/tests/snippets/migrate/tool_migration.py +64 -0
- pygeai/tests/snippets/organization/add_project_member.py +10 -0
- pygeai/tests/snippets/organization/add_project_member_batch.py +44 -0
- pygeai/tests/snippets/organization/create_project.py +2 -2
- pygeai/tests/snippets/organization/get_memberships.py +12 -0
- pygeai/tests/snippets/organization/get_organization_members.py +6 -0
- pygeai/tests/snippets/organization/get_project_members.py +6 -0
- pygeai/tests/snippets/organization/get_project_memberships.py +12 -0
- pygeai/tests/snippets/organization/get_project_roles.py +6 -0
- pygeai/vendor/a2a/__init__.py +1 -0
- pygeai/vendor/a2a/auth/__init__.py +0 -0
- pygeai/vendor/a2a/auth/user.py +31 -0
- pygeai/vendor/a2a/client/__init__.py +19 -0
- pygeai/vendor/a2a/client/client.py +425 -0
- pygeai/vendor/a2a/client/errors.py +33 -0
- pygeai/vendor/a2a/client/helpers.py +22 -0
- pygeai/vendor/a2a/py.typed +0 -0
- pygeai/vendor/a2a/server/__init__.py +1 -0
- pygeai/vendor/a2a/server/agent_execution/__init__.py +18 -0
- pygeai/vendor/a2a/server/agent_execution/agent_executor.py +44 -0
- pygeai/vendor/a2a/server/agent_execution/context.py +155 -0
- pygeai/vendor/a2a/server/agent_execution/request_context_builder.py +20 -0
- pygeai/vendor/a2a/server/agent_execution/simple_request_context_builder.py +77 -0
- pygeai/vendor/a2a/server/apps/__init__.py +16 -0
- pygeai/vendor/a2a/server/apps/jsonrpc/__init__.py +16 -0
- pygeai/vendor/a2a/server/apps/jsonrpc/fastapi_app.py +88 -0
- pygeai/vendor/a2a/server/apps/jsonrpc/jsonrpc_app.py +426 -0
- pygeai/vendor/a2a/server/apps/jsonrpc/starlette_app.py +123 -0
- pygeai/vendor/a2a/server/context.py +23 -0
- pygeai/vendor/a2a/server/events/__init__.py +21 -0
- pygeai/vendor/a2a/server/events/event_consumer.py +149 -0
- pygeai/vendor/a2a/server/events/event_queue.py +156 -0
- pygeai/vendor/a2a/server/events/in_memory_queue_manager.py +85 -0
- pygeai/vendor/a2a/server/events/queue_manager.py +35 -0
- pygeai/vendor/a2a/server/request_handlers/__init__.py +20 -0
- pygeai/vendor/a2a/server/request_handlers/default_request_handler.py +435 -0
- pygeai/vendor/a2a/server/request_handlers/jsonrpc_handler.py +327 -0
- pygeai/vendor/a2a/server/request_handlers/request_handler.py +161 -0
- pygeai/vendor/a2a/server/request_handlers/response_helpers.py +133 -0
- pygeai/vendor/a2a/server/tasks/__init__.py +20 -0
- pygeai/vendor/a2a/server/tasks/inmemory_push_notifier.py +62 -0
- pygeai/vendor/a2a/server/tasks/inmemory_task_store.py +51 -0
- pygeai/vendor/a2a/server/tasks/push_notifier.py +25 -0
- pygeai/vendor/a2a/server/tasks/result_aggregator.py +151 -0
- pygeai/vendor/a2a/server/tasks/task_manager.py +253 -0
- pygeai/vendor/a2a/server/tasks/task_store.py +22 -0
- pygeai/vendor/a2a/server/tasks/task_updater.py +155 -0
- pygeai/vendor/a2a/types.py +1624 -0
- pygeai/vendor/a2a/utils/__init__.py +40 -0
- pygeai/vendor/a2a/utils/artifact.py +72 -0
- pygeai/vendor/a2a/utils/errors.py +69 -0
- pygeai/vendor/a2a/utils/helpers.py +176 -0
- pygeai/vendor/a2a/utils/message.py +83 -0
- pygeai/vendor/a2a/utils/task.py +57 -0
- pygeai/vendor/a2a/utils/telemetry.py +299 -0
- pygeai-0.6.0b15.dist-info/METADATA +205 -0
- pygeai-0.6.0b15.dist-info/RECORD +799 -0
- {pygeai-0.1.51b3.dist-info → pygeai-0.6.0b15.dist-info}/WHEEL +1 -1
- {pygeai-0.1.51b3.dist-info → pygeai-0.6.0b15.dist-info}/entry_points.txt +2 -1
- {pygeai-0.1.51b3.dist-info → pygeai-0.6.0b15.dist-info}/licenses/LICENSE +13 -1
- pygeai-0.6.0b15.dist-info/top_level.txt +1 -0
- docs/geai-proxy/README.md +0 -145
- docs/source/conf.py +0 -45
- pygeai/tests/core/test_managers.py +0 -233
- pygeai-0.1.51b3.dist-info/METADATA +0 -130
- pygeai-0.1.51b3.dist-info/RECORD +0 -324
- pygeai-0.1.51b3.dist-info/top_level.txt +0 -3
- scripts/bump_beta_version.py +0 -56
- {scripts → pygeai/analytics}/__init__.py +0 -0
- /pygeai/tests/snippets/lab/{c_code_fixer_agent_flow.py → use_cases/c_code_fixer_agent_flow.py} +0 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from pygeai.chat.clients import ChatClient
|
|
2
|
+
|
|
3
|
+
client = ChatClient()
|
|
4
|
+
|
|
5
|
+
messages = [
|
|
6
|
+
{
|
|
7
|
+
"role": "user",
|
|
8
|
+
"content": "Explain quantum computing in simple terms"
|
|
9
|
+
}
|
|
10
|
+
]
|
|
11
|
+
|
|
12
|
+
response = client.chat_completion(
|
|
13
|
+
model="openai/gpt-4o",
|
|
14
|
+
messages=messages,
|
|
15
|
+
reasoning_effort="high"
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
print(response)
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from pygeai.chat.clients import ChatClient
|
|
2
|
+
|
|
3
|
+
client = ChatClient()
|
|
4
|
+
|
|
5
|
+
model = "openai/o1-pro"
|
|
6
|
+
input_text = "What is the weather like in Paris today?"
|
|
7
|
+
|
|
8
|
+
response = client.get_response(
|
|
9
|
+
model=model,
|
|
10
|
+
input=input_text,
|
|
11
|
+
temperature=0.7,
|
|
12
|
+
max_output_tokens=1000
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
print(response)
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
from pygeai.chat.clients import ChatClient
|
|
2
|
+
|
|
3
|
+
# Example: Comprehensive usage of get_response with all major parameters
|
|
4
|
+
client = ChatClient()
|
|
5
|
+
|
|
6
|
+
model = "openai/gpt-4-turbo-preview"
|
|
7
|
+
input_text = "Analyze the benefits of renewable energy and suggest implementation strategies"
|
|
8
|
+
|
|
9
|
+
# Define a tool for additional data retrieval
|
|
10
|
+
tools = [
|
|
11
|
+
{
|
|
12
|
+
"type": "function",
|
|
13
|
+
"function": {
|
|
14
|
+
"name": "get_energy_stats",
|
|
15
|
+
"description": "Get statistics about renewable energy adoption",
|
|
16
|
+
"parameters": {
|
|
17
|
+
"type": "object",
|
|
18
|
+
"properties": {
|
|
19
|
+
"country": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "Country name"
|
|
22
|
+
},
|
|
23
|
+
"year": {
|
|
24
|
+
"type": "integer",
|
|
25
|
+
"description": "Year for statistics"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"required": ["country"]
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
]
|
|
33
|
+
|
|
34
|
+
# Comprehensive configuration
|
|
35
|
+
response = client.get_response(
|
|
36
|
+
model=model,
|
|
37
|
+
input=input_text,
|
|
38
|
+
instructions="You are an energy policy expert. Provide detailed, data-driven analysis with actionable recommendations.",
|
|
39
|
+
tools=tools,
|
|
40
|
+
tool_choice="auto", # Let the model decide when to use tools
|
|
41
|
+
parallel_tool_calls=True,
|
|
42
|
+
temperature=0.7,
|
|
43
|
+
max_output_tokens=2000,
|
|
44
|
+
top_p=0.9,
|
|
45
|
+
metadata={
|
|
46
|
+
"request_id": "energy_analysis_001",
|
|
47
|
+
"department": "sustainability",
|
|
48
|
+
"priority": "high"
|
|
49
|
+
},
|
|
50
|
+
user="analyst_john_doe",
|
|
51
|
+
reasoning={
|
|
52
|
+
"effort": "high" # Request thorough reasoning
|
|
53
|
+
},
|
|
54
|
+
truncation="auto",
|
|
55
|
+
store=True # Store for future reference
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
print("=== Comprehensive Response ===")
|
|
59
|
+
print(response)
|
|
60
|
+
|
|
61
|
+
# Extract key information if response is a dict
|
|
62
|
+
if isinstance(response, dict):
|
|
63
|
+
print("\n=== Response Metadata ===")
|
|
64
|
+
if "usage" in response:
|
|
65
|
+
print(f"Tokens used: {response['usage']}")
|
|
66
|
+
if "model" in response:
|
|
67
|
+
print(f"Model used: {response['model']}")
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
from pygeai.chat.clients import ChatClient
|
|
2
|
+
|
|
3
|
+
client = ChatClient()
|
|
4
|
+
|
|
5
|
+
model = "openai/o1-pro"
|
|
6
|
+
input_text = "Tell me a short story about a robot"
|
|
7
|
+
|
|
8
|
+
response = client.get_response(
|
|
9
|
+
model=model,
|
|
10
|
+
input=input_text,
|
|
11
|
+
stream=True,
|
|
12
|
+
temperature=0.7,
|
|
13
|
+
max_output_tokens=500
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
print("Streaming response:")
|
|
17
|
+
for chunk in response:
|
|
18
|
+
print(chunk, end='', flush=True)
|
|
19
|
+
|
|
20
|
+
print("\n\nStreaming complete!")
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from pygeai.chat.clients import ChatClient
|
|
2
|
+
|
|
3
|
+
client = ChatClient()
|
|
4
|
+
|
|
5
|
+
model = "openai/o1-pro"
|
|
6
|
+
input_text = "Please analyze this image and describe what you see"
|
|
7
|
+
files = ["files/image.svg", "files/document.pdf"]
|
|
8
|
+
|
|
9
|
+
response = client.get_response(
|
|
10
|
+
model=model,
|
|
11
|
+
input=input_text,
|
|
12
|
+
files=files,
|
|
13
|
+
temperature=0.7
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
print(response)
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from pygeai.chat.clients import ChatClient
|
|
2
|
+
|
|
3
|
+
# Example: Using get_response with custom instructions
|
|
4
|
+
client = ChatClient()
|
|
5
|
+
|
|
6
|
+
model = "openai/gpt-4-turbo-preview"
|
|
7
|
+
input_text = "Tell me about machine learning"
|
|
8
|
+
|
|
9
|
+
# Using instructions to customize the model's behavior
|
|
10
|
+
response = client.get_response(
|
|
11
|
+
model=model,
|
|
12
|
+
input=input_text,
|
|
13
|
+
instructions="You are an expert educator who explains complex topics in simple terms suitable for beginners. Always use analogies and examples.",
|
|
14
|
+
temperature=0.8,
|
|
15
|
+
max_output_tokens=1500
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
print("Response with custom instructions:")
|
|
19
|
+
print(response)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from pygeai.chat.clients import ChatClient
|
|
2
|
+
|
|
3
|
+
# Example: Using get_response with metadata and user identification
|
|
4
|
+
client = ChatClient()
|
|
5
|
+
|
|
6
|
+
model = "openai/gpt-4-turbo-preview"
|
|
7
|
+
input_text = "What are the benefits of using AI in healthcare?"
|
|
8
|
+
|
|
9
|
+
# Using metadata to pass additional context
|
|
10
|
+
response = client.get_response(
|
|
11
|
+
model=model,
|
|
12
|
+
input=input_text,
|
|
13
|
+
metadata={
|
|
14
|
+
"request_id": "req_12345",
|
|
15
|
+
"department": "healthcare",
|
|
16
|
+
"priority": "high"
|
|
17
|
+
},
|
|
18
|
+
user="user_jane_doe", # User identifier for tracking
|
|
19
|
+
temperature=0.7,
|
|
20
|
+
max_output_tokens=1500
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
print("Response with metadata:")
|
|
24
|
+
print(response)
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
from pygeai.chat.clients import ChatClient
|
|
2
|
+
|
|
3
|
+
# Example: Using get_response with parallel tool calls
|
|
4
|
+
client = ChatClient()
|
|
5
|
+
|
|
6
|
+
model = "openai/gpt-4-turbo-preview"
|
|
7
|
+
input_text = "What's the weather in New York and what time is it in Tokyo?"
|
|
8
|
+
|
|
9
|
+
# Define tools
|
|
10
|
+
tools = [
|
|
11
|
+
{
|
|
12
|
+
"type": "function",
|
|
13
|
+
"function": {
|
|
14
|
+
"name": "get_weather",
|
|
15
|
+
"description": "Get current weather for a location",
|
|
16
|
+
"parameters": {
|
|
17
|
+
"type": "object",
|
|
18
|
+
"properties": {
|
|
19
|
+
"location": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "City name"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"required": ["location"]
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"type": "function",
|
|
30
|
+
"function": {
|
|
31
|
+
"name": "get_time",
|
|
32
|
+
"description": "Get current time for a location",
|
|
33
|
+
"parameters": {
|
|
34
|
+
"type": "object",
|
|
35
|
+
"properties": {
|
|
36
|
+
"location": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"description": "City name"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"required": ["location"]
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
|
|
47
|
+
# Enable parallel tool calls to execute both tools simultaneously
|
|
48
|
+
response = client.get_response(
|
|
49
|
+
model=model,
|
|
50
|
+
input=input_text,
|
|
51
|
+
tools=tools,
|
|
52
|
+
parallel_tool_calls=True, # Allow multiple tools to be called in parallel
|
|
53
|
+
temperature=0.7,
|
|
54
|
+
max_output_tokens=1000
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
print("Response with parallel tool calls:")
|
|
58
|
+
print(response)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
from pygeai.chat.clients import ChatClient
|
|
2
|
+
|
|
3
|
+
# Example: Using get_response with reasoning parameter
|
|
4
|
+
client = ChatClient()
|
|
5
|
+
|
|
6
|
+
model = "openai/o1-preview"
|
|
7
|
+
input_text = "Explain the concept of quantum entanglement in simple terms"
|
|
8
|
+
|
|
9
|
+
# Using reasoning parameter to control reasoning effort
|
|
10
|
+
response = client.get_response(
|
|
11
|
+
model=model,
|
|
12
|
+
input=input_text,
|
|
13
|
+
reasoning={
|
|
14
|
+
"type": "default", # Can be "default", "high", "medium", "low"
|
|
15
|
+
"effort": "medium"
|
|
16
|
+
},
|
|
17
|
+
max_output_tokens=2000
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
print("Response with reasoning:")
|
|
21
|
+
print(response)
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
from pygeai.chat.clients import ChatClient
|
|
2
|
+
|
|
3
|
+
# Example: Using get_response with store parameter to persist conversation
|
|
4
|
+
client = ChatClient()
|
|
5
|
+
|
|
6
|
+
model = "openai/gpt-4-turbo-preview"
|
|
7
|
+
input_text = "Remember that my favorite color is blue. What did I just tell you?"
|
|
8
|
+
|
|
9
|
+
# Use store parameter to enable conversation storage
|
|
10
|
+
response = client.get_response(
|
|
11
|
+
model=model,
|
|
12
|
+
input=input_text,
|
|
13
|
+
store=True, # Store this conversation for future reference
|
|
14
|
+
user="user_123", # Associate with specific user
|
|
15
|
+
metadata={
|
|
16
|
+
"session_id": "session_abc",
|
|
17
|
+
"conversation_type": "preference_learning"
|
|
18
|
+
},
|
|
19
|
+
temperature=0.7,
|
|
20
|
+
max_output_tokens=500
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
print("Response with conversation storage:")
|
|
24
|
+
print(response)
|
|
25
|
+
|
|
26
|
+
# Follow-up request can reference stored context
|
|
27
|
+
follow_up = client.get_response(
|
|
28
|
+
model=model,
|
|
29
|
+
input="What's my favorite color?",
|
|
30
|
+
store=True,
|
|
31
|
+
user="user_123",
|
|
32
|
+
metadata={
|
|
33
|
+
"session_id": "session_abc"
|
|
34
|
+
}
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
print("\nFollow-up response:")
|
|
38
|
+
print(follow_up)
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
from pygeai.chat.clients import ChatClient
|
|
2
|
+
|
|
3
|
+
client = ChatClient()
|
|
4
|
+
|
|
5
|
+
model = "openai/o1-pro"
|
|
6
|
+
input_text = "What is the weather like in Paris today?"
|
|
7
|
+
|
|
8
|
+
tools = [
|
|
9
|
+
{
|
|
10
|
+
"type": "function",
|
|
11
|
+
"name": "get_weather",
|
|
12
|
+
"description": "Get current temperature for a given location.",
|
|
13
|
+
"parameters": {
|
|
14
|
+
"type": "object",
|
|
15
|
+
"properties": {
|
|
16
|
+
"location": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "City and country e.g. Paris, France"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"required": ["location"],
|
|
22
|
+
"additionalProperties": False
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
response = client.get_response(
|
|
28
|
+
model=model,
|
|
29
|
+
input=input_text,
|
|
30
|
+
tools=tools,
|
|
31
|
+
tool_choice="auto",
|
|
32
|
+
temperature=1.0,
|
|
33
|
+
reasoning={"effort": "medium"}
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
print(response)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from pygeai.chat.clients import ChatClient
|
|
2
|
+
|
|
3
|
+
# Example: Using get_response with truncation strategy
|
|
4
|
+
client = ChatClient()
|
|
5
|
+
|
|
6
|
+
model = "openai/gpt-4-turbo-preview"
|
|
7
|
+
input_text = """
|
|
8
|
+
This is a very long input text that might exceed the context window.
|
|
9
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod
|
|
10
|
+
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
|
|
11
|
+
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
|
12
|
+
""" * 100 # Simulate long input
|
|
13
|
+
|
|
14
|
+
# Using truncation to handle long inputs
|
|
15
|
+
response = client.get_response(
|
|
16
|
+
model=model,
|
|
17
|
+
input=input_text,
|
|
18
|
+
truncation="auto", # Options: "auto", "disabled"
|
|
19
|
+
max_output_tokens=1000,
|
|
20
|
+
temperature=0.7
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
print("Response with truncation handling:")
|
|
24
|
+
print(response)
|
|
File without changes
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Basic debugging example with geai-dbg.
|
|
3
|
+
|
|
4
|
+
This demonstrates setting breakpoints and inspecting variables.
|
|
5
|
+
"""
|
|
6
|
+
from pygeai.dbg.debugger import Debugger
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def example_function(x, y):
|
|
10
|
+
"""A simple function to debug."""
|
|
11
|
+
result = x + y
|
|
12
|
+
print(f"Result: {result}")
|
|
13
|
+
return result
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def main():
|
|
17
|
+
"""Main entry point."""
|
|
18
|
+
a = 10
|
|
19
|
+
b = 20
|
|
20
|
+
c = example_function(a, b)
|
|
21
|
+
print(f"Final value: {c}")
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
if __name__ == "__main__":
|
|
25
|
+
dbg = Debugger(target=main, module_filter="__main__")
|
|
26
|
+
dbg.add_breakpoint(module="__main__", function_name="example_function")
|
|
27
|
+
|
|
28
|
+
print("Starting debugger...")
|
|
29
|
+
print("Type 'h' for help")
|
|
30
|
+
print("Try commands like: 'p x', 'p y', 'locals', 's', 'n', 'c'")
|
|
31
|
+
|
|
32
|
+
dbg.run()
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Demonstrates breakpoint management (add, list, remove, enable/disable).
|
|
3
|
+
"""
|
|
4
|
+
from pygeai.dbg.debugger import Debugger
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def func_a():
|
|
8
|
+
"""Function A."""
|
|
9
|
+
print("In function A")
|
|
10
|
+
return "A"
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def func_b():
|
|
14
|
+
"""Function B."""
|
|
15
|
+
print("In function B")
|
|
16
|
+
return "B"
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def func_c():
|
|
20
|
+
"""Function C."""
|
|
21
|
+
print("In function C")
|
|
22
|
+
return "C"
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def main():
|
|
26
|
+
"""Main entry point."""
|
|
27
|
+
results = []
|
|
28
|
+
results.append(func_a())
|
|
29
|
+
results.append(func_b())
|
|
30
|
+
results.append(func_c())
|
|
31
|
+
print(f"Results: {results}")
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
if __name__ == "__main__":
|
|
35
|
+
dbg = Debugger(target=main, module_filter="__main__")
|
|
36
|
+
|
|
37
|
+
print("Starting debugger...")
|
|
38
|
+
print("No breakpoints set initially. At first function, try:")
|
|
39
|
+
print(" 'b func_b' - add breakpoint on func_b")
|
|
40
|
+
print(" 'b __main__:func_c' - add breakpoint on specific module:function")
|
|
41
|
+
print(" 'b' - list all breakpoints")
|
|
42
|
+
print(" 'dis func_b' - disable breakpoint on func_b")
|
|
43
|
+
print(" 'en func_b' - enable breakpoint on func_b")
|
|
44
|
+
print(" 'cl func_b' - remove breakpoint on func_b")
|
|
45
|
+
print(" 'c' - continue to next breakpoint")
|
|
46
|
+
|
|
47
|
+
dbg.add_breakpoint(module="__main__", function_name="func_a")
|
|
48
|
+
dbg.run()
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Example of debugging a standalone Python file using geai-dbg.
|
|
3
|
+
|
|
4
|
+
This demonstrates how to use debug_file() to debug any Python script.
|
|
5
|
+
"""
|
|
6
|
+
from pygeai.dbg import debug_file
|
|
7
|
+
import tempfile
|
|
8
|
+
import os
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def create_sample_script():
|
|
12
|
+
"""Create a sample script to debug."""
|
|
13
|
+
code = '''
|
|
14
|
+
def process_data(items):
|
|
15
|
+
"""Process a list of items."""
|
|
16
|
+
result = []
|
|
17
|
+
for item in items:
|
|
18
|
+
result.append(item * 2)
|
|
19
|
+
return result
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def main():
|
|
23
|
+
"""Main entry point."""
|
|
24
|
+
data = [1, 2, 3, 4, 5]
|
|
25
|
+
processed = process_data(data)
|
|
26
|
+
print(f"Processed: {processed}")
|
|
27
|
+
return processed
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
if __name__ == "__main__":
|
|
31
|
+
main()
|
|
32
|
+
'''
|
|
33
|
+
|
|
34
|
+
fd, filepath = tempfile.mkstemp(suffix='.py', text=True)
|
|
35
|
+
try:
|
|
36
|
+
os.write(fd, code.encode())
|
|
37
|
+
finally:
|
|
38
|
+
os.close(fd)
|
|
39
|
+
|
|
40
|
+
return filepath
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def main():
|
|
44
|
+
"""Demonstrate file debugging."""
|
|
45
|
+
print("Creating sample script...")
|
|
46
|
+
script_path = create_sample_script()
|
|
47
|
+
|
|
48
|
+
try:
|
|
49
|
+
print(f"Script created at: {script_path}")
|
|
50
|
+
print("\nSetting up debugger...")
|
|
51
|
+
|
|
52
|
+
dbg = debug_file(script_path)
|
|
53
|
+
dbg.add_breakpoint(function_name='process_data')
|
|
54
|
+
|
|
55
|
+
print("Debugger configured with breakpoint on 'process_data'")
|
|
56
|
+
print("\nTo run interactively, uncomment the line below:")
|
|
57
|
+
print("# dbg.run()")
|
|
58
|
+
print("\nCommands you can use:")
|
|
59
|
+
print(" c - continue")
|
|
60
|
+
print(" s - step into")
|
|
61
|
+
print(" n - next line")
|
|
62
|
+
print(" p - print variable (e.g., 'p items')")
|
|
63
|
+
print(" l - list source")
|
|
64
|
+
print(" h - help")
|
|
65
|
+
|
|
66
|
+
finally:
|
|
67
|
+
os.unlink(script_path)
|
|
68
|
+
print(f"\nCleaned up {script_path}")
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
if __name__ == "__main__":
|
|
72
|
+
main()
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Example of debugging a specific module and function using geai-dbg.
|
|
3
|
+
|
|
4
|
+
This demonstrates how to use debug_module() to debug imported modules.
|
|
5
|
+
"""
|
|
6
|
+
from pygeai.dbg import debug_module
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def example_simple_module():
|
|
10
|
+
"""Debug a simple built-in module."""
|
|
11
|
+
print("Example: Debugging os.path.exists function")
|
|
12
|
+
print("\nThis would set up a debugger for the os.path.exists function:")
|
|
13
|
+
print(" dbg = debug_module('os.path', 'exists')")
|
|
14
|
+
print(" dbg.run()")
|
|
15
|
+
print("\nNote: This is for demonstration. Built-in functions may not be traceable.")
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def example_pygeai_module():
|
|
19
|
+
"""Debug a PyGEAI module."""
|
|
20
|
+
print("\nExample: Debugging PyGEAI modules")
|
|
21
|
+
print("\nYou can debug any PyGEAI module function:")
|
|
22
|
+
print(" from pygeai.dbg import debug_module")
|
|
23
|
+
print(" ")
|
|
24
|
+
print(" # Debug the chat module")
|
|
25
|
+
print(" dbg = debug_module('pygeai.chat', 'send_message')")
|
|
26
|
+
print(" dbg.add_breakpoint(module='pygeai.core.llm', function_name='get_completion')")
|
|
27
|
+
print(" dbg.run()")
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def example_cli_debugging():
|
|
31
|
+
"""Debug the geai CLI programmatically."""
|
|
32
|
+
print("\nExample: Debugging geai CLI programmatically")
|
|
33
|
+
print("\nInstead of using 'geai-dbg', you can set it up in code:")
|
|
34
|
+
print(" from pygeai.dbg import debug_module")
|
|
35
|
+
print(" ")
|
|
36
|
+
print(" # Set up debugging with custom breakpoints")
|
|
37
|
+
print(" dbg = debug_module('pygeai.cli.geai', 'main')")
|
|
38
|
+
print(" dbg.add_breakpoint(module='pygeai.cli.commands', function_name='execute')")
|
|
39
|
+
print(" dbg.run()")
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def main():
|
|
43
|
+
"""Run all examples."""
|
|
44
|
+
print("=" * 70)
|
|
45
|
+
print("Module Debugging Examples")
|
|
46
|
+
print("=" * 70)
|
|
47
|
+
|
|
48
|
+
example_simple_module()
|
|
49
|
+
example_pygeai_module()
|
|
50
|
+
example_cli_debugging()
|
|
51
|
+
|
|
52
|
+
print("\n" + "=" * 70)
|
|
53
|
+
print("To use module debugging from the command line:")
|
|
54
|
+
print("=" * 70)
|
|
55
|
+
print(" geai-dbg -m pygeai.cli.geai:main")
|
|
56
|
+
print(" geai-dbg -m pygeai.chat:send_message -b process_response")
|
|
57
|
+
print("=" * 70)
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
if __name__ == "__main__":
|
|
61
|
+
main()
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Demonstrates stack navigation (up, down, where).
|
|
3
|
+
"""
|
|
4
|
+
from pygeai.dbg.debugger import Debugger
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def level_3():
|
|
8
|
+
"""Deepest level of call stack."""
|
|
9
|
+
value = "level 3"
|
|
10
|
+
print(f"At {value}")
|
|
11
|
+
return value
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def level_2():
|
|
15
|
+
"""Middle level of call stack."""
|
|
16
|
+
value = "level 2"
|
|
17
|
+
result = level_3()
|
|
18
|
+
return f"{value} -> {result}"
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def level_1():
|
|
22
|
+
"""Top level of call stack."""
|
|
23
|
+
value = "level 1"
|
|
24
|
+
result = level_2()
|
|
25
|
+
return f"{value} -> {result}"
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def main():
|
|
29
|
+
"""Main entry point."""
|
|
30
|
+
result = level_1()
|
|
31
|
+
print(f"Final: {result}")
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
if __name__ == "__main__":
|
|
35
|
+
dbg = Debugger(target=main, module_filter="__main__")
|
|
36
|
+
dbg.add_breakpoint(module="__main__", function_name="level_3")
|
|
37
|
+
|
|
38
|
+
print("Starting debugger...")
|
|
39
|
+
print("At breakpoint in level_3, try:")
|
|
40
|
+
print(" 'where' or 'bt' - show call stack")
|
|
41
|
+
print(" 'up' - move to level_2 frame")
|
|
42
|
+
print(" 'down' - move back to level_3 frame")
|
|
43
|
+
print(" 'locals' - show local variables in current frame")
|
|
44
|
+
|
|
45
|
+
dbg.run()
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Demonstrates stepping functionality (step, next, return).
|
|
3
|
+
"""
|
|
4
|
+
from pygeai.dbg.debugger import Debugger
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def helper_function(n):
|
|
8
|
+
"""Helper function to demonstrate step-into."""
|
|
9
|
+
doubled = n * 2
|
|
10
|
+
return doubled
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def process_data(data):
|
|
14
|
+
"""Process some data."""
|
|
15
|
+
result = []
|
|
16
|
+
for item in data:
|
|
17
|
+
processed = helper_function(item)
|
|
18
|
+
result.append(processed)
|
|
19
|
+
return result
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def main():
|
|
23
|
+
"""Main entry point."""
|
|
24
|
+
numbers = [1, 2, 3, 4, 5]
|
|
25
|
+
processed = process_data(numbers)
|
|
26
|
+
print(f"Processed: {processed}")
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
if __name__ == "__main__":
|
|
30
|
+
dbg = Debugger(target=main, module_filter="__main__")
|
|
31
|
+
dbg.add_breakpoint(module="__main__", function_name="process_data")
|
|
32
|
+
|
|
33
|
+
print("Starting debugger...")
|
|
34
|
+
print("At breakpoint, try:")
|
|
35
|
+
print(" 's' - step into helper_function")
|
|
36
|
+
print(" 'n' - step over helper_function call")
|
|
37
|
+
print(" 'ret' - return from current function")
|
|
38
|
+
print(" 'l' - list source code")
|
|
39
|
+
|
|
40
|
+
dbg.run()
|