pygeai 0.4.0b9__tar.gz → 0.5.0b3__tar.gz
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-0.4.0b9/pygeai.egg-info → pygeai-0.5.0b3}/PKG-INFO +44 -16
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/README.md +43 -15
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/__init__.py +1 -1
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/chat/ui.py +0 -1
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/__init__.py +1 -1
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/chat.py +47 -55
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/lab/ai_lab.py +0 -1
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/base/session.py +1 -1
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/common/config.py +0 -2
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/managers.py +2 -2
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/tools/clients.py +13 -17
- pygeai-0.5.0b3/pygeai/tests/integration/assistants/rag/test_create_rag.py +91 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/chat/test_generate_image.py +1 -5
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/lab/agents/test_create_agent.py +13 -8
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/lab/agents/test_create_sharing_link.py +4 -1
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/lab/agents/test_publish_agent_revision.py +0 -1
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/lab/agents/test_update_agent.py +15 -19
- pygeai-0.5.0b3/pygeai/tests/integration/lab/processes/test_create_process.py +345 -0
- pygeai-0.5.0b3/pygeai/tests/integration/lab/processes/test_get_process.py +201 -0
- pygeai-0.5.0b3/pygeai/tests/integration/lab/processes/test_update_process.py +289 -0
- pygeai-0.5.0b3/pygeai/tests/integration/lab/reasoning_strategies/test_get_reasoning_strategy.py +70 -0
- pygeai-0.5.0b3/pygeai/tests/integration/lab/reasoning_strategies/test_list_reasoning_strategies.py +93 -0
- pygeai-0.5.0b3/pygeai/tests/integration/lab/reasoning_strategies/test_update_reasoning_strategy.py +149 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/lab/tools/test_create_tool.py +12 -16
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/lab/tools/test_delete_tool.py +3 -3
- pygeai-0.5.0b3/pygeai/tests/integration/lab/tools/test_get_parameter.py +98 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/lab/tools/test_get_tool.py +3 -3
- pygeai-0.5.0b3/pygeai/tests/integration/lab/tools/test_publish_tool_revision.py +119 -0
- pygeai-0.5.0b3/pygeai/tests/integration/lab/tools/test_set_parameter.py +114 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/lab/tools/test_update_tool.py +8 -9
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agentic_flow_example_4.py +23 -23
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agents/get_sharing_link.py +1 -2
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/samples/summarize_files.py +3 -3
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/tools/create_tool.py +1 -1
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/use_cases/file_summarizer_example.py +3 -3
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/use_cases/file_summarizer_example_2.py +11 -11
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/use_cases/update_web_reader.py +1 -2
- pygeai-0.5.0b3/pygeai/tests/snippets/rerank/__init__.py +0 -0
- pygeai-0.5.0b3/pygeai/tests/snippets/secrets/__init__.py +0 -0
- pygeai-0.5.0b3/pygeai/tests/snippets/usage_limit/__init__.py +0 -0
- pygeai-0.5.0b3/pygeai/vendor/a2a/auth/__init__.py +0 -0
- pygeai-0.5.0b3/pygeai/vendor/a2a/py.typed +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3/pygeai.egg-info}/PKG-INFO +44 -16
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai.egg-info/SOURCES.txt +15 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pyproject.toml +1 -1
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/LICENSE +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/MANIFEST.in +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/docs/geai-proxy/README.md +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/admin/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/admin/clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/admin/endpoints.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/data/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/data/clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/data_analyst/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/data_analyst/clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/data_analyst/endpoints.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/endpoints.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/managers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/mappers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/rag/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/rag/clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/rag/endpoints.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/rag/mappers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/rag/models.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/assistant/rag/responses.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/chat/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/chat/clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/chat/endpoints.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/chat/iris.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/chat/managers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/chat/session.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/chat/settings.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/__main__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/admin.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/assistant.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/base.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/builders.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/common.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/configuration.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/embeddings.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/evaluation.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/feedback.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/files.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/flows/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/gam.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/lab/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/lab/common.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/lab/options.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/lab/spec.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/lab/utils.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/llm.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/migrate.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/options.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/organization.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/rag.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/rerank.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/secrets.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/usage_limits.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/validators.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/commands/version.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/geai.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/geai_proxy.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/install_man.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/parsers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/texts/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/cli/texts/help.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/base/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/base/clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/base/mappers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/base/models.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/base/responses.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/common/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/common/decorators.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/common/exceptions.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/embeddings/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/embeddings/clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/embeddings/endpoints.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/embeddings/managers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/embeddings/mappers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/embeddings/models.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/embeddings/responses.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/feedback/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/feedback/clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/feedback/endpoints.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/feedback/models.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/files/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/files/clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/files/endpoints.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/files/managers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/files/mappers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/files/models.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/files/responses.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/handlers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/llm/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/llm/clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/llm/endpoints.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/models.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/plugins/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/plugins/clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/plugins/endpoints.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/plugins/models.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/rerank/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/rerank/clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/rerank/endpoints.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/rerank/managers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/rerank/mappers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/rerank/models.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/responses.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/secrets/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/secrets/clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/secrets/endpoints.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/services/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/services/llm/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/services/llm/model.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/services/llm/providers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/services/response.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/services/rest.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/singleton.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/utils/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/core/utils/console.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/dbg/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/dbg/debugger.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/evaluation/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/evaluation/clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/evaluation/dataset/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/evaluation/dataset/clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/evaluation/dataset/endpoints.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/evaluation/plan/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/evaluation/plan/clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/evaluation/plan/endpoints.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/evaluation/result/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/evaluation/result/clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/evaluation/result/endpoints.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/flows/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/flows/endpoints.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/flows/models.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/gam/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/gam/clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/gam/endpoints.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/health/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/health/clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/health/endpoints.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/agents/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/agents/clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/agents/endpoints.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/agents/mappers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/constants.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/models.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/processes/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/processes/clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/processes/endpoints.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/processes/mappers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/runners.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/spec/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/spec/loader.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/spec/parsers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/strategies/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/strategies/clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/strategies/endpoints.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/strategies/mappers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/tools/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/tools/endpoints.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/lab/tools/mappers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/man/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/man/man1/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/man/man1/geai-proxy.1 +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/man/man1/geai.1 +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/migration/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/migration/strategies.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/migration/tools.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/organization/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/organization/clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/organization/endpoints.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/organization/limits/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/organization/limits/clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/organization/limits/endpoints.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/organization/limits/managers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/organization/limits/mappers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/organization/managers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/organization/mappers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/organization/responses.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/proxy/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/proxy/clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/proxy/config.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/proxy/managers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/proxy/servers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/proxy/tool.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/admin/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/admin/test_clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/assistants/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/assistants/rag/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/assistants/rag/test_clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/assistants/rag/test_mappers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/assistants/rag/test_models.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/assistants/test_clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/assistants/test_managers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/assistants/test_mappers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/chat/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/chat/test_clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/chat/test_iris.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/chat/test_session.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/chat/test_ui.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/lab/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/lab/test_ai_lab.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/lab/test_common.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/lab/test_spec.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_assistant.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_chat.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_common.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_embeddings.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_feedback.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_files.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_gam.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_llm.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_migrate.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_organization.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_rag.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_rerank.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_show_help.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_usage_limits.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_validators.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/commands/test_version.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/core → pygeai-0.5.0b3/pygeai/tests/cli/docker}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/cli/test_parsers.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/core/base → pygeai-0.5.0b3/pygeai/tests/core}/__init__.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/core/base/data → pygeai-0.5.0b3/pygeai/tests/core/base}/__init__.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/core/common → pygeai-0.5.0b3/pygeai/tests/core/base/data}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/base/data/mappers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/base/data/models.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/base/test_mappers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/base/test_models.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/core/common/data → pygeai-0.5.0b3/pygeai/tests/core/common}/__init__.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/core/embeddings → pygeai-0.5.0b3/pygeai/tests/core/common/data}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/common/test_config.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/common/test_decorators.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/core/feedback → pygeai-0.5.0b3/pygeai/tests/core/embeddings}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/embeddings/test_clients.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/core/files → pygeai-0.5.0b3/pygeai/tests/core/feedback}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/feedback/test_clients.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/core/llm → pygeai-0.5.0b3/pygeai/tests/core/files}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/files/test_clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/files/test_managers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/files/test_models.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/files/test_responses.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/core/rerank → pygeai-0.5.0b3/pygeai/tests/core/llm}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/llm/test_clients.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/core/secrets → pygeai-0.5.0b3/pygeai/tests/core/rerank}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/rerank/test_clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/rerank/test_managers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/rerank/test_mappers.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/core/services → pygeai-0.5.0b3/pygeai/tests/core/secrets}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/secrets/test_clients.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/core/utils → pygeai-0.5.0b3/pygeai/tests/core/services}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/services/test_rest.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/test_handlers.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/dbg → pygeai-0.5.0b3/pygeai/tests/core/utils}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/core/utils/test_console.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/gam → pygeai-0.5.0b3/pygeai/tests/dbg}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/dbg/test_debugger.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/health → pygeai-0.5.0b3/pygeai/tests/gam}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/gam/test_clients.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/integration → pygeai-0.5.0b3/pygeai/tests/health}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/health/test_clients.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/integration/chat → pygeai-0.5.0b3/pygeai/tests/integration}/__init__.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/integration/lab → pygeai-0.5.0b3/pygeai/tests/integration/assistants}/__init__.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/integration/lab/agents → pygeai-0.5.0b3/pygeai/tests/integration/assistants/rag}/__init__.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/integration/lab/tools → pygeai-0.5.0b3/pygeai/tests/integration/chat}/__init__.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests → pygeai-0.5.0b3/pygeai/tests/integration}/lab/__init__.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests → pygeai-0.5.0b3/pygeai/tests/integration}/lab/agents/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/lab/agents/test_agents_list.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/lab/agents/test_delete_agent.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/lab/agents/test_get_agent.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests → pygeai-0.5.0b3/pygeai/tests/integration}/lab/processes/__init__.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/lab/spec → pygeai-0.5.0b3/pygeai/tests/integration/lab/reasoning_strategies}/__init__.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/lab/strategies → pygeai-0.5.0b3/pygeai/tests/integration/lab/tools}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/lab/tools/test_list_tools.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/lab/tools → pygeai-0.5.0b3/pygeai/tests/lab}/__init__.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/migration → pygeai-0.5.0b3/pygeai/tests/lab/agents}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/lab/agents/test_clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/lab/agents/test_mappers.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/organization → pygeai-0.5.0b3/pygeai/tests/lab/processes}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/lab/processes/test_clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/lab/processes/test_mappers.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/organization/limits → pygeai-0.5.0b3/pygeai/tests/lab/spec}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/lab/spec/test_loader.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/lab/spec/test_parsers.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/snippets → pygeai-0.5.0b3/pygeai/tests/lab/strategies}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/lab/strategies/test_clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/lab/strategies/test_mappers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/lab/test_managers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/lab/test_mappers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/lab/test_models.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/snippets/assistants → pygeai-0.5.0b3/pygeai/tests/lab/tools}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/lab/tools/test_clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/lab/tools/test_mappers.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/snippets/assistants/data_analyst → pygeai-0.5.0b3/pygeai/tests/migration}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/migration/test_strategies.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/migration/test_tools.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/snippets/assistants/rag → pygeai-0.5.0b3/pygeai/tests/organization}/__init__.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/snippets/chat → pygeai-0.5.0b3/pygeai/tests/organization/limits}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/organization/limits/test_clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/organization/limits/test_managers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/organization/test_clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/organization/test_managers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/organization/test_mappers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/proxy/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/proxy/test_clients.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/proxy/test_config.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/proxy/test_integration.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/proxy/test_managers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/proxy/test_servers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/proxy/test_tool.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/snippets/embeddings → pygeai-0.5.0b3/pygeai/tests/snippets}/__init__.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/snippets/evaluation → pygeai-0.5.0b3/pygeai/tests/snippets/assistants}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/create_chat_assistant.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/create_text_assistant.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/snippets/files → pygeai-0.5.0b3/pygeai/tests/snippets/assistants/data_analyst}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/data_analyst/extend_and_check.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/data_analyst/extend_dataset.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/data_analyst/get_status.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/file_summarizer_assistant.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/get_assistant_data.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/get_assistant_list.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/snippets/gam → pygeai-0.5.0b3/pygeai/tests/snippets/assistants/rag}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/rag/create_rag_assistant.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/rag/delete_al_documents.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/rag/delete_document.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/rag/delete_rag_assistant.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/rag/get_document.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/rag/get_documents.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/rag/get_rag_assistant_data.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/rag/update_rag_assistant.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/rag/upload_document.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/send_feedback.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/assistants/update_chat_assistant.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/snippets/lab → pygeai-0.5.0b3/pygeai/tests/snippets/chat}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/chat/cancel_request.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/chat/chat_completion.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/chat/chat_completion_1.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/chat/chat_completion_2.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/chat/chat_completion_3.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/chat/chat_completion_4.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/chat/chat_completion_streaming.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/chat/get_request_status.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/chat/send_chat_request.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/snippets/lab/agents → pygeai-0.5.0b3/pygeai/tests/snippets/embeddings}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/embeddings/generate_embeddings.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/snippets/lab/processes → pygeai-0.5.0b3/pygeai/tests/snippets/evaluation}/__init__.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/snippets/lab/processes/jobs → pygeai-0.5.0b3/pygeai/tests/snippets/files}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/files/delete_file.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/files/get_file_content.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/files/get_file_data.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/files/get_file_list.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/files/upload_file.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/snippets/lab/processes/kbs → pygeai-0.5.0b3/pygeai/tests/snippets/gam}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/gam/gam_access_token.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/snippets/lab/samples → pygeai-0.5.0b3/pygeai/tests/snippets/lab}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agentic_flow_example_1.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agentic_flow_example_2.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agentic_flow_example_3.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/snippets/lab/strategies → pygeai-0.5.0b3/pygeai/tests/snippets/lab/agents}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agents/create_agent.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agents/create_agent_2.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agents/create_agent_edge_case.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agents/create_agent_without_instructions.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agents/delete_agent.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agents/get_agent.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agents/list_agents.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agents/publish_agent_revision.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/agents/update_agent.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/assistant_to_agent.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/crud_ui.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/snippets/lab/tools → pygeai-0.5.0b3/pygeai/tests/snippets/lab/processes}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/processes/create_process.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/processes/create_task.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/snippets/lab/use_cases → pygeai-0.5.0b3/pygeai/tests/snippets/lab/processes/jobs}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/processes/jobs/list_jobs.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/snippets/migrate → pygeai-0.5.0b3/pygeai/tests/snippets/lab/processes/kbs}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/processes/kbs/create_kb.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/processes/kbs/get_kb.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/processes/kbs/list_kbs.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/processes/kbs/try_all.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/processes/list_processes.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/runner_1.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/snippets/organization → pygeai-0.5.0b3/pygeai/tests/snippets/lab/samples}/__init__.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/snippets/rerank → pygeai-0.5.0b3/pygeai/tests/snippets/lab/strategies}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/strategies/create_reasoning_strategy.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/strategies/get_reasoning_strategy.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/strategies/list_reasoning_strategies.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/strategies/update_reasoning_strategy.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/snippets/secrets → pygeai-0.5.0b3/pygeai/tests/snippets/lab/tools}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/tools/create_tool_edge_case.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/tools/delete_tool.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/tools/get_parameter.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/tools/get_tool.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/tools/list_tools.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/tools/publish_tool_revision.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/tools/set_parameters.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/tools/update_tool.py +0 -0
- {pygeai-0.4.0b9/pygeai/tests/snippets/usage_limit → pygeai-0.5.0b3/pygeai/tests/snippets/lab/use_cases}/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/use_cases/c_code_fixer_agent_flow.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/use_cases/create_cli_expert.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/use_cases/create_lab_expert.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/use_cases/create_tool_headless_web_browser.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/use_cases/create_web_designer.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/use_cases/create_web_reader.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/use_cases/update_cli_expert.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/use_cases/update_lab_expert.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/use_cases/update_web_designer.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/lab/use_cases/update_web_reader_with_tool.py +0 -0
- {pygeai-0.4.0b9/pygeai/vendor/a2a/auth → pygeai-0.5.0b3/pygeai/tests/snippets/migrate}/__init__.py +0 -0
- /pygeai-0.4.0b9/pygeai/vendor/a2a/py.typed → /pygeai-0.5.0b3/pygeai/tests/snippets/organization/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/organization/create_project.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/organization/delete_project.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/organization/export_request_data.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/organization/get_project_data.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/organization/get_project_list.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/organization/get_project_tokens.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/organization/update_project.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/rerank/rerank_chunks.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/usage_limit/delete_usage_limit.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/usage_limit/get_all_usage_limit_from_organization.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/usage_limit/get_usage_limit_from_organization.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/usage_limit/get_usage_limit_from_project.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/usage_limit/set_usage_limit_organization.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/usage_limit/set_usage_limit_project.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/usage_limit/update_usage_limit_organization.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/snippets/usage_limit/update_usage_limit_project.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/auth/user.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/client/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/client/client.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/client/errors.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/client/helpers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/agent_execution/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/agent_execution/agent_executor.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/agent_execution/context.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/agent_execution/request_context_builder.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/agent_execution/simple_request_context_builder.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/apps/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/apps/jsonrpc/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/apps/jsonrpc/fastapi_app.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/apps/jsonrpc/jsonrpc_app.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/apps/jsonrpc/starlette_app.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/context.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/events/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/events/event_consumer.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/events/event_queue.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/events/in_memory_queue_manager.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/events/queue_manager.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/request_handlers/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/request_handlers/default_request_handler.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/request_handlers/jsonrpc_handler.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/request_handlers/request_handler.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/request_handlers/response_helpers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/tasks/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/tasks/inmemory_push_notifier.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/tasks/inmemory_task_store.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/tasks/push_notifier.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/tasks/result_aggregator.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/tasks/task_manager.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/tasks/task_store.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/server/tasks/task_updater.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/types.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/utils/__init__.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/utils/artifact.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/utils/errors.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/utils/helpers.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/utils/message.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/utils/task.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/vendor/a2a/utils/telemetry.py +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai.egg-info/dependency_links.txt +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai.egg-info/entry_points.txt +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai.egg-info/requires.txt +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai.egg-info/top_level.txt +0 -0
- {pygeai-0.4.0b9 → pygeai-0.5.0b3}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pygeai
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0b3
|
|
4
4
|
Summary: Software Development Kit to interact with Globant Enterprise AI.
|
|
5
5
|
Author-email: Globant <geai-sdk@globant.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -48,7 +48,7 @@ By using the Python SDK to interact with Globant Enterprise AI, you agree with t
|
|
|
48
48
|
[Terms and Conditions](https://www.globant.com/enterprise-ai/terms-of-use)
|
|
49
49
|
|
|
50
50
|
## Compatibility
|
|
51
|
-
This package is compatible with the Globant Enterprise AI release from
|
|
51
|
+
This package is compatible with the Globant Enterprise AI release from November 2025.
|
|
52
52
|
|
|
53
53
|
## Configuration
|
|
54
54
|
|
|
@@ -60,22 +60,50 @@ Before using the SDK, you need to define `GEAI_API_KEY` (`$SAIA_APITOKEN`) and `
|
|
|
60
60
|
|
|
61
61
|
**Note:** If you plan to use the [Evaluation Module](https://wiki.genexus.com/enterprise-ai/wiki?896,Evaluation), you must also define `GEAI_API_EVAL_URL`
|
|
62
62
|
|
|
63
|
+
### Credentials file
|
|
64
|
+
The credentials file is organized via profiles, so one can interact with different instances of Globant Enterprise AI by just
|
|
65
|
+
referencing which profile one wishes to use. This also applies to different levels of permissions.
|
|
66
|
+
|
|
67
|
+
The structure of the credentials file is as follows:
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
[default]
|
|
71
|
+
geai_api_key = <API_TOKEN>
|
|
72
|
+
geai_api_base_url = <GEAI_BASE_URL>
|
|
73
|
+
geai_api_evaul_url = <GEAI_EVALUATION_MODULE_URL>
|
|
74
|
+
|
|
75
|
+
[<another alias>]
|
|
76
|
+
geai_api_key = <API_TOKEN>
|
|
77
|
+
geai_api_base_url = <GEAI_BASE_URL>
|
|
78
|
+
geai_api_evaul_url = <GEAI_EVALUATION_MODULE_URL>
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
After setting the profiles, one can use them with the --alias option, for example:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
geai --alias test llm list-providers
|
|
86
|
+
```
|
|
87
|
+
|
|
63
88
|
## Modules
|
|
64
89
|
|
|
65
|
-
The SDK consists of several modules, all accessible through a
|
|
66
|
-
|
|
67
|
-
- **`pygeai`**:
|
|
68
|
-
- **`
|
|
69
|
-
- **`
|
|
70
|
-
- **`
|
|
71
|
-
- **`
|
|
72
|
-
- **`
|
|
73
|
-
- **`
|
|
74
|
-
- **`
|
|
75
|
-
- **`
|
|
76
|
-
- **`
|
|
77
|
-
- **`
|
|
78
|
-
- **`
|
|
90
|
+
The SDK consists of several modules, all accessible through a single package `pygeai`:
|
|
91
|
+
|
|
92
|
+
- **`pygeai`**: The package encapsulates all components of the SDK.
|
|
93
|
+
- **`admin`**: Allows the user to interact with some of the administration endpoints of Globant Enterprise AI.
|
|
94
|
+
- **`assistant`**: This module handles interactions with various Assistants, including [Data Analyst Assistants](https://wiki.genexus.com/enterprise-ai/wiki?886,Data+Analyst+Assistant+2.0), [RAG Assistants](https://wiki.genexus.com/enterprise-ai/wiki?44,RAG+Assistants+Introduction), [Chat with Data Assistants](https://wiki.genexus.com/enterprise-ai/wiki?159,Chat+with+Data+Assistant), [Chat with API Assistants](https://wiki.genexus.com/enterprise-ai/wiki?110,API+Assistant), and [Chat Assistants](https://wiki.genexus.com/enterprise-ai/wiki?708,Chat+Assistant [soon to be deprecated]).
|
|
95
|
+
- **`chat`**: This module offers facilities to chat with assistants/agents created in Globant Enterprise AI.
|
|
96
|
+
- **`core`**: This module handles interactions with the fundamental components of Globant Enterprise.
|
|
97
|
+
- **`cli`**: This module provides a command-line tool for interacting with the SDK.
|
|
98
|
+
- **`dbg`**: This module includes a debugger to troubleshoot potential SDK issues and gain detailed insights into its operations.
|
|
99
|
+
- **`evaluation`**: This module provides functionality for the evaluation module.
|
|
100
|
+
- **`flows`**: This module enables interactions with [Flows](https://wiki.genexus.com/enterprise-ai/wiki?321,Flows+in+Globant+Enterprise+AI) [in development].
|
|
101
|
+
- **`gam`**: This module allows interaction with [GAM] (https://wiki.genexus.com/commwiki/wiki?24746,Table+of+contents%3AGeneXus+Access+Manager+%28GAM%29,).
|
|
102
|
+
- **`health`**: Provides an easy way to check the status of the Globant Enterprise AI instance one is using.
|
|
103
|
+
- **`lab`**: This module facilitates interactions with [The Lab] (https://docs.globant.ai/en/wiki?1671,The+Lab).
|
|
104
|
+
- **`organization`**: This module facilitates interactions with Organizations and [Projects](https://wiki.genexus.com/enterprise-ai/wiki?565,Projects) in Globant Enterprise AI.
|
|
105
|
+
- **`migration`**: This module provides functionality to migrate Agents, Tools and Projects between instances and organizations.
|
|
106
|
+
- **`proxy`**: This module handles [integrations with MCP and A2A] (https://docs.globant.ai/en/wiki?1179,Importing+Tools+using+MCP+and+A2A+Servers).
|
|
79
107
|
|
|
80
108
|
## Usage
|
|
81
109
|
|
|
@@ -9,7 +9,7 @@ By using the Python SDK to interact with Globant Enterprise AI, you agree with t
|
|
|
9
9
|
[Terms and Conditions](https://www.globant.com/enterprise-ai/terms-of-use)
|
|
10
10
|
|
|
11
11
|
## Compatibility
|
|
12
|
-
This package is compatible with the Globant Enterprise AI release from
|
|
12
|
+
This package is compatible with the Globant Enterprise AI release from November 2025.
|
|
13
13
|
|
|
14
14
|
## Configuration
|
|
15
15
|
|
|
@@ -21,22 +21,50 @@ Before using the SDK, you need to define `GEAI_API_KEY` (`$SAIA_APITOKEN`) and `
|
|
|
21
21
|
|
|
22
22
|
**Note:** If you plan to use the [Evaluation Module](https://wiki.genexus.com/enterprise-ai/wiki?896,Evaluation), you must also define `GEAI_API_EVAL_URL`
|
|
23
23
|
|
|
24
|
+
### Credentials file
|
|
25
|
+
The credentials file is organized via profiles, so one can interact with different instances of Globant Enterprise AI by just
|
|
26
|
+
referencing which profile one wishes to use. This also applies to different levels of permissions.
|
|
27
|
+
|
|
28
|
+
The structure of the credentials file is as follows:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
[default]
|
|
32
|
+
geai_api_key = <API_TOKEN>
|
|
33
|
+
geai_api_base_url = <GEAI_BASE_URL>
|
|
34
|
+
geai_api_evaul_url = <GEAI_EVALUATION_MODULE_URL>
|
|
35
|
+
|
|
36
|
+
[<another alias>]
|
|
37
|
+
geai_api_key = <API_TOKEN>
|
|
38
|
+
geai_api_base_url = <GEAI_BASE_URL>
|
|
39
|
+
geai_api_evaul_url = <GEAI_EVALUATION_MODULE_URL>
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
After setting the profiles, one can use them with the --alias option, for example:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
geai --alias test llm list-providers
|
|
47
|
+
```
|
|
48
|
+
|
|
24
49
|
## Modules
|
|
25
50
|
|
|
26
|
-
The SDK consists of several modules, all accessible through a
|
|
27
|
-
|
|
28
|
-
- **`pygeai`**:
|
|
29
|
-
- **`
|
|
30
|
-
- **`
|
|
31
|
-
- **`
|
|
32
|
-
- **`
|
|
33
|
-
- **`
|
|
34
|
-
- **`
|
|
35
|
-
- **`
|
|
36
|
-
- **`
|
|
37
|
-
- **`
|
|
38
|
-
- **`
|
|
39
|
-
- **`
|
|
51
|
+
The SDK consists of several modules, all accessible through a single package `pygeai`:
|
|
52
|
+
|
|
53
|
+
- **`pygeai`**: The package encapsulates all components of the SDK.
|
|
54
|
+
- **`admin`**: Allows the user to interact with some of the administration endpoints of Globant Enterprise AI.
|
|
55
|
+
- **`assistant`**: This module handles interactions with various Assistants, including [Data Analyst Assistants](https://wiki.genexus.com/enterprise-ai/wiki?886,Data+Analyst+Assistant+2.0), [RAG Assistants](https://wiki.genexus.com/enterprise-ai/wiki?44,RAG+Assistants+Introduction), [Chat with Data Assistants](https://wiki.genexus.com/enterprise-ai/wiki?159,Chat+with+Data+Assistant), [Chat with API Assistants](https://wiki.genexus.com/enterprise-ai/wiki?110,API+Assistant), and [Chat Assistants](https://wiki.genexus.com/enterprise-ai/wiki?708,Chat+Assistant [soon to be deprecated]).
|
|
56
|
+
- **`chat`**: This module offers facilities to chat with assistants/agents created in Globant Enterprise AI.
|
|
57
|
+
- **`core`**: This module handles interactions with the fundamental components of Globant Enterprise.
|
|
58
|
+
- **`cli`**: This module provides a command-line tool for interacting with the SDK.
|
|
59
|
+
- **`dbg`**: This module includes a debugger to troubleshoot potential SDK issues and gain detailed insights into its operations.
|
|
60
|
+
- **`evaluation`**: This module provides functionality for the evaluation module.
|
|
61
|
+
- **`flows`**: This module enables interactions with [Flows](https://wiki.genexus.com/enterprise-ai/wiki?321,Flows+in+Globant+Enterprise+AI) [in development].
|
|
62
|
+
- **`gam`**: This module allows interaction with [GAM] (https://wiki.genexus.com/commwiki/wiki?24746,Table+of+contents%3AGeneXus+Access+Manager+%28GAM%29,).
|
|
63
|
+
- **`health`**: Provides an easy way to check the status of the Globant Enterprise AI instance one is using.
|
|
64
|
+
- **`lab`**: This module facilitates interactions with [The Lab] (https://docs.globant.ai/en/wiki?1671,The+Lab).
|
|
65
|
+
- **`organization`**: This module facilitates interactions with Organizations and [Projects](https://wiki.genexus.com/enterprise-ai/wiki?565,Projects) in Globant Enterprise AI.
|
|
66
|
+
- **`migration`**: This module provides functionality to migrate Agents, Tools and Projects between instances and organizations.
|
|
67
|
+
- **`proxy`**: This module handles [integrations with MCP and A2A] (https://docs.globant.ai/en/wiki?1179,Importing+Tools+using+MCP+and+A2A+Servers).
|
|
40
68
|
|
|
41
69
|
## Usage
|
|
42
70
|
|
|
@@ -362,7 +362,7 @@ def chat_with_agent(option_list: list):
|
|
|
362
362
|
raise MissingRequirementException(f"Agent name must be specified.")
|
|
363
363
|
|
|
364
364
|
project_id = get_project_id()
|
|
365
|
-
agent_data = AgentClient().get_agent(
|
|
365
|
+
agent_data = AgentClient(project_id=project_id).get_agent(agent_id=agent_name)
|
|
366
366
|
if 'errors' in agent_data:
|
|
367
367
|
raise InvalidAgentException(f"There is no agent with that name: {agent_data.get('errors')}")
|
|
368
368
|
|
|
@@ -374,62 +374,54 @@ def chat_with_agent(option_list: list):
|
|
|
374
374
|
Console.write_stderr("Streamlit is required for GUI mode. Install it with 'pip install streamlit'.")
|
|
375
375
|
sys.exit(1)
|
|
376
376
|
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
377
|
+
try:
|
|
378
|
+
ui_path = resources.files("pygeai.chat").joinpath("ui.py")
|
|
379
|
+
ui_file_path = str(ui_path)
|
|
380
|
+
|
|
381
|
+
# Add the top-level project root to PYTHONPATH
|
|
382
|
+
package_root = str(Path(ui_file_path).resolve().parents[2])
|
|
383
|
+
env = os.environ.copy()
|
|
384
|
+
env["PYTHONPATH"] = package_root + os.pathsep + env.get("PYTHONPATH", "")
|
|
385
|
+
|
|
386
|
+
streamlit_cmd = [
|
|
387
|
+
sys.executable, "-m", "streamlit", "run", ui_file_path,
|
|
388
|
+
"--server.address", "127.0.0.1",
|
|
389
|
+
"--", "--agent-name", agent_name
|
|
390
|
+
]
|
|
391
|
+
|
|
392
|
+
if platform.system() == "Linux":
|
|
393
|
+
streamlit_cmd.insert(5, "--server.headless=true")
|
|
394
|
+
|
|
395
|
+
process = subprocess.Popen(
|
|
396
|
+
streamlit_cmd,
|
|
397
|
+
stdout=subprocess.PIPE,
|
|
398
|
+
stderr=subprocess.PIPE,
|
|
399
|
+
text=True
|
|
400
|
+
)
|
|
384
401
|
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
# Add the top-level project root to PYTHONPATH
|
|
390
|
-
package_root = str(Path(ui_file_path).resolve().parents[2])
|
|
391
|
-
env = os.environ.copy()
|
|
392
|
-
env["PYTHONPATH"] = package_root + os.pathsep + env.get("PYTHONPATH", "")
|
|
393
|
-
|
|
394
|
-
streamlit_cmd = [
|
|
395
|
-
sys.executable, "-m", "streamlit", "run", ui_file_path,
|
|
396
|
-
"--server.address", "127.0.0.1",
|
|
397
|
-
"--", "--agent-name", agent_name
|
|
398
|
-
]
|
|
399
|
-
|
|
400
|
-
if platform.system() == "Linux":
|
|
401
|
-
streamlit_cmd.insert(5, "--server.headless=true")
|
|
402
|
-
|
|
403
|
-
process = subprocess.Popen(
|
|
404
|
-
streamlit_cmd,
|
|
405
|
-
stdout=subprocess.PIPE,
|
|
406
|
-
stderr=subprocess.PIPE,
|
|
407
|
-
text=True
|
|
408
|
-
)
|
|
409
|
-
|
|
410
|
-
url = "http://localhost:8501"
|
|
411
|
-
if platform.system() == "Linux":
|
|
412
|
-
Console.write_stdout(f"Open Streamlit app at {url} (or next port like 8502 if 8501 is taken)")
|
|
413
|
-
|
|
414
|
-
try:
|
|
415
|
-
stdout, stderr = process.communicate()
|
|
416
|
-
if stderr:
|
|
417
|
-
logger.error(f"Streamlit stderr:\n{stderr}")
|
|
418
|
-
Console.write_stderr(f"Streamlit error:\n{stderr}")
|
|
419
|
-
except KeyboardInterrupt:
|
|
420
|
-
process.terminate()
|
|
421
|
-
Console.write_stdout("Streamlit stopped.")
|
|
422
|
-
sys.exit(0)
|
|
402
|
+
url = "http://localhost:8501"
|
|
403
|
+
if platform.system() == "Linux":
|
|
404
|
+
Console.write_stdout(f"Open Streamlit app at {url} (or next port like 8502 if 8501 is taken)")
|
|
423
405
|
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
sys.exit(
|
|
406
|
+
try:
|
|
407
|
+
stdout, stderr = process.communicate()
|
|
408
|
+
if stderr:
|
|
409
|
+
logger.error(f"Streamlit stderr:\n{stderr}")
|
|
410
|
+
Console.write_stderr(f"Streamlit error:\n{stderr}")
|
|
411
|
+
except KeyboardInterrupt:
|
|
412
|
+
process.terminate()
|
|
413
|
+
Console.write_stdout("Streamlit stopped.")
|
|
414
|
+
sys.exit(0)
|
|
415
|
+
|
|
416
|
+
except FileNotFoundError:
|
|
417
|
+
logger.error("Could not locate pygeai/chat/ui.py")
|
|
418
|
+
Console.write_stderr("Streamlit UI file not found. Ensure pygeai is installed correctly.")
|
|
419
|
+
sys.exit(1)
|
|
420
|
+
except Exception as e:
|
|
421
|
+
logger.error(f"Streamlit error: {e}")
|
|
422
|
+
Console.write_stderr(
|
|
423
|
+
f"Failed to launch Streamlit. Check port with 'lsof -i :8501' and kill any process, or try {url}.")
|
|
424
|
+
sys.exit(1)
|
|
433
425
|
else:
|
|
434
426
|
chat_session = AgentChatSession(agent_name)
|
|
435
427
|
messages = list()
|
|
@@ -15,7 +15,6 @@ from pygeai.lab.processes.clients import AgenticProcessClient
|
|
|
15
15
|
from pygeai.lab.strategies.clients import ReasoningStrategyClient
|
|
16
16
|
from pygeai.lab.tools.clients import ToolClient
|
|
17
17
|
from pygeai.lab.constants import VALID_SCOPES
|
|
18
|
-
from pygeai.tests.snippets.lab.crud_ui import project_id
|
|
19
18
|
|
|
20
19
|
|
|
21
20
|
def show_help():
|
|
@@ -30,7 +30,7 @@ class Session(metaclass=Singleton):
|
|
|
30
30
|
eval_url: Optional[str] = None,
|
|
31
31
|
):
|
|
32
32
|
if not api_key or not base_url:
|
|
33
|
-
|
|
33
|
+
logger.warning("Cannot instantiate session without api_key and base_url")
|
|
34
34
|
|
|
35
35
|
self.__api_key = api_key
|
|
36
36
|
self.__base_url = base_url
|
|
@@ -114,9 +114,7 @@ def get_settings():
|
|
|
114
114
|
|
|
115
115
|
if __name__ == "__main__":
|
|
116
116
|
settings = get_settings()
|
|
117
|
-
geai_api_key = settings.get_api_key()
|
|
118
117
|
geai_base_url = settings.get_base_url()
|
|
119
118
|
geai_eval_url = settings.get_eval_url()
|
|
120
|
-
print(f"api_key: {geai_api_key}")
|
|
121
119
|
print(f"base_url: {geai_base_url}")
|
|
122
120
|
print(f"eval_url: {geai_eval_url}")
|
|
@@ -559,7 +559,7 @@ class AILabManager:
|
|
|
559
559
|
tool_id: Optional[str] = None,
|
|
560
560
|
tool_public_name: Optional[str] = None,
|
|
561
561
|
parameters: List[ToolParameter] = None
|
|
562
|
-
) ->
|
|
562
|
+
) -> EmptyResponse:
|
|
563
563
|
"""
|
|
564
564
|
Sets or updates parameters for a specific tool in the specified project.
|
|
565
565
|
|
|
@@ -591,7 +591,7 @@ class AILabManager:
|
|
|
591
591
|
logger.error(f"Error received while setting tool parameters: {error}")
|
|
592
592
|
raise APIError(f"Error received while setting tool parameters: {error}")
|
|
593
593
|
|
|
594
|
-
result =
|
|
594
|
+
result = ResponseMapper.map_to_empty_response(response_data or "Parameter set successfully")
|
|
595
595
|
return result
|
|
596
596
|
|
|
597
597
|
def list_reasoning_strategies(
|
|
@@ -114,7 +114,8 @@ class ToolClient(AILabClient):
|
|
|
114
114
|
headers=headers,
|
|
115
115
|
data=data
|
|
116
116
|
)
|
|
117
|
-
|
|
117
|
+
|
|
118
|
+
if response.status_code >= 300:
|
|
118
119
|
logger.error(f"Invalid status code returned from the API endpoint: {response.text}")
|
|
119
120
|
raise APIResponseError(f"API returned an error: {response.text}")
|
|
120
121
|
try:
|
|
@@ -168,7 +169,7 @@ class ToolClient(AILabClient):
|
|
|
168
169
|
"allowExternal": allow_external
|
|
169
170
|
}
|
|
170
171
|
)
|
|
171
|
-
if response.status_code
|
|
172
|
+
if response.status_code >= 300:
|
|
172
173
|
logger.error(f"Invalid status code returned from the API endpoint: {response.text}")
|
|
173
174
|
raise APIResponseError(f"API returned an error: {response.text}")
|
|
174
175
|
try:
|
|
@@ -212,7 +213,7 @@ class ToolClient(AILabClient):
|
|
|
212
213
|
"allowDrafts": allow_drafts,
|
|
213
214
|
}
|
|
214
215
|
)
|
|
215
|
-
if response.status_code
|
|
216
|
+
if response.status_code >= 300:
|
|
216
217
|
logger.error(f"Invalid status code returned from the API endpoint: {response.text}")
|
|
217
218
|
raise APIResponseError(f"API returned an error: {response.text}")
|
|
218
219
|
try:
|
|
@@ -255,7 +256,7 @@ class ToolClient(AILabClient):
|
|
|
255
256
|
endpoint=endpoint,
|
|
256
257
|
headers=headers
|
|
257
258
|
)
|
|
258
|
-
if response.status_code
|
|
259
|
+
if response.status_code >= 300:
|
|
259
260
|
logger.error(f"Invalid status code returned from the API endpoint: {response.text}")
|
|
260
261
|
raise APIResponseError(f"API returned an error: {response.text}")
|
|
261
262
|
|
|
@@ -375,7 +376,7 @@ class ToolClient(AILabClient):
|
|
|
375
376
|
headers=headers,
|
|
376
377
|
data=data
|
|
377
378
|
)
|
|
378
|
-
if response.status_code
|
|
379
|
+
if response.status_code >= 300:
|
|
379
380
|
logger.error(f"Invalid status code returned from the API endpoint: {response.text}")
|
|
380
381
|
raise APIResponseError(f"API returned an error: {response.text}")
|
|
381
382
|
try:
|
|
@@ -463,7 +464,7 @@ class ToolClient(AILabClient):
|
|
|
463
464
|
"allowDrafts": allow_drafts,
|
|
464
465
|
}
|
|
465
466
|
)
|
|
466
|
-
if response.status_code
|
|
467
|
+
if response.status_code >= 300:
|
|
467
468
|
logger.error(f"Invalid status code returned from the API endpoint: {response.text}")
|
|
468
469
|
raise APIResponseError(f"API returned an error: {response.text}")
|
|
469
470
|
try:
|
|
@@ -520,16 +521,11 @@ class ToolClient(AILabClient):
|
|
|
520
521
|
headers=headers,
|
|
521
522
|
data=data
|
|
522
523
|
)
|
|
523
|
-
if response.status_code !=
|
|
524
|
-
logger.error(f"
|
|
525
|
-
raise
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
except JSONDecodeError as e:
|
|
529
|
-
logger.error(f"Unable to set parameters for tool {tool_id or tool_public_name} in project {self.project_id}: JSON parsing error (status {response.status_code}): {e}. Response: {response.text}")
|
|
530
|
-
raise InvalidAPIResponseException(f"Unable to set parameters for tool {tool_id or tool_public_name} in project {self.project_id}: {response.text}")
|
|
531
|
-
|
|
532
|
-
return result
|
|
524
|
+
if response.status_code != 204:
|
|
525
|
+
logger.error(f"Unable to set parameter for tool {tool_id or tool_public_name} from project {self.project_id}: JSON parsing error (status {response.status_code}). Response: {response.text}")
|
|
526
|
+
raise InvalidAPIResponseException(f"Unable to set parameter for tool {tool_id or tool_public_name} from project {self.project_id}: {response.text}")
|
|
527
|
+
else:
|
|
528
|
+
return {}
|
|
533
529
|
|
|
534
530
|
def export_tool(
|
|
535
531
|
self,
|
|
@@ -559,7 +555,7 @@ class ToolClient(AILabClient):
|
|
|
559
555
|
endpoint=endpoint,
|
|
560
556
|
headers=headers,
|
|
561
557
|
)
|
|
562
|
-
if response.status_code
|
|
558
|
+
if response.status_code >= 300:
|
|
563
559
|
logger.error(f"Invalid status code returned from the API endpoint: {response.text}")
|
|
564
560
|
raise APIResponseError(f"API returned an error: {response.text}")
|
|
565
561
|
try:
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
from unittest import TestCase
|
|
2
|
+
import uuid
|
|
3
|
+
from pygeai.assistant.managers import AssistantManager
|
|
4
|
+
from pygeai.core.models import WelcomeData, LlmSettings
|
|
5
|
+
from pygeai.assistant.rag.models import (
|
|
6
|
+
Search,
|
|
7
|
+
RetrieverOptions,
|
|
8
|
+
SearchOptions,
|
|
9
|
+
ChunkOptions,
|
|
10
|
+
IndexOptions,
|
|
11
|
+
RAGAssistant,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class TestAssistantCreateRagIntegration(TestCase):
|
|
16
|
+
|
|
17
|
+
def setUp(self):
|
|
18
|
+
"""
|
|
19
|
+
Set up the test environment.
|
|
20
|
+
"""
|
|
21
|
+
self.assistant_manager = AssistantManager(alias="beta")
|
|
22
|
+
|
|
23
|
+
self.new_rag = self.__load_rag()
|
|
24
|
+
self.created_rag: RAGAssistant = None
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def tearDown(self):
|
|
28
|
+
"""
|
|
29
|
+
Clean up after each test if necessary.
|
|
30
|
+
This can be used to delete the created tool
|
|
31
|
+
"""
|
|
32
|
+
if isinstance(self.created_rag, RAGAssistant):
|
|
33
|
+
self.assistant_manager.delete_assistant(assistant_name=self.created_rag.name)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def __load_rag(self):
|
|
37
|
+
llm_options = LlmSettings(
|
|
38
|
+
cache=False,
|
|
39
|
+
temperature=0.1,
|
|
40
|
+
max_tokens=999,
|
|
41
|
+
model_name="gpt-3.5-turbo-16k",
|
|
42
|
+
n=1,
|
|
43
|
+
presence_penalty=0,
|
|
44
|
+
frequency_penalty=0,
|
|
45
|
+
provider="OpenAI",
|
|
46
|
+
stream=False,
|
|
47
|
+
top_p=1.0,
|
|
48
|
+
type=None,
|
|
49
|
+
verbose=True,
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
retriever_options = RetrieverOptions(type="vectorStore")
|
|
53
|
+
|
|
54
|
+
search_options = SearchOptions(
|
|
55
|
+
history_count=2,
|
|
56
|
+
llm=llm_options,
|
|
57
|
+
search=Search(
|
|
58
|
+
k=5,
|
|
59
|
+
return_source_documents=False,
|
|
60
|
+
score_threshold=0,
|
|
61
|
+
prompt="Use {context} and {question}",
|
|
62
|
+
template="",
|
|
63
|
+
),
|
|
64
|
+
retriever=retriever_options,
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
chunk_options = ChunkOptions(chunk_size=999, chunk_overlap=0)
|
|
68
|
+
|
|
69
|
+
index_options = IndexOptions(chunks=chunk_options)
|
|
70
|
+
|
|
71
|
+
welcome_data = WelcomeData(
|
|
72
|
+
title="Test Profile Welcome Data",
|
|
73
|
+
description="Test Profile with WelcomeData",
|
|
74
|
+
features=[],
|
|
75
|
+
examples_prompt=[],
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
return RAGAssistant(
|
|
79
|
+
name=str(uuid.uuid4()),
|
|
80
|
+
description="Test Profile with WelcomeData",
|
|
81
|
+
search_options=search_options,
|
|
82
|
+
index_options=index_options,
|
|
83
|
+
welcome_data=welcome_data,
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def test_create_rag_assistant(self):
|
|
88
|
+
rag_assistant = self.__load_rag()
|
|
89
|
+
self.created_rag = self.assistant_manager.create_assistant(rag_assistant)
|
|
90
|
+
|
|
91
|
+
self.assertIsInstance(self.created_rag, RAGAssistant, "Failed to create RAG assistant")
|
|
@@ -56,13 +56,9 @@ class TestChatGenerateImageIntegration(TestCase):
|
|
|
56
56
|
self.new_image["model"] = ""
|
|
57
57
|
created_image = self.__generate_image()
|
|
58
58
|
|
|
59
|
-
self.assertEqual(
|
|
60
|
-
created_image["error"]["code"], 400,
|
|
61
|
-
"Expected a 400 code for no model"
|
|
62
|
-
)
|
|
63
59
|
self.assertEqual(
|
|
64
60
|
created_image["error"]["message"],
|
|
65
|
-
"
|
|
61
|
+
"LLM Provider NOT provided. Pass in the LLM provider you are trying to call",
|
|
66
62
|
"Expected an error message when no model is provided"
|
|
67
63
|
)
|
|
68
64
|
|
|
@@ -33,7 +33,6 @@ class TestAILabCreateAgentIntegration(TestCase):
|
|
|
33
33
|
access_scope="public",
|
|
34
34
|
public_name=f"public_{random_str}",
|
|
35
35
|
job_description="Translator",
|
|
36
|
-
avatar_image="https://www.shareicon.net/data/128x128/2016/11/09/851442_logo_512x512.png",
|
|
37
36
|
description="Agent that translates from any language to english.",
|
|
38
37
|
agent_data=AgentData(
|
|
39
38
|
prompt=Prompt(
|
|
@@ -142,7 +141,6 @@ class TestAILabCreateAgentIntegration(TestCase):
|
|
|
142
141
|
self.assertEqual(prompt.inputs, agent.agent_data.prompt.inputs)
|
|
143
142
|
|
|
144
143
|
|
|
145
|
-
@unittest.skip("Skipping test due to mismatch in expected behavior")
|
|
146
144
|
def test_create_agent_without_required_data(self):
|
|
147
145
|
test_params = [ True, False ]
|
|
148
146
|
|
|
@@ -152,12 +150,19 @@ class TestAILabCreateAgentIntegration(TestCase):
|
|
|
152
150
|
self.new_agent = Agent(
|
|
153
151
|
name=str(uuid.uuid4())
|
|
154
152
|
)
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
153
|
+
if auto_publish:
|
|
154
|
+
|
|
155
|
+
with self.assertRaises(APIError) as exception:
|
|
156
|
+
self.__create_agent(automatic_publish=auto_publish)
|
|
157
|
+
|
|
158
|
+
#TODO: Change validation error to a more specific one
|
|
159
|
+
self.assertIn(
|
|
160
|
+
"A valid prompt is required. To be valid, it must provide clear instructions to the model",
|
|
161
|
+
str(exception.exception)
|
|
162
|
+
)
|
|
163
|
+
else:
|
|
164
|
+
created_agent = self.__create_agent(automatic_publish=auto_publish)
|
|
165
|
+
self.assertTrue(isinstance(created_agent, Agent), "Expected a created agent")
|
|
161
166
|
|
|
162
167
|
|
|
163
168
|
def test_create_agent_no_name(self):
|
{pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/lab/agents/test_create_sharing_link.py
RENAMED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from unittest import TestCase
|
|
2
|
+
import unittest
|
|
2
3
|
from pygeai.lab.managers import AILabManager
|
|
3
4
|
from pygeai.lab.models import SharingLink
|
|
4
5
|
from pygeai.core.common.exceptions import APIError, MissingRequirementException
|
|
@@ -16,7 +17,7 @@ class TestAILabCreateSharingLinkIntegration(TestCase):
|
|
|
16
17
|
agent_id=self.agent_id if agent_id is None else agent_id
|
|
17
18
|
)
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
@unittest.skip("Endpoint is not found. Validate if it was deleted")
|
|
20
21
|
def test_create_sharing_link(self):
|
|
21
22
|
shared_link = self.__create_sharing_link()
|
|
22
23
|
self.assertIsInstance(shared_link, SharingLink, "Expected response to be an instance of SharingLink")
|
|
@@ -46,6 +47,7 @@ class TestAILabCreateSharingLinkIntegration(TestCase):
|
|
|
46
47
|
)
|
|
47
48
|
|
|
48
49
|
|
|
50
|
+
@unittest.skip("Endpoint is not found. Validate if it was deleted")
|
|
49
51
|
def test_create_sharing_link_no_agent_id(self):
|
|
50
52
|
with self.assertRaises(MissingRequirementException) as context:
|
|
51
53
|
self.__create_sharing_link(agent_id="")
|
|
@@ -56,6 +58,7 @@ class TestAILabCreateSharingLinkIntegration(TestCase):
|
|
|
56
58
|
)
|
|
57
59
|
|
|
58
60
|
|
|
61
|
+
@unittest.skip("Endpoint is not found. Validate if it was deleted")
|
|
59
62
|
def test_create_sharing_link_invalid_agent_id(self):
|
|
60
63
|
with self.assertRaises(APIError) as exception:
|
|
61
64
|
invalid_id = "0026e53d-ea78-4cac-af9f-12650invalid"
|
{pygeai-0.4.0b9 → pygeai-0.5.0b3}/pygeai/tests/integration/lab/agents/test_publish_agent_revision.py
RENAMED
|
@@ -28,7 +28,6 @@ class TestAILabPublishAgentRevisionIntegration(TestCase):
|
|
|
28
28
|
access_scope="public",
|
|
29
29
|
public_name=f"public_{random_str}",
|
|
30
30
|
job_description=f"SummarizerAgent{random_str}",
|
|
31
|
-
avatar_image="https://www.shareicon.net/data/128x128/2016/11/09/851442_logo_512x512.png",
|
|
32
31
|
description=f"Agent that summarized documents. {random_str}",
|
|
33
32
|
agent_data=AgentData(
|
|
34
33
|
prompt=Prompt(
|