uipath-langchain 0.0.146__tar.gz → 0.0.147__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.
Potentially problematic release.
This version of uipath-langchain might be problematic. Click here for more details.
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/PKG-INFO +1 -1
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/pyproject.toml +1 -1
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/agent/react/__init__.py +4 -3
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/agent/react/agent.py +6 -3
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/agent/react/init_node.py +1 -1
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/agent/react/llm_node.py +1 -1
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/agent/react/router.py +1 -1
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/agent/react/terminate_node.py +1 -1
- uipath_langchain-0.0.146/src/uipath_langchain/agent/react/state.py → uipath_langchain-0.0.147/src/uipath_langchain/agent/react/types.py +7 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/vectorstores/context_grounding_vectorstore.py +89 -109
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/uv.lock +1 -1
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/.cursorrules +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/.editorconfig +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/.gitattributes +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/.github/workflows/cd.yml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/.github/workflows/ci.yml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/.github/workflows/commitlint.yml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/.github/workflows/integration_tests.yml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/.github/workflows/lint-custom-version.yml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/.github/workflows/lint.yml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/.github/workflows/publish-dev.yml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/.github/workflows/publish-docs.yml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/.github/workflows/publish-prior-stable-version.yml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/.github/workflows/slack.yml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/.github/workflows/test-custom-version.yml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/.github/workflows/test.yml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/.gitignore +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/.pre-commit-config.yaml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/.python-version +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/.vscode/extensions.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/.vscode/settings.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/CONTRIBUTING.md +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/LICENSE +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/README.md +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/chat_models.md +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/context_grounding.md +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/human_in_the_loop.md +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/quick_start.md +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/quick_start_images/cloud_env_var_dark.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/quick_start_images/cloud_env_var_light.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/quick_start_images/invoke_output_dark.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/quick_start_images/invoke_output_light.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/RAG/click-storage-bucket.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/RAG/create-index-1.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/RAG/create-index-2.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/RAG/create-process.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/RAG/create-quiz-generator.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/RAG/create-storage-bucket-1.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/RAG/create-storage-bucket-2.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/RAG/folder-path.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/RAG/job-info.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/RAG/output.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/RAG/process-page.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/RAG/researcher-1.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/RAG/researcher-2.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/RAG/run-process-1.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/RAG/run-process-2.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/RAG/storage-bucket-content.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/multi-agent-distributed/coder-agent-package-overview.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/multi-agent-distributed/coder-agent-process-configuration.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/multi-agent-distributed/planner-agent-package-overview.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/multi-agent-distributed/planner-agent-process-configuration.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/multi-agent-distributed/researcher-agent-package-overview.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/multi-agent-distributed/researcher-agent-process-configuration.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/ticket-classification/activate-apps.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/ticket-classification/activate-deployment.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/ticket-classification/copy-folder-path.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/ticket-classification/deploy-solution-package-wizard.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/ticket-classification/deploy-solution-package.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/ticket-classification/monitor-agent.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/ticket-classification/navigate-to-solution-folder.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/ticket-classification/resume-condition.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/ticket-classification/run-agent.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/ticket-classification/solution-destination-folder.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/ticket-classification/start-job.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/ticket-classification/upload-solution-package.png +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/RAG-quiz-generator/README.md +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/RAG-quiz-generator/env.example +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/RAG-quiz-generator/input.example/quiz-generator-debug-input.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/RAG-quiz-generator/input.example/researcher-debug-input.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/RAG-quiz-generator/langgraph.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/RAG-quiz-generator/pyproject.toml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/RAG-quiz-generator/quiz-generator-RAG-agent.mermaid +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/RAG-quiz-generator/researcher-RAG-agent.mermaid +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/RAG-quiz-generator/src/agents/quiz-generator-RAG-agent.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/RAG-quiz-generator/src/agents/researcher-RAG-agent.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/RAG-quiz-generator/uipath.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/RAG-quiz-generator/uv.lock +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/README.md +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/calculator-agent/graph.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/calculator-agent/langgraph.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/calculator-agent/pyproject.toml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/calculator-agent/uipath.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/calculator-agent/uv.lock +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/chat-agent/.env.example +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/chat-agent/agent.mermaid +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/chat-agent/graph.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/chat-agent/langgraph.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/chat-agent/pyproject.toml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/chat-agent/uipath.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/chat-agent/uv.lock +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/company-research-agent/.env.example +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/company-research-agent/agent.mermaid +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/company-research-agent/graph.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/company-research-agent/langgraph.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/company-research-agent/pyproject.toml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/company-research-agent/uipath.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/company-research-agent/uv.lock +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/email-organizer-agent/.env.template +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/email-organizer-agent/.python-version +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/email-organizer-agent/.vscode/launch.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/email-organizer-agent/README.md +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/email-organizer-agent/agent.mermaid +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/email-organizer-agent/input.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/email-organizer-agent/langgraph.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/email-organizer-agent/pyproject.toml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/email-organizer-agent/src/email_organizer/__init__.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/email-organizer-agent/src/email_organizer/main.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/email-organizer-agent/src/email_organizer/outlook_client.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/email-organizer-agent/uipath.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/email-organizer-agent/uv.lock +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/hitl-inbox-server/database.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/hitl-inbox-server/main.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/hitl-inbox-server/models.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/hitl-inbox-server/pyproject.toml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/hitl-inbox-server/schemas.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/hitl-inbox-server/templates/index.html +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/hitl-inbox-server/uv.lock +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/multi-agent-planner-researcher-coder-distributed/.env.example +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/multi-agent-planner-researcher-coder-distributed/README.md +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/multi-agent-planner-researcher-coder-distributed/coder.mermaid +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/multi-agent-planner-researcher-coder-distributed/langgraph.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/multi-agent-planner-researcher-coder-distributed/planner.mermaid +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/multi-agent-planner-researcher-coder-distributed/pyproject.toml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/multi-agent-planner-researcher-coder-distributed/researcher.mermaid +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/multi-agent-planner-researcher-coder-distributed/src/multi-agent-distributed/coder.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/multi-agent-planner-researcher-coder-distributed/src/multi-agent-distributed/planner.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/multi-agent-planner-researcher-coder-distributed/src/multi-agent-distributed/researcher.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/multi-agent-planner-researcher-coder-distributed/uipath.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/multi-agent-planner-researcher-coder-distributed/uv.lock +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/multi-agent-supervisor-researcher-coder/.env.example +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/multi-agent-supervisor-researcher-coder/README.md +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/multi-agent-supervisor-researcher-coder/agent.mermaid +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/multi-agent-supervisor-researcher-coder/graph.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/multi-agent-supervisor-researcher-coder/langgraph.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/multi-agent-supervisor-researcher-coder/pyproject.toml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/multi-agent-supervisor-researcher-coder/uipath.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/multi-agent-supervisor-researcher-coder/uv.lock +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/oauth-external-apps-agent/.env.example +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/oauth-external-apps-agent/README.md +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/oauth-external-apps-agent/input.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/oauth-external-apps-agent/langgraph.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/oauth-external-apps-agent/main.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/oauth-external-apps-agent/pyproject.toml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/oauth-external-apps-agent/uv.lock +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/retrieval-chain/.env.example +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/retrieval-chain/README.md +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/retrieval-chain/main.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/retrieval-chain/pyproject.toml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/retrieval-chain/uipath.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/retrieval-chain/uv.lock +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/simple-local-mcp/.env.example +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/simple-local-mcp/README.md +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/simple-local-mcp/agent.mermaid +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/simple-local-mcp/langgraph.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/simple-local-mcp/pyproject.toml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/simple-local-mcp/src/simple-local-mcp/graph.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/simple-local-mcp/src/simple-local-mcp/math_server.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/simple-local-mcp/src/simple-local-mcp/weather_server.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/simple-local-mcp/uipath.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/simple-local-mcp/uv.lock +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/simple-remote-mcp/.env.example +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/simple-remote-mcp/README.md +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/simple-remote-mcp/agent.mermaid +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/simple-remote-mcp/langgraph.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/simple-remote-mcp/main.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/simple-remote-mcp/pyproject.toml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/simple-remote-mcp/uipath.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/simple-remote-mcp/uv.lock +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/ticket-classification/.env.example +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/ticket-classification/README.md +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/ticket-classification/agent.mermaid +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/ticket-classification/escalation_app_solution/generic-escalation-app-solution-1.0.0.zip +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/ticket-classification/langgraph.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/ticket-classification/main.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/ticket-classification/pyproject.toml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/ticket-classification/uipath.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/ticket-classification/uv.lock +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/__init__.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/_cli/__init__.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/_cli/_runtime/_context.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/_cli/_runtime/_conversation.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/_cli/_runtime/_exception.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/_cli/_runtime/_graph_resolver.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/_cli/_runtime/_input.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/_cli/_runtime/_output.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/_cli/_runtime/_runtime.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/_cli/_templates/langgraph.json.template +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/_cli/_templates/main.py.template +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/_cli/_utils/_graph.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/_cli/_utils/_schema.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/_cli/cli_debug.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/_cli/cli_dev.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/_cli/cli_eval.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/_cli/cli_init.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/_cli/cli_new.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/_cli/cli_run.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/_resources/AGENTS.md +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/_resources/REQUIRED_STRUCTURE.md +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/_tracing/__init__.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/_tracing/_instrument_traceable.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/_tracing/_utils.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/_utils/__init__.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/_utils/_request_mixin.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/_utils/_settings.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/_utils/_sleep_policy.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/agent/react/constants.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/agent/react/exceptions.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/agent/react/tools/__init__.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/agent/react/tools/tools.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/agent/react/utils.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/agent/tools/__init__.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/agent/tools/context_tool.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/agent/tools/process_tool.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/agent/tools/tool_factory.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/agent/tools/tool_node.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/agent/tools/utils.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/chat/__init__.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/chat/models.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/embeddings/__init__.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/embeddings/embeddings.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/middlewares.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/py.typed +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/retrievers/__init__.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/retrievers/context_grounding_retriever.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/runtime_factories.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/tools/__init__.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/tools/preconfigured.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/vectorstores/__init__.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/common/trace_assert.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/common/validate_output.sh +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/company-research-agent/expected_raw.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/company-research-agent/expected_traces.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/company-research-agent/input.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/company-research-agent/langgraph.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/company-research-agent/pyproject.toml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/company-research-agent/run.sh +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/company-research-agent/src/assert.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/company-research-agent/src/graph.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/company-research-agent/uv.lock +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/init-flow/expected_traces.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/init-flow/input.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/init-flow/pyproject.toml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/init-flow/run.sh +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/init-flow/src/assert.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/simple-local-mcp/expected_traces.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/simple-local-mcp/input.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/simple-local-mcp/langgraph.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/simple-local-mcp/pyproject.toml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/simple-local-mcp/run.sh +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/simple-local-mcp/src/assert.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/simple-local-mcp/src/simple-local-mcp/graph.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/simple-local-mcp/src/simple-local-mcp/math_server.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/simple-local-mcp/src/simple-local-mcp/weather_server.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/simple-local-mcp/uv.lock +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/ticket-classification/expected_traces.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/ticket-classification/input.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/ticket-classification/langgraph.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/ticket-classification/pyproject.toml +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/ticket-classification/raw_traces.jsonl +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/ticket-classification/run.sh +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/ticket-classification/src/assert.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/ticket-classification/src/main.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/testcases/ticket-classification/uv.lock +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/tests/__init__.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/tests/agent/react/__init__.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/tests/agent/react/test_utils.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/tests/cli/conftest.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/tests/cli/mocks/langgraph.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/tests/cli/mocks/simple_agent.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/tests/cli/mocks/uipath.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/tests/cli/test_init.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/tests/cli/test_run.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/tests/cli/test_schema.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/tests/hitl/__init__.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/tests/hitl/conftest.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/tests/hitl/mocks/action_trigger_hitl.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/tests/hitl/mocks/api_trigger_hitl.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/tests/hitl/mocks/job_trigger_hitl.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/tests/hitl/mocks/langgraph.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/tests/hitl/mocks/uipath-default-escalation.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/tests/hitl/mocks/uipath.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/tests/hitl/test_action_trigger.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/tests/hitl/test_hitl_api_trigger.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/tests/hitl/test_hitl_default_escalation.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/tests/hitl/test_hitl_job_trigger.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/tests/test_dummy.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/tests/tools/__init__.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/tests/tools/conftest.py +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/tests/tools/mocks/agent_definition.json +0 -0
- {uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/tests/tools/test_preconfigured.py +0 -0
{uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/agent/react/__init__.py
RENAMED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"""UiPath ReAct Agent implementation"""
|
|
2
2
|
|
|
3
3
|
from .agent import create_agent
|
|
4
|
-
from .
|
|
4
|
+
from .types import AgentGraphConfig, AgentGraphNode, AgentGraphState
|
|
5
5
|
from .utils import resolve_output_model
|
|
6
6
|
|
|
7
7
|
__all__ = [
|
|
8
8
|
"create_agent",
|
|
9
|
-
"AgentGraphState",
|
|
10
|
-
"AgentGraphNode",
|
|
11
9
|
"resolve_output_model",
|
|
10
|
+
"AgentGraphNode",
|
|
11
|
+
"AgentGraphState",
|
|
12
|
+
"AgentGraphConfig",
|
|
12
13
|
]
|
{uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/agent/react/agent.py
RENAMED
|
@@ -18,11 +18,11 @@ from .llm_node import (
|
|
|
18
18
|
from .router import (
|
|
19
19
|
route_agent,
|
|
20
20
|
)
|
|
21
|
-
from .state import AgentGraphNode, AgentGraphState
|
|
22
21
|
from .terminate_node import (
|
|
23
22
|
create_terminate_node,
|
|
24
23
|
)
|
|
25
24
|
from .tools import create_flow_control_tools
|
|
25
|
+
from .types import AgentGraphConfig, AgentGraphNode, AgentGraphState
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
def create_agent(
|
|
@@ -32,13 +32,16 @@ def create_agent(
|
|
|
32
32
|
*,
|
|
33
33
|
state_schema: Type[AgentGraphState] = AgentGraphState,
|
|
34
34
|
response_format: type[BaseModel] | None = None,
|
|
35
|
-
|
|
35
|
+
config: AgentGraphConfig | None = None,
|
|
36
36
|
) -> StateGraph[AgentGraphState]:
|
|
37
37
|
"""Build agent graph with INIT -> AGENT <-> TOOLS loop, terminated by control flow tools.
|
|
38
38
|
|
|
39
39
|
Control flow tools (end_execution, raise_error) are auto-injected alongside regular tools.
|
|
40
40
|
"""
|
|
41
|
-
|
|
41
|
+
if config is None:
|
|
42
|
+
config = AgentGraphConfig()
|
|
43
|
+
|
|
44
|
+
os.environ["LANGCHAIN_RECURSION_LIMIT"] = str(config.recursion_limit)
|
|
42
45
|
|
|
43
46
|
agent_tools = list(tools)
|
|
44
47
|
flow_control_tools: list[BaseTool] = create_flow_control_tools(response_format)
|
{uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/agent/react/llm_node.py
RENAMED
|
@@ -7,7 +7,7 @@ from langchain_core.messages import AIMessage, AnyMessage
|
|
|
7
7
|
from langchain_core.tools import BaseTool
|
|
8
8
|
|
|
9
9
|
from .constants import MAX_SUCCESSIVE_COMPLETIONS
|
|
10
|
-
from .
|
|
10
|
+
from .types import AgentGraphState
|
|
11
11
|
from .utils import count_successive_completions
|
|
12
12
|
|
|
13
13
|
|
{uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/src/uipath_langchain/agent/react/router.py
RENAMED
|
@@ -7,7 +7,7 @@ from uipath.agent.react import END_EXECUTION_TOOL, RAISE_ERROR_TOOL
|
|
|
7
7
|
|
|
8
8
|
from .constants import MAX_SUCCESSIVE_COMPLETIONS
|
|
9
9
|
from .exceptions import AgentNodeRoutingException
|
|
10
|
-
from .
|
|
10
|
+
from .types import AgentGraphNode, AgentGraphState
|
|
11
11
|
from .utils import count_successive_completions
|
|
12
12
|
|
|
13
13
|
FLOW_CONTROL_TOOLS = [END_EXECUTION_TOOL.name, RAISE_ERROR_TOOL.name]
|
|
@@ -3,6 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
from enum import StrEnum
|
|
4
4
|
|
|
5
5
|
from langgraph.graph import MessagesState
|
|
6
|
+
from pydantic import BaseModel, Field
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
class AgentGraphState(MessagesState):
|
|
@@ -16,3 +17,9 @@ class AgentGraphNode(StrEnum):
|
|
|
16
17
|
AGENT = "agent"
|
|
17
18
|
TOOLS = "tools"
|
|
18
19
|
TERMINATE = "terminate"
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class AgentGraphConfig(BaseModel):
|
|
23
|
+
recursion_limit: int = Field(
|
|
24
|
+
default=50, ge=1, description="Maximum recursion limit for the agent graph"
|
|
25
|
+
)
|
|
@@ -2,23 +2,17 @@
|
|
|
2
2
|
Vector store implementation that connects to UiPath Context Grounding as a backend.
|
|
3
3
|
|
|
4
4
|
This is a read-only vector store that uses the UiPath Context Grounding API to retrieve documents.
|
|
5
|
-
|
|
6
|
-
You need to set the following environment variables (also see .env.example):
|
|
7
|
-
### - UIPATH_URL="https://alpha.uipath.com/{ORG_ID}/{TENANT_ID}"
|
|
8
|
-
### - UIPATH_ACCESS_TOKEN={BEARER_TOKEN_WITH_CONTEXT_GROUNDING_PERMISSIONS}
|
|
9
|
-
### - UIPATH_FOLDER_PATH="" - this can be left empty
|
|
10
|
-
### - UIPATH_FOLDER_KEY="" - this can be left empty
|
|
11
5
|
"""
|
|
12
6
|
|
|
13
7
|
from collections.abc import Iterable
|
|
14
|
-
from typing import Any,
|
|
8
|
+
from typing import Any, Self
|
|
15
9
|
|
|
16
10
|
from langchain_core.documents import Document
|
|
17
11
|
from langchain_core.embeddings import Embeddings
|
|
18
12
|
from langchain_core.vectorstores import VectorStore
|
|
13
|
+
from typing_extensions import override
|
|
19
14
|
from uipath import UiPath
|
|
20
|
-
|
|
21
|
-
VST = TypeVar("VST", bound="ContextGroundingVectorStore")
|
|
15
|
+
from uipath.models.context_grounding import ContextGroundingQueryResponse
|
|
22
16
|
|
|
23
17
|
|
|
24
18
|
class ContextGroundingVectorStore(VectorStore):
|
|
@@ -26,42 +20,32 @@ class ContextGroundingVectorStore(VectorStore):
|
|
|
26
20
|
|
|
27
21
|
This class provides a straightforward implementation that connects to the
|
|
28
22
|
UiPath Context Grounding API for semantic searching.
|
|
29
|
-
|
|
30
|
-
Example:
|
|
31
|
-
.. code-block:: python
|
|
32
|
-
|
|
33
|
-
from uipath_agents_gym.tools.ecs_vectorstore import ContextGroundingVectorStore
|
|
34
|
-
|
|
35
|
-
# Initialize the vector store with an index name
|
|
36
|
-
vectorstore = ContextGroundingVectorStore(index_name="ECCN")
|
|
37
|
-
|
|
38
|
-
# Perform similarity search
|
|
39
|
-
docs_with_scores = vectorstore.similarity_search_with_score(
|
|
40
|
-
"How do I process an invoice?", k=5
|
|
41
|
-
)
|
|
42
23
|
"""
|
|
43
24
|
|
|
44
25
|
def __init__(
|
|
45
26
|
self,
|
|
46
27
|
index_name: str,
|
|
47
|
-
|
|
48
|
-
|
|
28
|
+
uipath_sdk: UiPath | None = None,
|
|
29
|
+
folder_path: str | None = None,
|
|
49
30
|
):
|
|
50
31
|
"""Initialize the ContextGroundingVectorStore.
|
|
51
32
|
|
|
52
33
|
Args:
|
|
53
|
-
index_name: Name of the context grounding index to use
|
|
54
|
-
uipath_sdk: Optional SDK instance
|
|
34
|
+
index_name: Name of the context grounding index to use (schema name)
|
|
35
|
+
uipath_sdk: Optional UiPath SDK instance.
|
|
36
|
+
folder_path: Optional folder path for folder-scoped operations
|
|
55
37
|
"""
|
|
56
38
|
self.index_name = index_name
|
|
57
39
|
self.folder_path = folder_path
|
|
58
40
|
self.sdk = uipath_sdk or UiPath()
|
|
59
41
|
|
|
42
|
+
# VectorStore implementation methods
|
|
43
|
+
|
|
44
|
+
@override
|
|
60
45
|
def similarity_search_with_score(
|
|
61
46
|
self, query: str, k: int = 4, **kwargs: Any
|
|
62
47
|
) -> list[tuple[Document, float]]:
|
|
63
48
|
"""Return documents most similar to the query along with the distances.
|
|
64
|
-
The distance is 1 - score, where score is the relevance score returned by the Context Grounding API.
|
|
65
49
|
|
|
66
50
|
Args:
|
|
67
51
|
query: The query string
|
|
@@ -70,52 +54,24 @@ class ContextGroundingVectorStore(VectorStore):
|
|
|
70
54
|
Returns:
|
|
71
55
|
list of tuples of (document, score)
|
|
72
56
|
"""
|
|
73
|
-
#
|
|
74
|
-
results =
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
# Convert the results to Documents with scores
|
|
82
|
-
docs_with_scores = []
|
|
83
|
-
for result in results:
|
|
84
|
-
# Create metadata from result fields
|
|
85
|
-
metadata = {
|
|
86
|
-
"source": result.source,
|
|
87
|
-
"id": result.id,
|
|
88
|
-
"reference": result.reference,
|
|
89
|
-
"page_number": result.page_number,
|
|
90
|
-
"source_document_id": result.source_document_id,
|
|
91
|
-
"caption": result.caption,
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
# Add any operation metadata if available
|
|
95
|
-
if result.metadata:
|
|
96
|
-
metadata["operation_id"] = result.metadata.operation_id
|
|
97
|
-
metadata["strategy"] = result.metadata.strategy
|
|
98
|
-
|
|
99
|
-
# Create a Document with the content and metadata
|
|
100
|
-
doc = Document(
|
|
101
|
-
page_content=result.content,
|
|
102
|
-
metadata=metadata,
|
|
57
|
+
# Use the context grounding service to perform search
|
|
58
|
+
results: list[ContextGroundingQueryResponse] = (
|
|
59
|
+
self.sdk.context_grounding.search(
|
|
60
|
+
name=self.index_name,
|
|
61
|
+
query=query,
|
|
62
|
+
number_of_results=k,
|
|
63
|
+
folder_path=self.folder_path,
|
|
103
64
|
)
|
|
65
|
+
)
|
|
104
66
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
docs_with_scores.append((doc, score))
|
|
108
|
-
|
|
109
|
-
return docs_with_scores
|
|
67
|
+
return self._convert_results_to_documents(results)
|
|
110
68
|
|
|
69
|
+
@override
|
|
111
70
|
def similarity_search_with_relevance_scores(
|
|
112
71
|
self, query: str, k: int = 4, **kwargs: Any
|
|
113
72
|
) -> list[tuple[Document, float]]:
|
|
114
73
|
"""Return documents along with their relevance scores on a scale from 0 to 1.
|
|
115
74
|
|
|
116
|
-
This directly uses the scores provided by the Context Grounding API,
|
|
117
|
-
which are already normalized between 0 and 1.
|
|
118
|
-
|
|
119
75
|
Args:
|
|
120
76
|
query: The query string
|
|
121
77
|
k: Number of documents to return (default=4)
|
|
@@ -128,6 +84,7 @@ class ContextGroundingVectorStore(VectorStore):
|
|
|
128
84
|
for doc, score in self.similarity_search_with_score(query, k, **kwargs)
|
|
129
85
|
]
|
|
130
86
|
|
|
87
|
+
@override
|
|
131
88
|
async def asimilarity_search_with_score(
|
|
132
89
|
self, query: str, k: int = 4, **kwargs: Any
|
|
133
90
|
) -> list[tuple[Document, float]]:
|
|
@@ -140,52 +97,23 @@ class ContextGroundingVectorStore(VectorStore):
|
|
|
140
97
|
Returns:
|
|
141
98
|
list of tuples of (document, score)
|
|
142
99
|
"""
|
|
143
|
-
#
|
|
144
|
-
results
|
|
100
|
+
# Use the context grounding service to perform async search
|
|
101
|
+
results: list[
|
|
102
|
+
ContextGroundingQueryResponse
|
|
103
|
+
] = await self.sdk.context_grounding.search_async(
|
|
145
104
|
name=self.index_name,
|
|
146
105
|
query=query,
|
|
147
106
|
number_of_results=k,
|
|
148
107
|
folder_path=self.folder_path,
|
|
149
108
|
)
|
|
150
109
|
|
|
151
|
-
|
|
152
|
-
docs_with_scores = []
|
|
153
|
-
for result in results:
|
|
154
|
-
# Create metadata from result fields
|
|
155
|
-
metadata = {
|
|
156
|
-
"source": result.source,
|
|
157
|
-
"id": result.id,
|
|
158
|
-
"reference": result.reference,
|
|
159
|
-
"page_number": result.page_number,
|
|
160
|
-
"source_document_id": result.source_document_id,
|
|
161
|
-
"caption": result.caption,
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
# Add any operation metadata if available
|
|
165
|
-
if result.metadata:
|
|
166
|
-
metadata["operation_id"] = result.metadata.operation_id
|
|
167
|
-
metadata["strategy"] = result.metadata.strategy
|
|
168
|
-
|
|
169
|
-
# Create a Document with the content and metadata
|
|
170
|
-
doc = Document(
|
|
171
|
-
page_content=result.content,
|
|
172
|
-
metadata=metadata,
|
|
173
|
-
)
|
|
174
|
-
|
|
175
|
-
# Get the distance score as 1 - ecs_score
|
|
176
|
-
score = 1.0 - float(result.score)
|
|
177
|
-
|
|
178
|
-
docs_with_scores.append((doc, score))
|
|
179
|
-
|
|
180
|
-
return docs_with_scores
|
|
110
|
+
return self._convert_results_to_documents(results)
|
|
181
111
|
|
|
112
|
+
@override
|
|
182
113
|
async def asimilarity_search_with_relevance_scores(
|
|
183
114
|
self, query: str, k: int = 4, **kwargs: Any
|
|
184
115
|
) -> list[tuple[Document, float]]:
|
|
185
|
-
"""Asynchronously return documents along with their relevance scores
|
|
186
|
-
|
|
187
|
-
This directly uses the scores provided by the Context Grounding API,
|
|
188
|
-
which are already normalized between 0 and 1.
|
|
116
|
+
"""Asynchronously return documents along with their relevance scores.
|
|
189
117
|
|
|
190
118
|
Args:
|
|
191
119
|
query: The query string
|
|
@@ -201,6 +129,7 @@ class ContextGroundingVectorStore(VectorStore):
|
|
|
201
129
|
)
|
|
202
130
|
]
|
|
203
131
|
|
|
132
|
+
@override
|
|
204
133
|
def similarity_search(
|
|
205
134
|
self, query: str, k: int = 4, **kwargs: Any
|
|
206
135
|
) -> list[Document]:
|
|
@@ -216,6 +145,7 @@ class ContextGroundingVectorStore(VectorStore):
|
|
|
216
145
|
docs_and_scores = self.similarity_search_with_score(query, k, **kwargs)
|
|
217
146
|
return [doc for doc, _ in docs_and_scores]
|
|
218
147
|
|
|
148
|
+
@override
|
|
219
149
|
async def asimilarity_search(
|
|
220
150
|
self, query: str, k: int = 4, **kwargs: Any
|
|
221
151
|
) -> list[Document]:
|
|
@@ -231,14 +161,64 @@ class ContextGroundingVectorStore(VectorStore):
|
|
|
231
161
|
docs_and_scores = await self.asimilarity_search_with_score(query, k, **kwargs)
|
|
232
162
|
return [doc for doc, _ in docs_and_scores]
|
|
233
163
|
|
|
164
|
+
def _convert_results_to_documents(
|
|
165
|
+
self, results: list[ContextGroundingQueryResponse]
|
|
166
|
+
) -> list[tuple[Document, float]]:
|
|
167
|
+
"""Convert API results to Document objects with scores.
|
|
168
|
+
|
|
169
|
+
Args:
|
|
170
|
+
results: List of ContextGroundingQueryResponse objects
|
|
171
|
+
|
|
172
|
+
Returns:
|
|
173
|
+
List of tuples containing (Document, score)
|
|
174
|
+
"""
|
|
175
|
+
docs_with_scores = []
|
|
176
|
+
|
|
177
|
+
for result in results:
|
|
178
|
+
# Create metadata from result fields
|
|
179
|
+
metadata = {}
|
|
180
|
+
|
|
181
|
+
# Add string fields with proper defaults
|
|
182
|
+
if result.source:
|
|
183
|
+
metadata["source"] = str(result.source)
|
|
184
|
+
if result.reference:
|
|
185
|
+
metadata["reference"] = str(result.reference)
|
|
186
|
+
if result.page_number:
|
|
187
|
+
metadata["page_number"] = str(result.page_number)
|
|
188
|
+
if result.source_document_id:
|
|
189
|
+
metadata["source_document_id"] = str(result.source_document_id)
|
|
190
|
+
if result.caption:
|
|
191
|
+
metadata["caption"] = str(result.caption)
|
|
192
|
+
|
|
193
|
+
# Add any operation metadata if available
|
|
194
|
+
if result.metadata:
|
|
195
|
+
if result.metadata.operation_id:
|
|
196
|
+
metadata["operation_id"] = str(result.metadata.operation_id)
|
|
197
|
+
if result.metadata.strategy:
|
|
198
|
+
metadata["strategy"] = str(result.metadata.strategy)
|
|
199
|
+
|
|
200
|
+
# Create a Document with the content and metadata
|
|
201
|
+
doc = Document(
|
|
202
|
+
page_content=result.content or "",
|
|
203
|
+
metadata=metadata,
|
|
204
|
+
)
|
|
205
|
+
|
|
206
|
+
# Convert score to distance (1 - score)
|
|
207
|
+
score = 1.0 - float(result.score or 0.0)
|
|
208
|
+
|
|
209
|
+
docs_with_scores.append((doc, score))
|
|
210
|
+
|
|
211
|
+
return docs_with_scores
|
|
212
|
+
|
|
234
213
|
@classmethod
|
|
214
|
+
@override
|
|
235
215
|
def from_texts(
|
|
236
|
-
cls
|
|
216
|
+
cls,
|
|
237
217
|
texts: list[str],
|
|
238
218
|
embedding: Embeddings,
|
|
239
|
-
metadatas:
|
|
219
|
+
metadatas: list[dict[str, Any]] | None = None,
|
|
240
220
|
**kwargs: Any,
|
|
241
|
-
) ->
|
|
221
|
+
) -> Self:
|
|
242
222
|
"""This method is required by the VectorStore abstract class, but is not supported
|
|
243
223
|
by ContextGroundingVectorStore which is read-only.
|
|
244
224
|
|
|
@@ -246,15 +226,14 @@ class ContextGroundingVectorStore(VectorStore):
|
|
|
246
226
|
NotImplementedError: This method is not supported by ContextGroundingVectorStore
|
|
247
227
|
"""
|
|
248
228
|
raise NotImplementedError(
|
|
249
|
-
"ContextGroundingVectorStore is a read-only wrapper for UiPath Context Grounding.
|
|
250
|
-
"Creating a vector store from texts is not supported."
|
|
229
|
+
"ContextGroundingVectorStore is a read-only wrapper for UiPath Context Grounding."
|
|
251
230
|
)
|
|
252
231
|
|
|
253
|
-
|
|
232
|
+
@override
|
|
254
233
|
def add_texts(
|
|
255
234
|
self,
|
|
256
235
|
texts: Iterable[str],
|
|
257
|
-
metadatas:
|
|
236
|
+
metadatas: list[dict[str, Any]] | None = None,
|
|
258
237
|
**kwargs: Any,
|
|
259
238
|
) -> list[str]:
|
|
260
239
|
"""Not implemented for ContextGroundingVectorStore as this is a read-only wrapper."""
|
|
@@ -262,7 +241,8 @@ class ContextGroundingVectorStore(VectorStore):
|
|
|
262
241
|
"ContextGroundingVectorStore is a read-only wrapper for UiPath Context Grounding."
|
|
263
242
|
)
|
|
264
243
|
|
|
265
|
-
|
|
244
|
+
@override
|
|
245
|
+
def delete(self, ids: list[str] | None = None, **kwargs: Any) -> bool | None:
|
|
266
246
|
"""Not implemented for ContextGroundingVectorStore as this is a read-only wrapper."""
|
|
267
247
|
raise NotImplementedError(
|
|
268
248
|
"ContextGroundingVectorStore is a read-only wrapper for UiPath Context Grounding."
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/.github/workflows/integration_tests.yml
RENAMED
|
File without changes
|
{uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/.github/workflows/lint-custom-version.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/.github/workflows/test-custom-version.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/quick_start_images/cloud_env_var_dark.png
RENAMED
|
File without changes
|
|
File without changes
|
{uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/quick_start_images/invoke_output_dark.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/RAG/create-index-1.png
RENAMED
|
File without changes
|
{uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/RAG/create-index-2.png
RENAMED
|
File without changes
|
{uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/RAG/create-process.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/RAG/folder-path.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/RAG/process-page.png
RENAMED
|
File without changes
|
{uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/RAG/researcher-1.png
RENAMED
|
File without changes
|
{uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/RAG/researcher-2.png
RENAMED
|
File without changes
|
{uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/RAG/run-process-1.png
RENAMED
|
File without changes
|
{uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/docs/sample_images/RAG/run-process-2.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/RAG-quiz-generator/env.example
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/RAG-quiz-generator/langgraph.json
RENAMED
|
File without changes
|
{uipath_langchain-0.0.146 → uipath_langchain-0.0.147}/samples/RAG-quiz-generator/pyproject.toml
RENAMED
|
File without changes
|