diff --git a/ci/markdown-link-check-config.json b/ci/markdown-link-check-config.json index b7b60a5cf3..cf6dc50655 100644 --- a/ci/markdown-link-check-config.json +++ b/ci/markdown-link-check-config.json @@ -23,6 +23,9 @@ }, { "pattern": "^https://docs\\.cursor\\.com" + }, + { + "pattern": "^https://docs\\.docker\\.com" } ] } diff --git a/docs/source/build-workflows/llms/index.md b/docs/source/build-workflows/llms/index.md index 18f662b661..a3c63dd6ca 100644 --- a/docs/source/build-workflows/llms/index.md +++ b/docs/source/build-workflows/llms/index.md @@ -28,6 +28,7 @@ NVIDIA NeMo Agent Toolkit supports the following LLM providers: | [OpenAI](https://openai.com) | `openai` | OpenAI API | | [AWS Bedrock](https://aws.amazon.com/bedrock/) | `aws_bedrock` | AWS Bedrock API | | [Azure OpenAI](https://learn.microsoft.com/en-us/azure/ai-foundry/openai/quickstart) | `azure_openai` | Azure OpenAI API | +| [OCI Generative AI](https://docs.oracle.com/en-us/iaas/Content/generative-ai/home.htm) | `oci` | OCI Generative AI | | [LiteLLM](https://github.com/BerriAI/litellm) | `litellm` | LiteLLM API | | [Hugging Face](https://huggingface.co) | `huggingface` | Hugging Face API | | [Hugging Face Inference](https://huggingface.co/docs/api-inference) | `huggingface_inference` | Hugging Face Inference API, Endpoints, and TGI | @@ -52,6 +53,15 @@ llms: azure_openai_llm: _type: azure_openai azure_deployment: gpt-4o-mini + oci_llm: + _type: oci + model_name: nvidia/Llama-3.1-Nemotron-Nano-8B-v1 + region: us-chicago-1 + compartment_id: ocid1.compartment.oc1..example + auth_type: API_KEY + auth_profile: DEFAULT + auth_file_location: ~/.oci/config + provider: meta litellm_llm: _type: litellm model_name: gpt-4o @@ -118,6 +128,39 @@ The AWS Bedrock LLM provider is defined by the {py:class}`~nat.llm.aws_bedrock_l * `credentials_profile_name` - The credentials profile name to use for the model * `max_retries` - The maximum number of retries for the request +### OCI Generative AI + +You can use the following fields to configure the OCI Generative AI LLM provider: + +* `region` - OCI region for the Generative AI service (defaults to `us-chicago-1`). The service endpoint is derived automatically. +* `endpoint` - Optional explicit endpoint URL. Overrides the region-derived endpoint when set. +* `compartment_id` - The OCI compartment OCID used for inference requests +* `auth_type` - OCI SDK auth mode such as `API_KEY`, `SECURITY_TOKEN`, `INSTANCE_PRINCIPAL`, or `RESOURCE_PRINCIPAL` +* `auth_profile` - OCI config profile name for file-backed auth +* `auth_file_location` - Path to the OCI config file +* `provider` - Optional provider override such as `meta`, `google`, `cohere`, or `openai` + +The OCI Generative AI LLM provider is defined by the {py:class}`~nat.llm.oci_llm.OCIModelConfig` class. + +* `model_name` - The name of the model to use +* `region` - OCI region (defaults to `us-chicago-1`). The endpoint is derived from `https://inference.generativeai.{region}.oci.oraclecloud.com`. +* `endpoint` - Optional explicit endpoint URL. Overrides the region-derived endpoint. +* `compartment_id` - OCI compartment OCID +* `auth_type` - OCI SDK auth type +* `auth_profile` - OCI profile name for file-backed auth +* `auth_file_location` - Path to the OCI config file +* `provider` - Optional OCI provider override such as `meta`, `google`, `cohere`, or `openai` +* `temperature` - The temperature to use for the model +* `top_p` - The top-p value to use for the model +* `max_tokens` - The maximum number of tokens to generate +* `seed` - The seed to use for the model +* `max_retries` - The maximum number of retries for the request +* `request_timeout` - HTTP request timeout in seconds + +:::{note} +This provider targets OCI Generative AI through the OCI SDK-backed `langchain-oci` path and does not enable the Responses API. +::: + ### Azure OpenAI You can use the following environment variables to configure the Azure OpenAI LLM provider: diff --git a/docs/source/components/integrations/index.md b/docs/source/components/integrations/index.md index eba858e2a2..0be017664c 100644 --- a/docs/source/components/integrations/index.md +++ b/docs/source/components/integrations/index.md @@ -23,4 +23,5 @@ limitations under the License. ./frameworks.md ./a2a.md AWS Bedrock <./integrating-aws-bedrock-models.md> -``` \ No newline at end of file +OCI Generative AI <./integrating-oci-generative-ai-models.md> +``` diff --git a/docs/source/components/integrations/integrating-oci-generative-ai-models.md b/docs/source/components/integrations/integrating-oci-generative-ai-models.md new file mode 100644 index 0000000000..76d7f7fbe6 --- /dev/null +++ b/docs/source/components/integrations/integrating-oci-generative-ai-models.md @@ -0,0 +1,99 @@ + + +# NVIDIA NeMo Agent Toolkit OCI Integration + +The NeMo Agent Toolkit supports integration with multiple [LLM](../../build-workflows/llms/index.md) providers, including OCI Generative AI. The `oci` provider uses OCI SDK authentication and is designed for OCI Generative AI model and endpoint access. For workflow parity with the AWS Bedrock path, the toolkit also includes a LangChain wrapper built on `langchain-oci`. + +To view the full list of supported LLM providers, run `nat info components -t llm_provider`. + +## Configuration + +### Prerequisites +Before integrating OCI, ensure you have: + +- access to OCI Generative AI in the target region +- a valid OCI auth method such as `API_KEY`, `SECURITY_TOKEN`, `INSTANCE_PRINCIPAL`, or `RESOURCE_PRINCIPAL` +- the target compartment OCID +- the target OCI region (defaults to `us-chicago-1`) or a custom endpoint URL + +Common deployment patterns include: + +- OCI Generative AI regional endpoints +- custom OCI Generative AI endpoints +- OCI-hosted inference for NVIDIA Nemotron used as a live integration target + +### Example Configuration +Add the OCI LLM configuration to your workflow config file: + +```yaml +llms: + oci_llm: + _type: oci + model_name: nvidia/Llama-3.1-Nemotron-Nano-8B-v1 + region: us-chicago-1 + compartment_id: ocid1.compartment.oc1..example + auth_type: API_KEY + auth_profile: DEFAULT + temperature: 0.0 + max_tokens: 1024 + top_p: 1.0 + request_timeout: 60 +``` + +### Configurable Options +* `model_name`: The name of the OCI-hosted model to use (required) +* `region`: OCI region for the Generative AI service (defaults to `us-chicago-1`). The service endpoint is derived automatically. +* `endpoint`: Optional explicit service endpoint URL. Overrides the region-derived endpoint when set. +* `compartment_id`: OCI compartment OCID +* `auth_type`: OCI SDK auth type +* `auth_profile`: OCI profile name for file-backed auth +* `auth_file_location`: Path to the OCI config file +* `provider`: Optional OCI provider override such as `meta`, `google`, `cohere`, or `openai` +* `temperature`: Controls randomness in the output (0.0 to 1.0) +* `max_tokens`: Maximum number of tokens to generate +* `top_p`: Top-p sampling parameter (0.0 to 1.0) +* `seed`: Optional random seed +* `max_retries`: Maximum number of retries for the request +* `request_timeout`: HTTP request timeout in seconds + +### Limitations +* This provider targets OCI Generative AI through the OCI SDK-backed `langchain-oci` path. +* The Responses API is not enabled for this provider in the current release. + +## Nemotron On OCI + +One strong OCI deployment pattern is NVIDIA Nemotron hosted on OCI and exposed through an OpenAI-compatible route. In that setup, the toolkit can validate live integration behavior against the OCI-hosted Nemotron endpoint while the official provider and LangChain wrapper cover the OCI Generative AI path. + +## Usage +Reference the OCI LLM in your configuration: + +```yaml +llms: + oci_llm: + _type: oci + model_name: nvidia/Llama-3.1-Nemotron-Nano-8B-v1 + region: us-chicago-1 + compartment_id: ocid1.compartment.oc1..example + auth_profile: DEFAULT +``` + +## Troubleshooting +* `401 Unauthorized`: verify the OCI profile, signer, and IAM permissions for Generative AI. +* `404 Not Found`: confirm the regional endpoint or custom endpoint URL is correct. +* `Connection errors`: verify OCI networking and that the regional endpoint is reachable. +* `Tool calling issues`: verify the served model supports tool calling and that the serving stack is configured for it. diff --git a/docs/source/get-started/installation.md b/docs/source/get-started/installation.md index 772fbb6d74..a1a6fcfe54 100644 --- a/docs/source/get-started/installation.md +++ b/docs/source/get-started/installation.md @@ -27,6 +27,7 @@ The following [LLM](../build-workflows/llms/index.md) API providers are supporte - OpenAI - AWS Bedrock - Azure OpenAI +- OCI Generative AI ## Packages diff --git a/examples/A2A/math_assistant_a2a/uv.lock b/examples/A2A/math_assistant_a2a/uv.lock index 4651816816..b0ccb85781 100644 --- a/examples/A2A/math_assistant_a2a/uv.lock +++ b/examples/A2A/math_assistant_a2a/uv.lock @@ -434,6 +434,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1346,6 +1355,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2148,6 +2177,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2168,6 +2198,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2245,6 +2276,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -2889,6 +2953,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pytest" version = "8.4.2" diff --git a/examples/A2A/math_assistant_a2a_protected/uv.lock b/examples/A2A/math_assistant_a2a_protected/uv.lock index e214128533..ec84c10767 100644 --- a/examples/A2A/math_assistant_a2a_protected/uv.lock +++ b/examples/A2A/math_assistant_a2a_protected/uv.lock @@ -434,6 +434,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1346,6 +1355,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2162,6 +2191,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2182,6 +2212,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2259,6 +2290,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -2903,6 +2967,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pytest" version = "8.4.2" diff --git a/examples/HITL/por_to_jiratickets/uv.lock b/examples/HITL/por_to_jiratickets/uv.lock index 5d3560dbce..537360ad9a 100644 --- a/examples/HITL/por_to_jiratickets/uv.lock +++ b/examples/HITL/por_to_jiratickets/uv.lock @@ -402,6 +402,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1284,6 +1293,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2008,6 +2037,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2028,6 +2058,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2086,6 +2117,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -2692,6 +2756,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pytest" version = "8.4.2" diff --git a/examples/HITL/simple_calculator_hitl/uv.lock b/examples/HITL/simple_calculator_hitl/uv.lock index 7ae524f133..d5cce46d09 100644 --- a/examples/HITL/simple_calculator_hitl/uv.lock +++ b/examples/HITL/simple_calculator_hitl/uv.lock @@ -402,6 +402,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1284,6 +1293,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2034,6 +2063,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2054,6 +2084,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2112,6 +2143,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -2718,6 +2782,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pytest" version = "8.4.2" diff --git a/examples/MCP/simple_calculator_fastmcp/uv.lock b/examples/MCP/simple_calculator_fastmcp/uv.lock index e786e87f29..4a088f17c2 100644 --- a/examples/MCP/simple_calculator_fastmcp/uv.lock +++ b/examples/MCP/simple_calculator_fastmcp/uv.lock @@ -462,6 +462,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1528,6 +1537,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2340,6 +2369,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2360,6 +2390,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2437,6 +2468,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -3099,6 +3163,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pyperclip" version = "1.11.0" diff --git a/examples/MCP/simple_calculator_fastmcp_protected/uv.lock b/examples/MCP/simple_calculator_fastmcp_protected/uv.lock index 0d41e3e15f..32b46b974d 100644 --- a/examples/MCP/simple_calculator_fastmcp_protected/uv.lock +++ b/examples/MCP/simple_calculator_fastmcp_protected/uv.lock @@ -462,6 +462,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1528,6 +1537,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2323,6 +2352,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2343,6 +2373,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2420,6 +2451,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -3082,6 +3146,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pyperclip" version = "1.11.0" diff --git a/examples/MCP/simple_calculator_mcp/uv.lock b/examples/MCP/simple_calculator_mcp/uv.lock index fd804af332..cf14612687 100644 --- a/examples/MCP/simple_calculator_mcp/uv.lock +++ b/examples/MCP/simple_calculator_mcp/uv.lock @@ -411,6 +411,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1293,6 +1302,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2076,6 +2105,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2096,6 +2126,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2173,6 +2204,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -2784,6 +2848,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pytest" version = "8.4.2" diff --git a/examples/MCP/simple_calculator_mcp_protected/uv.lock b/examples/MCP/simple_calculator_mcp_protected/uv.lock index 2749ba2931..e3555c6052 100644 --- a/examples/MCP/simple_calculator_mcp_protected/uv.lock +++ b/examples/MCP/simple_calculator_mcp_protected/uv.lock @@ -411,6 +411,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1293,6 +1302,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2059,6 +2088,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2079,6 +2109,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2156,6 +2187,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -2767,6 +2831,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pytest" version = "8.4.2" diff --git a/examples/RAG/simple_rag/uv.lock b/examples/RAG/simple_rag/uv.lock index f498682c3d..1913c595df 100644 --- a/examples/RAG/simple_rag/uv.lock +++ b/examples/RAG/simple_rag/uv.lock @@ -411,6 +411,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1329,6 +1338,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2137,6 +2166,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2157,6 +2187,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2231,6 +2262,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -2865,6 +2929,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pytest" version = "8.4.2" diff --git a/examples/advanced_agents/alert_triage_agent/uv.lock b/examples/advanced_agents/alert_triage_agent/uv.lock index 7570584b8a..5bc0e7e4cd 100644 --- a/examples/advanced_agents/alert_triage_agent/uv.lock +++ b/examples/advanced_agents/alert_triage_agent/uv.lock @@ -426,6 +426,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1588,6 +1597,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2428,6 +2457,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2448,6 +2478,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2546,6 +2577,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -3293,6 +3357,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pyparsing" version = "3.3.2" diff --git a/examples/agents/uv.lock b/examples/agents/uv.lock index e30ef2111c..9d61760ff4 100644 --- a/examples/agents/uv.lock +++ b/examples/agents/uv.lock @@ -516,6 +516,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1622,6 +1631,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.9" @@ -2823,6 +2852,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2843,6 +2873,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2971,6 +3002,39 @@ requires-dist = [ ] provides-extras = ["test"] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.30.0" @@ -3730,6 +3794,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pypdf" version = "6.7.1" diff --git a/examples/control_flow/hybrid_control_flow/uv.lock b/examples/control_flow/hybrid_control_flow/uv.lock index 8f7c9e4fc8..fa7149aae3 100644 --- a/examples/control_flow/hybrid_control_flow/uv.lock +++ b/examples/control_flow/hybrid_control_flow/uv.lock @@ -402,6 +402,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1284,6 +1293,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2034,6 +2063,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2054,6 +2084,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2112,6 +2143,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -2718,6 +2782,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pytest" version = "8.4.2" diff --git a/examples/control_flow/parallel_executor/uv.lock b/examples/control_flow/parallel_executor/uv.lock index ca5844a984..3038daada5 100644 --- a/examples/control_flow/parallel_executor/uv.lock +++ b/examples/control_flow/parallel_executor/uv.lock @@ -402,6 +402,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1284,6 +1293,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2008,6 +2037,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2028,6 +2058,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2086,6 +2117,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -2692,6 +2756,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pytest" version = "8.4.2" diff --git a/examples/control_flow/router_agent/uv.lock b/examples/control_flow/router_agent/uv.lock index bae6a4d83b..de1fd11462 100644 --- a/examples/control_flow/router_agent/uv.lock +++ b/examples/control_flow/router_agent/uv.lock @@ -402,6 +402,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1284,6 +1293,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2008,6 +2037,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2028,6 +2058,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2086,6 +2117,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -2692,6 +2756,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pytest" version = "8.4.2" diff --git a/examples/control_flow/sequential_executor/uv.lock b/examples/control_flow/sequential_executor/uv.lock index e63cf2ee7d..944be3b01f 100644 --- a/examples/control_flow/sequential_executor/uv.lock +++ b/examples/control_flow/sequential_executor/uv.lock @@ -402,6 +402,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1284,6 +1293,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2008,6 +2037,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2028,6 +2058,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2086,6 +2117,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -2692,6 +2756,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pytest" version = "8.4.2" diff --git a/examples/custom_functions/automated_description_generation/uv.lock b/examples/custom_functions/automated_description_generation/uv.lock index 6261545c18..38e29f271a 100644 --- a/examples/custom_functions/automated_description_generation/uv.lock +++ b/examples/custom_functions/automated_description_generation/uv.lock @@ -402,6 +402,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1284,6 +1293,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2073,6 +2102,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2093,6 +2123,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2151,6 +2182,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -2757,6 +2821,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pytest" version = "8.4.2" diff --git a/examples/custom_functions/plot_charts/uv.lock b/examples/custom_functions/plot_charts/uv.lock index ae5d55533c..84ee97f07b 100644 --- a/examples/custom_functions/plot_charts/uv.lock +++ b/examples/custom_functions/plot_charts/uv.lock @@ -402,6 +402,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1450,6 +1459,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2230,6 +2259,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2250,6 +2280,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2308,6 +2339,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -2976,6 +3040,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pyparsing" version = "3.3.2" diff --git a/examples/documentation_guides/uv.lock b/examples/documentation_guides/uv.lock index 8cb993bcde..af20b17695 100644 --- a/examples/documentation_guides/uv.lock +++ b/examples/documentation_guides/uv.lock @@ -548,6 +548,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/91/c2/898e59963084e1e2cbd4aad1dee92c5bd7a79d121dcff1e659c2a0c2174e/cint-1.0.0-py3-none-any.whl", hash = "sha256:8aa33028e04015711c0305f918cb278f1dc8c5c9997acdc45efad2c7cb1abf50", size = 5573, upload-time = "2019-03-19T01:07:46.496Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1905,6 +1914,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2958,6 +2987,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2978,6 +3008,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -3102,6 +3133,39 @@ requires-dist = [ ] provides-extras = ["test"] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" diff --git a/examples/documentation_guides/workflows/text_file_ingest/uv.lock b/examples/documentation_guides/workflows/text_file_ingest/uv.lock index 53bedf922b..4ec31f76d0 100644 --- a/examples/documentation_guides/workflows/text_file_ingest/uv.lock +++ b/examples/documentation_guides/workflows/text_file_ingest/uv.lock @@ -402,6 +402,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1284,6 +1293,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -1998,6 +2027,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2018,6 +2048,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2076,6 +2107,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -2682,6 +2746,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pytest" version = "8.4.2" diff --git a/examples/dynamo_integration/latency_sensitivity_demo/uv.lock b/examples/dynamo_integration/latency_sensitivity_demo/uv.lock index 5c467e818d..3bd6de5c35 100644 --- a/examples/dynamo_integration/latency_sensitivity_demo/uv.lock +++ b/examples/dynamo_integration/latency_sensitivity_demo/uv.lock @@ -402,6 +402,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1331,6 +1340,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0b/22/5f07957028f7fa8c3d695934af8e7309bfd5ab43f2a7a756d3c3d6ce44f3/langchain_nvidia_ai_endpoints-1.1.0-py3-none-any.whl", hash = "sha256:eb04251b2b21facf9d6f2e6e7fa593b89e4f5023ebe3af1e02813512d1cd9687", size = 51514, upload-time = "2026-02-25T21:48:15.695Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2084,6 +2113,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2104,6 +2134,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2162,6 +2193,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.24.0" @@ -2807,6 +2871,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pytest" version = "8.4.2" diff --git a/examples/dynamo_integration/react_benchmark_agent/uv.lock b/examples/dynamo_integration/react_benchmark_agent/uv.lock index 9754276ca1..084ea36fb1 100644 --- a/examples/dynamo_integration/react_benchmark_agent/uv.lock +++ b/examples/dynamo_integration/react_benchmark_agent/uv.lock @@ -402,6 +402,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1523,6 +1532,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2329,6 +2358,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2349,6 +2379,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2429,6 +2460,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -3155,6 +3219,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pyparsing" version = "3.3.2" diff --git a/examples/evaluation_and_profiling/email_phishing_analyzer/uv.lock b/examples/evaluation_and_profiling/email_phishing_analyzer/uv.lock index b2fe3f7d6e..84ca132ab4 100644 --- a/examples/evaluation_and_profiling/email_phishing_analyzer/uv.lock +++ b/examples/evaluation_and_profiling/email_phishing_analyzer/uv.lock @@ -430,6 +430,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1592,6 +1601,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2422,6 +2451,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2442,6 +2472,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2560,6 +2591,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -3333,6 +3397,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pyparsing" version = "3.3.2" diff --git a/examples/evaluation_and_profiling/simple_calculator_eval/uv.lock b/examples/evaluation_and_profiling/simple_calculator_eval/uv.lock index 92c389de80..3eb187af38 100644 --- a/examples/evaluation_and_profiling/simple_calculator_eval/uv.lock +++ b/examples/evaluation_and_profiling/simple_calculator_eval/uv.lock @@ -421,6 +421,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1554,6 +1563,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2377,6 +2406,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2397,6 +2427,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2497,6 +2528,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -3238,6 +3302,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pyparsing" version = "3.3.2" diff --git a/examples/evaluation_and_profiling/simple_web_query_eval/uv.lock b/examples/evaluation_and_profiling/simple_web_query_eval/uv.lock index 0a838ca8a7..ec740ee121 100644 --- a/examples/evaluation_and_profiling/simple_web_query_eval/uv.lock +++ b/examples/evaluation_and_profiling/simple_web_query_eval/uv.lock @@ -557,6 +557,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/91/c2/898e59963084e1e2cbd4aad1dee92c5bd7a79d121dcff1e659c2a0c2174e/cint-1.0.0-py3-none-any.whl", hash = "sha256:8aa33028e04015711c0305f918cb278f1dc8c5c9997acdc45efad2c7cb1abf50", size = 5573, upload-time = "2019-03-19T01:07:46.496Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -2185,6 +2194,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -3322,6 +3351,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -3342,6 +3372,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -3506,6 +3537,39 @@ requires-dist = [ ] provides-extras = ["test"] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" diff --git a/examples/finetuning/dpo_tic_tac_toe/uv.lock b/examples/finetuning/dpo_tic_tac_toe/uv.lock index 46e6fc9a66..5fccfac822 100644 --- a/examples/finetuning/dpo_tic_tac_toe/uv.lock +++ b/examples/finetuning/dpo_tic_tac_toe/uv.lock @@ -402,6 +402,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1332,6 +1341,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2089,6 +2118,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2109,6 +2139,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2167,6 +2198,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -2821,6 +2885,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pytest" version = "8.4.2" diff --git a/examples/finetuning/rl_with_openpipe_art/uv.lock b/examples/finetuning/rl_with_openpipe_art/uv.lock index 5f3d6537c6..ce60a4a684 100644 --- a/examples/finetuning/rl_with_openpipe_art/uv.lock +++ b/examples/finetuning/rl_with_openpipe_art/uv.lock @@ -444,6 +444,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/91/c2/898e59963084e1e2cbd4aad1dee92c5bd7a79d121dcff1e659c2a0c2174e/cint-1.0.0-py3-none-any.whl", hash = "sha256:8aa33028e04015711c0305f918cb278f1dc8c5c9997acdc45efad2c7cb1abf50", size = 5573, upload-time = "2019-03-19T01:07:46.496Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1602,6 +1611,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2416,6 +2445,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2436,6 +2466,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2514,6 +2545,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -3315,6 +3379,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pyparsing" version = "3.3.2" diff --git a/examples/frameworks/multi_frameworks/uv.lock b/examples/frameworks/multi_frameworks/uv.lock index 94633da4fc..f81617b21c 100644 --- a/examples/frameworks/multi_frameworks/uv.lock +++ b/examples/frameworks/multi_frameworks/uv.lock @@ -507,6 +507,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1547,6 +1556,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.9" @@ -2686,6 +2715,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2706,6 +2736,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2800,6 +2831,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.30.0" @@ -3511,6 +3575,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pypdf" version = "6.7.1" diff --git a/examples/frameworks/semantic_kernel_demo/uv.lock b/examples/frameworks/semantic_kernel_demo/uv.lock index 3a8edb7574..e175174407 100644 --- a/examples/frameworks/semantic_kernel_demo/uv.lock +++ b/examples/frameworks/semantic_kernel_demo/uv.lock @@ -561,6 +561,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1579,6 +1588,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2408,6 +2437,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2428,6 +2458,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2522,6 +2553,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" diff --git a/examples/frameworks/strands_demo/uv.lock b/examples/frameworks/strands_demo/uv.lock index 5ffd7e59e2..2935655393 100644 --- a/examples/frameworks/strands_demo/uv.lock +++ b/examples/frameworks/strands_demo/uv.lock @@ -414,6 +414,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1544,6 +1553,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.9" @@ -2401,6 +2430,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2421,6 +2451,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2519,9 +2550,42 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" -version = "1.109.1" +version = "2.31.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, @@ -2533,9 +2597,9 @@ dependencies = [ { name = "tqdm" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c6/a1/a303104dc55fc546a3f6914c842d3da471c64eec92043aef8f652eb6c524/openai-1.109.1.tar.gz", hash = "sha256:d173ed8dbca665892a6db099b4a2dfac624f94d20a93f46eb0b56aae940ed869", size = 564133, upload-time = "2025-09-24T13:00:53.075Z" } +sdist = { url = "https://files.pythonhosted.org/packages/94/fe/64b3d035780b3188f86c4f6f1bc202e7bb74757ef028802112273b9dcacf/openai-2.31.0.tar.gz", hash = "sha256:43ca59a88fc973ad1848d86b98d7fac207e265ebbd1828b5e4bdfc85f79427a5", size = 684772, upload-time = "2026-04-08T21:01:41.797Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1d/2a/7dd3d207ec669cacc1f186fd856a0f61dbc255d24f6fdc1a6715d6051b0f/openai-1.109.1-py3-none-any.whl", hash = "sha256:6bcaf57086cf59159b8e27447e4e7dd019db5d29a438072fbd49c290c7e65315", size = 948627, upload-time = "2025-09-24T13:00:50.754Z" }, + { url = "https://files.pythonhosted.org/packages/66/bc/a8f7c3aa03452fedbb9af8be83e959adba96a6b4a35e416faffcc959c568/openai-2.31.0-py3-none-any.whl", hash = "sha256:44e1344d87e56a493d649b17e2fac519d1368cbb0745f59f1957c4c26de50a0a", size = 1153479, upload-time = "2026-04-08T21:01:39.217Z" }, ] [[package]] @@ -3291,6 +3355,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pyparsing" version = "3.3.2" @@ -3896,7 +3973,7 @@ wheels = [ [[package]] name = "strands-agents" -version = "1.27.0" +version = "1.35.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "boto3" }, @@ -3908,12 +3985,13 @@ dependencies = [ { name = "opentelemetry-instrumentation-threading" }, { name = "opentelemetry-sdk" }, { name = "pydantic" }, + { name = "pyyaml" }, { name = "typing-extensions" }, { name = "watchdog" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b9/54/bf0910a1c40feacaedcf5d30840be990eabd09eff5375fa40525ba530c8d/strands_agents-1.27.0.tar.gz", hash = "sha256:84d0b670e534d7c281104a22035c10de8d43e9ad8ee589bde16f54a8387b2c56", size = 712878, upload-time = "2026-02-19T17:18:23.327Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ed/30/e183d3e7b170c9579eb315fc598ea7fea86670f8f1fe9541dba8ecc29812/strands_agents-1.35.0.tar.gz", hash = "sha256:913a598529bf73fe48c47b15aedb31679192cbe218e2d4aa71c62a06d63d5d73", size = 801382, upload-time = "2026-04-08T20:05:33.157Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6a/ca/d5c269f83929bdc753dce3c6091a1671e50268769b0ace009264424bf165/strands_agents-1.27.0-py3-none-any.whl", hash = "sha256:d9012515a7b4f324a600cacc539e837a51b3f7fe21da7efe1764186ade3be498", size = 351988, upload-time = "2026-02-19T17:18:19Z" }, + { url = "https://files.pythonhosted.org/packages/96/4a/0599f483220b08772000ec8fdb86b8cb1d624f51bab546af41bce3a0eac2/strands_agents-1.35.0-py3-none-any.whl", hash = "sha256:d34c749742b63bbaef90057ac1cbd5c04fb9e1e50fcda58741eb0af0ab0aeb91", size = 394806, upload-time = "2026-04-08T20:05:30.871Z" }, ] [package.optional-dependencies] diff --git a/examples/front_ends/per_user_workflow/uv.lock b/examples/front_ends/per_user_workflow/uv.lock index e1a6fba1bd..035218177d 100644 --- a/examples/front_ends/per_user_workflow/uv.lock +++ b/examples/front_ends/per_user_workflow/uv.lock @@ -402,6 +402,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1284,6 +1293,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2008,6 +2037,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2028,6 +2058,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2086,6 +2117,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -2692,6 +2756,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pytest" version = "8.4.2" diff --git a/examples/front_ends/simple_auth/uv.lock b/examples/front_ends/simple_auth/uv.lock index 04c91aae5c..401a5105ac 100644 --- a/examples/front_ends/simple_auth/uv.lock +++ b/examples/front_ends/simple_auth/uv.lock @@ -402,6 +402,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1284,6 +1293,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2012,6 +2041,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2032,6 +2062,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2090,6 +2121,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -2696,6 +2760,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pytest" version = "8.4.2" diff --git a/examples/front_ends/simple_calculator_custom_routes/uv.lock b/examples/front_ends/simple_calculator_custom_routes/uv.lock index e979d4d3e3..28c9851612 100644 --- a/examples/front_ends/simple_calculator_custom_routes/uv.lock +++ b/examples/front_ends/simple_calculator_custom_routes/uv.lock @@ -402,6 +402,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1284,6 +1293,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2022,6 +2051,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2042,6 +2072,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2100,6 +2131,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -2706,6 +2770,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pytest" version = "8.4.2" diff --git a/examples/getting_started/simple_calculator/uv.lock b/examples/getting_started/simple_calculator/uv.lock index 7cdd5ad485..57c4b1cfc1 100644 --- a/examples/getting_started/simple_calculator/uv.lock +++ b/examples/getting_started/simple_calculator/uv.lock @@ -402,6 +402,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1284,6 +1293,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2008,6 +2037,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2028,6 +2058,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2086,6 +2117,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -2692,6 +2756,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pytest" version = "8.4.2" diff --git a/examples/getting_started/simple_web_query/uv.lock b/examples/getting_started/simple_web_query/uv.lock index d9a8809027..fc834e0676 100644 --- a/examples/getting_started/simple_web_query/uv.lock +++ b/examples/getting_started/simple_web_query/uv.lock @@ -548,6 +548,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/91/c2/898e59963084e1e2cbd4aad1dee92c5bd7a79d121dcff1e659c2a0c2174e/cint-1.0.0-py3-none-any.whl", hash = "sha256:8aa33028e04015711c0305f918cb278f1dc8c5c9997acdc45efad2c7cb1abf50", size = 5573, upload-time = "2019-03-19T01:07:46.496Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1905,6 +1914,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2942,6 +2971,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2962,6 +2992,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -3086,6 +3117,39 @@ requires-dist = [ ] provides-extras = ["test"] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" diff --git a/examples/memory/redis/uv.lock b/examples/memory/redis/uv.lock index d35d65057d..4c8cc49994 100644 --- a/examples/memory/redis/uv.lock +++ b/examples/memory/redis/uv.lock @@ -430,6 +430,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1312,6 +1321,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2042,6 +2071,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2062,6 +2092,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2156,6 +2187,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -2777,6 +2841,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pytest" version = "8.4.2" diff --git a/examples/notebooks/uv.lock b/examples/notebooks/uv.lock index dee5187547..5a9991d55e 100644 --- a/examples/notebooks/uv.lock +++ b/examples/notebooks/uv.lock @@ -535,6 +535,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1895,6 +1904,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/67/04/c83f61106a245b74de11c1e075c1cc1e70462ece1dd9fc0584ad992a776d/langchain_nvidia_ai_endpoints-1.0.3-py3-none-any.whl", hash = "sha256:e5f170ad0a335637298bb90fb3df119793821e316355f61ab82f0106913eebbf", size = 50130, upload-time = "2026-01-28T22:04:33.065Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.7" @@ -3202,6 +3231,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -3222,6 +3252,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -3375,6 +3406,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.16.0" @@ -4200,6 +4264,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b8/27/3af2199afaabd48791584fa5da5929f08d1a3c8c37a2ef12c15fc9309111/pymilvus-2.6.8-py3-none-any.whl", hash = "sha256:c4c413ffdef2599064301fd831de6f9839a753abe27c68c6148707629711d069", size = 300995, upload-time = "2026-01-29T07:32:14.199Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pyparsing" version = "3.3.2" diff --git a/examples/object_store/user_report/uv.lock b/examples/object_store/user_report/uv.lock index ddf85d4d07..046516b621 100644 --- a/examples/object_store/user_report/uv.lock +++ b/examples/object_store/user_report/uv.lock @@ -423,6 +423,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1305,6 +1314,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2038,6 +2067,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2058,6 +2088,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2164,6 +2195,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -2779,6 +2843,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/7c/4c/ad33b92b9864cbde84f259d5df035a6447f91891f5be77788e2a3892bce3/pymysql-1.1.2-py3-none-any.whl", hash = "sha256:e6b1d89711dd51f8f74b1631fe08f039e7d76cf67a42a323d3178f0f25762ed9", size = 45300, upload-time = "2025-08-24T12:55:53.394Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pytest" version = "8.4.2" diff --git a/examples/observability/simple_calculator_observability/uv.lock b/examples/observability/simple_calculator_observability/uv.lock index 8cbf78e150..bc3155fce9 100644 --- a/examples/observability/simple_calculator_observability/uv.lock +++ b/examples/observability/simple_calculator_observability/uv.lock @@ -548,6 +548,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/91/c2/898e59963084e1e2cbd4aad1dee92c5bd7a79d121dcff1e659c2a0c2174e/cint-1.0.0-py3-none-any.whl", hash = "sha256:8aa33028e04015711c0305f918cb278f1dc8c5c9997acdc45efad2c7cb1abf50", size = 5573, upload-time = "2019-03-19T01:07:46.496Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1941,6 +1950,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2992,6 +3021,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -3012,6 +3042,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -3136,6 +3167,39 @@ requires-dist = [ ] provides-extras = ["test"] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" diff --git a/examples/prompt_from_file/uv.lock b/examples/prompt_from_file/uv.lock index 147b05b0c7..5e8e656cbc 100644 --- a/examples/prompt_from_file/uv.lock +++ b/examples/prompt_from_file/uv.lock @@ -402,6 +402,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1284,6 +1293,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2022,6 +2051,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2042,6 +2072,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2100,6 +2131,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -2706,6 +2770,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pytest" version = "8.4.2" diff --git a/examples/safety_and_security/retail_agent/uv.lock b/examples/safety_and_security/retail_agent/uv.lock index 24ca21116c..f4f43ac5d9 100644 --- a/examples/safety_and_security/retail_agent/uv.lock +++ b/examples/safety_and_security/retail_agent/uv.lock @@ -402,6 +402,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1332,6 +1341,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2085,6 +2114,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2105,6 +2135,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2163,6 +2194,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -2817,6 +2881,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pytest" version = "8.4.2" diff --git a/packages/nvidia_nat_core/src/nat/llm/oci_llm.py b/packages/nvidia_nat_core/src/nat/llm/oci_llm.py new file mode 100644 index 0000000000..f59feee30a --- /dev/null +++ b/packages/nvidia_nat_core/src/nat/llm/oci_llm.py @@ -0,0 +1,101 @@ +# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from collections.abc import AsyncIterator + +from pydantic import AliasChoices +from pydantic import ConfigDict +from pydantic import Field +from pydantic import model_validator + +from nat.builder.builder import Builder +from nat.builder.llm import LLMProviderInfo +from nat.cli.register_workflow import register_llm_provider +from nat.data_models.llm import LLMBaseConfig +from nat.data_models.optimizable import OptimizableField +from nat.data_models.optimizable import OptimizableMixin +from nat.data_models.optimizable import SearchSpace +from nat.data_models.retry_mixin import RetryMixin +from nat.data_models.thinking_mixin import ThinkingMixin + + +class OCIModelConfig(LLMBaseConfig, RetryMixin, OptimizableMixin, ThinkingMixin, name="oci"): + """OCI Generative AI LLM provider.""" + + model_config = ConfigDict(protected_namespaces=(), extra="allow") + + region: str = Field( + default="us-chicago-1", + description="OCI region for the Generative AI service. Used to build the endpoint when endpoint is not set.", + ) + endpoint: str | None = Field( + default=None, + validation_alias=AliasChoices("endpoint", "service_endpoint", "base_url"), + description="OCI Generative AI service endpoint URL. Auto-derived from region when omitted.", + ) + compartment_id: str | None = Field(default=None, description="OCI compartment OCID for Generative AI requests.") + + @model_validator(mode="after") + def _derive_endpoint_from_region(self) -> "OCIModelConfig": + if self.endpoint is None: + self.endpoint = f"https://inference.generativeai.{self.region}.oci.oraclecloud.com" + return self + + auth_type: str = Field(default="API_KEY", + description="OCI SDK authentication type: API_KEY, SECURITY_TOKEN, INSTANCE_PRINCIPAL, " + "or RESOURCE_PRINCIPAL.") + auth_profile: str = Field(default="DEFAULT", + description="OCI config profile to use for API_KEY or SECURITY_TOKEN auth.") + auth_file_location: str = Field(default="~/.oci/config", + description="Path to the OCI config file used for SDK authentication.") + model_name: str = OptimizableField(validation_alias=AliasChoices("model_name", "model"), + serialization_alias="model", + description="The OCI Generative AI model ID.") + provider: str | None = Field(default=None, + description="Optional OCI provider override such as cohere, google, meta, or openai.") + context_size: int | None = Field( + default=1024, + gt=0, + description="The maximum number of tokens available for input.", + ) + seed: int | None = Field(default=None, description="Random seed to set for generation.") + max_retries: int = Field(default=10, description="The max number of retries for the request.") + max_tokens: int | None = Field(default=None, gt=0, description="Maximum number of output tokens.") + temperature: float | None = OptimizableField( + default=None, + ge=0.0, + description="Sampling temperature to control randomness in the output.", + space=SearchSpace(high=0.9, low=0.1, step=0.2)) + top_p: float | None = OptimizableField(default=None, + ge=0.0, + le=1.0, + description="Top-p for distribution sampling.", + space=SearchSpace(high=1.0, low=0.5, step=0.1)) + request_timeout: float | None = Field(default=None, gt=0.0, description="HTTP request timeout in seconds.") + + +@register_llm_provider(config_type=OCIModelConfig) +async def oci_llm(config: OCIModelConfig, _builder: Builder) -> AsyncIterator[LLMProviderInfo]: + """Yield provider metadata for an OCI Generative AI model. + + Args: + config: OCI model configuration. + _builder: Builder instance. + + Yields: + LLMProviderInfo describing the configured OCI model. + """ + + yield LLMProviderInfo(config=config, description="An OCI Generative AI model for use with an LLM client.") diff --git a/packages/nvidia_nat_core/src/nat/llm/register.py b/packages/nvidia_nat_core/src/nat/llm/register.py index ba75899bce..bfc89cae10 100644 --- a/packages/nvidia_nat_core/src/nat/llm/register.py +++ b/packages/nvidia_nat_core/src/nat/llm/register.py @@ -27,4 +27,5 @@ from . import huggingface_llm from . import litellm_llm from . import nim_llm +from . import oci_llm from . import openai_llm diff --git a/packages/nvidia_nat_core/tests/nat/llm/test_oci_llm.py b/packages/nvidia_nat_core/tests/nat/llm/test_oci_llm.py new file mode 100644 index 0000000000..733886be17 --- /dev/null +++ b/packages/nvidia_nat_core/tests/nat/llm/test_oci_llm.py @@ -0,0 +1,105 @@ +# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import importlib +import sys +from unittest.mock import MagicMock +from unittest.mock import patch + +import pytest + +from nat.builder.llm import LLMProviderInfo +from nat.llm.oci_llm import OCIModelConfig +from nat.llm.oci_llm import oci_llm + + +@pytest.fixture(name="mock_builder") +def fixture_mock_builder(): + """Create a mock builder.""" + return MagicMock() + + +def test_oci_model_config_defaults(): + config = OCIModelConfig(model_name="nvidia/Llama-3.1-Nemotron-Nano-8B-v1") + + assert config.auth_type == "API_KEY" + assert config.auth_profile == "DEFAULT" + assert config.auth_file_location == "~/.oci/config" + assert config.region == "us-chicago-1" + assert config.endpoint == "https://inference.generativeai.us-chicago-1.oci.oraclecloud.com" + assert config.context_size == 1024 + + +def test_oci_model_config_derives_endpoint_from_region(): + config = OCIModelConfig( + model_name="nvidia/Llama-3.1-Nemotron-Nano-8B-v1", + region="eu-frankfurt-1", + ) + + assert config.endpoint == "https://inference.generativeai.eu-frankfurt-1.oci.oraclecloud.com" + + +def test_oci_model_config_explicit_endpoint_overrides_region(): + config = OCIModelConfig( + model_name="nvidia/Llama-3.1-Nemotron-Nano-8B-v1", + region="eu-frankfurt-1", + endpoint="https://custom.endpoint.example.com", + ) + + assert config.endpoint == "https://custom.endpoint.example.com" + + +def test_oci_model_config_accepts_endpoint_aliases(): + config = OCIModelConfig( + model_name="nvidia/Llama-3.1-Nemotron-Nano-8B-v1", + service_endpoint="https://custom.endpoint.example.com", + ) + + assert config.endpoint == "https://custom.endpoint.example.com" + + +@pytest.mark.asyncio +async def test_oci_llm_provider_yields_provider_info(mock_builder): + config = OCIModelConfig( + model_name="nvidia/Llama-3.1-Nemotron-Nano-8B-v1", + region="us-chicago-1", + compartment_id="ocid1.compartment.oc1..example", + ) + + async with oci_llm(config, mock_builder) as provider: + assert isinstance(provider, LLMProviderInfo) + assert provider.config is config + assert "OCI" in provider.description + + +@patch.dict("os.environ", {}, clear=True) +def test_oci_model_config_does_not_depend_on_env(): + config = OCIModelConfig(model_name="nvidia/Llama-3.1-Nemotron-Nano-8B-v1") + + assert config.model_name == "nvidia/Llama-3.1-Nemotron-Nano-8B-v1" + + +@patch("nat.cli.type_registry.GlobalTypeRegistry") +def test_oci_provider_registration(mock_global_registry): + registry = MagicMock() + mock_global_registry.get.return_value = registry + + sys.modules.pop("nat.llm.oci_llm", None) + module = importlib.import_module("nat.llm.oci_llm") + + registry.register_llm_provider.assert_called_once() + info = registry.register_llm_provider.call_args.args[0] + assert info.config_type is module.OCIModelConfig + assert info.build_fn is module.oci_llm diff --git a/packages/nvidia_nat_langchain/pyproject.toml b/packages/nvidia_nat_langchain/pyproject.toml index 8b7720e1d1..f525f12c60 100644 --- a/packages/nvidia_nat_langchain/pyproject.toml +++ b/packages/nvidia_nat_langchain/pyproject.toml @@ -67,6 +67,7 @@ dependencies = [ "langchain-litellm>=0.3.5,<1.0.0", "langchain-milvus>=0.3.3,<1.0.0", "langchain-nvidia-ai-endpoints>=1.0.2,<2.0.0", + "langchain-oci>=0.2.4,<1.0.0", "langchain-openai>=1.1.6,<2.0.0", "langchain-tavily>=0.2.16,<1.0.0", "langgraph>=1.0.5,<2.0.0", diff --git a/packages/nvidia_nat_langchain/src/nat/plugins/langchain/llm.py b/packages/nvidia_nat_langchain/src/nat/plugins/langchain/llm.py index 910ef039ef..8d5a640d51 100644 --- a/packages/nvidia_nat_langchain/src/nat/plugins/langchain/llm.py +++ b/packages/nvidia_nat_langchain/src/nat/plugins/langchain/llm.py @@ -37,6 +37,7 @@ from nat.llm.huggingface_llm import HuggingFaceConfig from nat.llm.litellm_llm import LiteLlmModelConfig from nat.llm.nim_llm import NIMModelConfig +from nat.llm.oci_llm import OCIModelConfig from nat.llm.openai_llm import OpenAIModelConfig from nat.llm.utils.hooks import _create_metadata_injection_client from nat.llm.utils.thinking import BaseThinkingInjector @@ -54,6 +55,12 @@ ModelType = TypeVar("ModelType") +def _get_langchain_oci_chat_model(): + from langchain_oci import ChatOCIGenAI + + return ChatOCIGenAI + + def _patch_llm_based_on_config(client: ModelType, llm_config: "LLMBaseConfig") -> ModelType: from langchain_core.language_models import LanguageModelInput @@ -244,6 +251,57 @@ async def openai_langchain(llm_config: OpenAIModelConfig, _builder: Builder): yield _patch_llm_based_on_config(client, llm_config) +@register_llm_client(config_type=OCIModelConfig, wrapper_type=LLMFrameworkEnum.LANGCHAIN) +async def oci_langchain(llm_config: OCIModelConfig, _builder: Builder): + import oci + from langchain_oci.common.auth import create_oci_client_kwargs + + validate_no_responses_api(llm_config, LLMFrameworkEnum.LANGCHAIN) + + ChatOCIGenAI = _get_langchain_oci_chat_model() + + model_kwargs: dict[str, Any] = {} + if llm_config.temperature is not None: + model_kwargs["temperature"] = llm_config.temperature + if llm_config.top_p is not None: + model_kwargs["top_p"] = llm_config.top_p + if llm_config.max_tokens is not None: + if llm_config.provider and llm_config.provider.lower() == "openai": + model_kwargs["max_completion_tokens"] = llm_config.max_tokens + else: + model_kwargs["max_tokens"] = llm_config.max_tokens + if llm_config.seed is not None: + model_kwargs["seed"] = llm_config.seed + + client_kwargs = create_oci_client_kwargs( + auth_type=llm_config.auth_type, + service_endpoint=llm_config.endpoint, + auth_file_location=llm_config.auth_file_location, + auth_profile=llm_config.auth_profile, + ) + client_kwargs["retry_strategy"] = oci.retry.RetryStrategyBuilder( + max_attempts=llm_config.max_retries + 1 # OCI SDK counts total attempts (initial + retries) + ).get_retry_strategy() + if llm_config.request_timeout is not None: + client_kwargs["timeout"] = (10, llm_config.request_timeout) + oci_client = oci.generative_ai_inference.GenerativeAiInferenceClient(**client_kwargs) + + client = ChatOCIGenAI( + client=oci_client, + model_id=llm_config.model_name, + service_endpoint=llm_config.endpoint, + compartment_id=llm_config.compartment_id, + auth_type=llm_config.auth_type, + auth_profile=llm_config.auth_profile, + auth_file_location=llm_config.auth_file_location, + provider=llm_config.provider, + is_stream=getattr(llm_config, "stream", False), + model_kwargs=model_kwargs or None, + ) + + yield _patch_llm_based_on_config(client, llm_config) + + @register_llm_client(config_type=DynamoModelConfig, wrapper_type=LLMFrameworkEnum.LANGCHAIN) async def dynamo_langchain(llm_config: DynamoModelConfig, _builder: Builder): """ diff --git a/packages/nvidia_nat_langchain/tests/test_langchain_agents.py b/packages/nvidia_nat_langchain/tests/test_langchain_agents.py index e1c04ea984..d4030f1f7e 100644 --- a/packages/nvidia_nat_langchain/tests/test_langchain_agents.py +++ b/packages/nvidia_nat_langchain/tests/test_langchain_agents.py @@ -25,6 +25,7 @@ from nat.llm.azure_openai_llm import AzureOpenAIModelConfig from nat.llm.huggingface_llm import HuggingFaceConfig from nat.llm.nim_llm import NIMModelConfig +from nat.llm.oci_llm import OCIModelConfig from nat.llm.openai_llm import OpenAIModelConfig @@ -133,6 +134,35 @@ async def test_azure_openai_langchain_agent(api_version: str | None): assert "3" in response.content.lower() +@pytest.mark.integration +@pytest.mark.usefixtures("oci_nemotron_endpoint") +async def test_oci_hosted_nemotron_openai_compatible_agent(): + """ + Test an OCI-hosted Nemotron endpoint exposed through an OpenAI-compatible route. + """ + prompt = ChatPromptTemplate.from_messages([("system", "You are a helpful AI assistant."), ("human", "{input}")]) + + llm_config = OpenAIModelConfig( + model_name=os.environ["OCI_NEMOTRON_MODEL"], + base_url=os.environ["OCI_NEMOTRON_BASE_URL"], + api_key=os.environ.get("OCI_NEMOTRON_API_KEY", "unused"), + temperature=0.0, + max_tokens=64, + ) + + async with WorkflowBuilder() as builder: + await builder.add_llm("oci_nemotron_llm", llm_config) + llm = await builder.get_llm("oci_nemotron_llm", wrapper_type=LLMFrameworkEnum.LANGCHAIN) + + agent = prompt | llm + + response = await agent.ainvoke({"input": "Reply with exactly OCI_NEMOTRON_OK"}) + assert isinstance(response, AIMessage) + assert response.content is not None + assert isinstance(response.content, str) + assert "OCI_NEMOTRON_OK" in response.content + + @pytest.mark.integration @pytest.mark.usefixtures("azure_openai_keys") async def test_azure_openai_react_e2e(test_data_dir: str): @@ -170,3 +200,59 @@ async def test_huggingface_langchain_agent(): assert response.content is not None assert isinstance(response.content, str) assert "3" in response.content.lower() + + +# --------------------------------------------------------------------------- +# OCI Generative AI → LangChain integration tests +# --------------------------------------------------------------------------- + + +@pytest.mark.integration +@pytest.mark.usefixtures("oci_genai") +@pytest.mark.parametrize( + "model_env_var,provider", + [ + ("OCI_META_MODEL", "meta"), + ("OCI_GOOGLE_MODEL", "google"), + ], + ids=["llama", "gemini"], +) +async def test_oci_langchain_agent(model_env_var: str, provider: str): + """ + Integration test for OCI Generative AI LLM with LangChain. + Requires OCI_COMPARTMENT_ID env var. Uses DEFAULT profile from ~/.oci/config. + OCI_REGION defaults to us-chicago-1. + OCI_META_MODEL defaults to meta.llama-3.3-70b-instruct. + OCI_GOOGLE_MODEL defaults to google.gemini-2.5-flash. + """ + _defaults = { + "OCI_META_MODEL": "meta.llama-3.3-70b-instruct", + "OCI_GOOGLE_MODEL": "google.gemini-2.5-flash", + } + model_name = os.environ.get(model_env_var, _defaults[model_env_var]) + + prompt = ChatPromptTemplate.from_messages([("system", "You are a helpful AI assistant."), ("human", "{input}")]) + + llm_config = OCIModelConfig( + model_name=model_name, + compartment_id=os.environ["OCI_COMPARTMENT_ID"], + region=os.environ.get("OCI_REGION", "us-chicago-1"), + auth_type="API_KEY", + auth_profile=os.environ.get("OCI_AUTH_PROFILE", "DEFAULT"), + provider=provider, + temperature=0.0, + max_tokens=64, + ) + + async with WorkflowBuilder() as builder: + await builder.add_llm("oci_llm", llm_config) + llm = await builder.get_llm("oci_llm", wrapper_type=LLMFrameworkEnum.LANGCHAIN) + + agent = prompt | llm + response = await agent.ainvoke({"input": "What is 1+2? Reply with only the number."}) + + assert isinstance(response, AIMessage) + assert response.content is not None + assert isinstance(response.content, str) + assert len(response.content) > 0 + assert "3" in response.content diff --git a/packages/nvidia_nat_langchain/tests/test_llm_langchain.py b/packages/nvidia_nat_langchain/tests/test_llm_langchain.py index ae415ac0a5..4355cf11c6 100644 --- a/packages/nvidia_nat_langchain/tests/test_llm_langchain.py +++ b/packages/nvidia_nat_langchain/tests/test_llm_langchain.py @@ -28,12 +28,14 @@ from nat.llm.dynamo_llm import DynamoModelConfig from nat.llm.litellm_llm import LiteLlmModelConfig from nat.llm.nim_llm import NIMModelConfig +from nat.llm.oci_llm import OCIModelConfig from nat.llm.openai_llm import OpenAIModelConfig from nat.plugins.langchain.llm import aws_bedrock_langchain from nat.plugins.langchain.llm import azure_openai_langchain from nat.plugins.langchain.llm import dynamo_langchain from nat.plugins.langchain.llm import litellm_langchain from nat.plugins.langchain.llm import nim_langchain +from nat.plugins.langchain.llm import oci_langchain from nat.plugins.langchain.llm import openai_langchain # --------------------------------------------------------------------------- @@ -182,6 +184,111 @@ async def test_verify_ssl_passed_to_client(self, assert mock_httpx_async_client.call_args.kwargs["verify"] is verify_ssl +class TestOCILangChain: + """Tests for the oci_langchain wrapper.""" + + @pytest.fixture + def oci_cfg(self): + return OCIModelConfig( + model_name="nvidia/Llama-3.1-Nemotron-Nano-8B-v1", + compartment_id="ocid1.compartment.oc1..example", + region="us-chicago-1", + auth_profile="DEFAULT", + temperature=0.2, + top_p=0.9, + max_tokens=512, + seed=7, + ) + + @pytest.fixture + def oci_cfg_wrong_api(self): + return OCIModelConfig( + model_name="nvidia/Llama-3.1-Nemotron-Nano-8B-v1", + compartment_id="ocid1.compartment.oc1..example", + region="us-chicago-1", + api_type=APITypeEnum.RESPONSES, + ) + + @patch("oci.generative_ai_inference.GenerativeAiInferenceClient") + @patch("langchain_oci.common.auth.create_oci_client_kwargs") + @patch("nat.plugins.langchain.llm._get_langchain_oci_chat_model") + async def test_basic_creation(self, + mock_get_chat, + mock_create_client_kwargs, + mock_oci_client, + oci_cfg, + mock_builder): + mock_chat_class = MagicMock() + mock_get_chat.return_value = mock_chat_class + mock_create_client_kwargs.return_value = { + "config": { + "region": "us-chicago-1" + }, + "service_endpoint": oci_cfg.endpoint, + "retry_strategy": object(), + "timeout": (10, 240), + } + oci_cfg.max_retries = 6 + oci_cfg.request_timeout = 42.0 + + async with oci_langchain(oci_cfg, mock_builder) as client: + mock_create_client_kwargs.assert_called_once_with( + auth_type=oci_cfg.auth_type, + service_endpoint=oci_cfg.endpoint, + auth_file_location=oci_cfg.auth_file_location, + auth_profile=oci_cfg.auth_profile, + ) + mock_oci_client.assert_called_once() + assert mock_oci_client.call_args.kwargs["timeout"] == (10, 42.0) + mock_chat_class.assert_called_once() + kwargs = mock_chat_class.call_args.kwargs + assert kwargs["client"] is mock_oci_client.return_value + assert kwargs["model_id"] == "nvidia/Llama-3.1-Nemotron-Nano-8B-v1" + assert kwargs["service_endpoint"] == "https://inference.generativeai.us-chicago-1.oci.oraclecloud.com" + assert kwargs["compartment_id"] == "ocid1.compartment.oc1..example" + assert kwargs["auth_profile"] == "DEFAULT" + assert kwargs["model_kwargs"] == { + "temperature": 0.2, + "top_p": 0.9, + "max_tokens": 512, + "seed": 7, + } + assert client is mock_chat_class.return_value + + @patch("oci.generative_ai_inference.GenerativeAiInferenceClient") + @patch("langchain_oci.common.auth.create_oci_client_kwargs") + @patch("nat.plugins.langchain.llm._get_langchain_oci_chat_model") + async def test_openai_provider_uses_max_completion_tokens(self, + mock_get_chat, + mock_create_client_kwargs, + mock_oci_client, + mock_builder): + mock_chat_class = MagicMock() + mock_get_chat.return_value = mock_chat_class + mock_create_client_kwargs.return_value = {"config": {}} + + cfg = OCIModelConfig( + model_name="openai.gpt-5.4", + compartment_id="ocid1.compartment.oc1..example", + region="us-chicago-1", + provider="openai", + max_tokens=128, + ) + + async with oci_langchain(cfg, mock_builder) as _: + kwargs = mock_chat_class.call_args.kwargs + assert "max_completion_tokens" in kwargs["model_kwargs"] + assert "max_tokens" not in kwargs["model_kwargs"] + assert kwargs["model_kwargs"]["max_completion_tokens"] == 128 + + @patch("nat.plugins.langchain.llm._get_langchain_oci_chat_model") + async def test_api_type_validation(self, mock_get_chat, oci_cfg_wrong_api, mock_builder): + with pytest.raises(ValueError): + async with oci_langchain(oci_cfg_wrong_api, mock_builder): + pass + mock_get_chat.assert_not_called() + + # --------------------------------------------------------------------------- # AWS Bedrock → LangChain wrapper tests # --------------------------------------------------------------------------- @@ -432,11 +539,13 @@ def test_decorator_registration(mock_global_registry): registry._llm_client_map = { (NIMModelConfig, LLMFrameworkEnum.LANGCHAIN): nim_langchain, (OpenAIModelConfig, LLMFrameworkEnum.LANGCHAIN): openai_langchain, + (OCIModelConfig, LLMFrameworkEnum.LANGCHAIN): oci_langchain, (AWSBedrockModelConfig, LLMFrameworkEnum.LANGCHAIN): aws_bedrock_langchain, (DynamoModelConfig, LLMFrameworkEnum.LANGCHAIN): dynamo_langchain, } assert registry._llm_client_map[(NIMModelConfig, LLMFrameworkEnum.LANGCHAIN)] is nim_langchain assert registry._llm_client_map[(OpenAIModelConfig, LLMFrameworkEnum.LANGCHAIN)] is openai_langchain + assert registry._llm_client_map[(OCIModelConfig, LLMFrameworkEnum.LANGCHAIN)] is oci_langchain assert registry._llm_client_map[(AWSBedrockModelConfig, LLMFrameworkEnum.LANGCHAIN)] is aws_bedrock_langchain assert registry._llm_client_map[(DynamoModelConfig, LLMFrameworkEnum.LANGCHAIN)] is dynamo_langchain diff --git a/packages/nvidia_nat_langchain/uv.lock b/packages/nvidia_nat_langchain/uv.lock index 6ebb1648ff..58358631a0 100644 --- a/packages/nvidia_nat_langchain/uv.lock +++ b/packages/nvidia_nat_langchain/uv.lock @@ -409,6 +409,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1291,6 +1300,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -1838,6 +1867,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -1864,6 +1894,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -1922,6 +1953,39 @@ requires-dist = [ { name = "pytest-timeout", specifier = "~=2.4" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "openai" version = "2.21.0" @@ -2528,6 +2592,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/56/ab7f0a5aba6fc06dc210a059d6f6d2ee1f3371d40e2b4366a409576554b8/pymilvus-2.6.9-py3-none-any.whl", hash = "sha256:3e14e8072f6429dcd79d52a24dc021c594cb80841ddd76cb974bc539d1f4cdda", size = 301225, upload-time = "2026-02-10T11:01:25.796Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pytest" version = "8.4.2" diff --git a/packages/nvidia_nat_test/src/nat/test/plugin.py b/packages/nvidia_nat_test/src/nat/test/plugin.py index ad2a365666..75b0699e75 100644 --- a/packages/nvidia_nat_test/src/nat/test/plugin.py +++ b/packages/nvidia_nat_test/src/nat/test/plugin.py @@ -151,6 +151,19 @@ def openai_api_key_fixture(fail_missing: bool): fail_missing=fail_missing) +@pytest.fixture(name="oci_nemotron_endpoint", scope='session') +def oci_nemotron_endpoint_fixture(fail_missing: bool): + """ + Use for integration tests that require an OCI-hosted Nemotron OpenAI-compatible endpoint. + """ + yield require_env_variables( + varnames=["OCI_NEMOTRON_BASE_URL", "OCI_NEMOTRON_MODEL"], + reason="OCI Nemotron integration tests require the `OCI_NEMOTRON_BASE_URL` and " + "`OCI_NEMOTRON_MODEL` environment variables to be defined.", + fail_missing=fail_missing, + ) + + @pytest.fixture(name="nvidia_api_key", scope='session') def nvidia_api_key_fixture(fail_missing: bool): """ @@ -232,6 +245,23 @@ def azure_openai_keys_fixture(fail_missing: bool): fail_missing=fail_missing) +@pytest.fixture(name="oci_genai", scope='session') +def oci_genai_fixture(fail_missing: bool): + """ + Use for integration tests that require OCI Generative AI credentials. + Required: OCI_COMPARTMENT_ID. + Optional: OCI_REGION (default: us-chicago-1), OCI_META_MODEL (default: meta.llama-3.3-70b-instruct), + OCI_GOOGLE_MODEL (default: google.gemini-2.5-flash). + Auth is read from ~/.oci/config using the DEFAULT profile. + """ + yield require_env_variables( + varnames=["OCI_COMPARTMENT_ID"], + reason= + "OCI Generative AI integration tests require the `OCI_COMPARTMENT_ID` environment variable to be defined.", + fail_missing=fail_missing, + ) + + @pytest.fixture(name="langfuse_keys", scope='session') def langfuse_keys_fixture(fail_missing: bool): """ diff --git a/packages/nvidia_nat_vanna/uv.lock b/packages/nvidia_nat_vanna/uv.lock index f460a4e17d..bcf2d417ce 100644 --- a/packages/nvidia_nat_vanna/uv.lock +++ b/packages/nvidia_nat_vanna/uv.lock @@ -531,6 +531,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/84/a2/023696860162c59ed7d5d2a589d701bf5c54233d82a0f808c69956204c10/chromadb-1.5.1-cp39-abi3-win_amd64.whl", hash = "sha256:7ec9dc47841cf3fecc475ca07a0aacfc9a347b3460881051636755618d6250c6", size = 21856118, upload-time = "2026-02-19T19:59:34.676Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -1503,6 +1512,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.10" @@ -2160,6 +2189,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -2180,6 +2210,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -2280,6 +2311,39 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/be/9c/92789c596b8df838baa98fa71844d84283302f7604ed565dafe5a6b5041a/oauthlib-3.3.1-py3-none-any.whl", hash = "sha256:88119c938d2b8fb88561af5f6ee0eec8cc8d552b7bb1f712743136eb7523b7a1", size = 160065, upload-time = "2025-06-19T22:48:06.508Z" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "onnxruntime" version = "1.24.2" @@ -3125,6 +3189,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/5b/ba/b34e3f8c57c453c02daf1a1eff9c4b62a2e89fc10a29bc83fb685155fe14/pymilvus_model-0.3.2-py3-none-any.whl", hash = "sha256:df8a90519a2adc47bd40f37d8c250b0ad0c7aaafc6139b52dc896d5cfda55d35", size = 47699, upload-time = "2025-03-31T08:47:43.372Z" }, ] +[[package]] +name = "pyopenssl" +version = "26.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/11/a62e1d33b373da2b2c2cd9eb508147871c80f12b1cacde3c5d314922afdd/pyopenssl-26.0.0.tar.gz", hash = "sha256:f293934e52936f2e3413b89c6ce36df66a0b34ae1ea3a053b8c5020ff2f513fc", size = 185534, upload-time = "2026-03-15T14:28:26.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/7d/d4f7d908fa8415571771b30669251d57c3cf313b36a856e6d7548ae01619/pyopenssl-26.0.0-py3-none-any.whl", hash = "sha256:df94d28498848b98cc1c0ffb8ef1e71e40210d3b0a8064c9d29571ed2904bf81", size = 57969, upload-time = "2026-03-15T14:28:24.864Z" }, +] + [[package]] name = "pypika" version = "0.51.1" diff --git a/uv.lock b/uv.lock index 25384a9e83..40c473499e 100644 --- a/uv.lock +++ b/uv.lock @@ -1274,6 +1274,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/91/c2/898e59963084e1e2cbd4aad1dee92c5bd7a79d121dcff1e659c2a0c2174e/cint-1.0.0-py3-none-any.whl", hash = "sha256:8aa33028e04015711c0305f918cb278f1dc8c5c9997acdc45efad2c7cb1abf50", size = 5573, upload-time = "2019-03-19T01:07:46.496Z" }, ] +[[package]] +name = "circuitbreaker" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ac/de7a92c4ed39cba31fe5ad9203b76a25ca67c530797f6bb420fff5f65ccb/circuitbreaker-2.1.3.tar.gz", hash = "sha256:1a4baee510f7bea3c91b194dcce7c07805fe96c4423ed5594b75af438531d084", size = 10787, upload-time = "2025-03-31T08:12:08.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/34/15f08edd4628f65217de1fc3c1a27c82e46fe357d60c217fc9881e12ebcc/circuitbreaker-2.1.3-py3-none-any.whl", hash = "sha256:87ba6a3ed03fdc7032bc175561c2b04d52ade9d5faf94ca2b035fbdc5e6b1dd1", size = 7737, upload-time = "2025-03-31T08:12:07.802Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -4146,6 +4155,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/3e/a711094b31777ac4a7993507b8a3e0a45307cbab94425b5eba012a49c0cd/langchain_nvidia_ai_endpoints-1.0.4-py3-none-any.whl", hash = "sha256:49018362fca9c951488dffcf3e1372365778946e2a3b87ff7d769589e7b3c497", size = 50173, upload-time = "2026-02-13T17:17:54.759Z" }, ] +[[package]] +name = "langchain-oci" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "langgraph" }, + { name = "oci" }, + { name = "oci-openai" }, + { name = "openai" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/a4/8eee64f54fccedb38bb22732ae0163275d2c59e23b2e3abe25acb4715be6/langchain_oci-0.2.5.tar.gz", hash = "sha256:57d2a72618d67bf90cc5f57db4f566947d02aa81836d3f0aef8303886a0ace09", size = 63611, upload-time = "2026-03-06T20:12:01.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/68/60fb21fdcdf0b38ab32cf9d191c526837c81e97236a99d0d7025c8a62626/langchain_oci-0.2.5-py3-none-any.whl", hash = "sha256:4c3a12ead3c337b92eab8687402490ce8418f213646f6ccaa7e15d4e43ed7ad4", size = 78486, upload-time = "2026-03-06T20:11:59.796Z" }, +] + [[package]] name = "langchain-openai" version = "1.1.9" @@ -7024,6 +7053,7 @@ dependencies = [ { name = "langchain-litellm" }, { name = "langchain-milvus" }, { name = "langchain-nvidia-ai-endpoints" }, + { name = "langchain-oci" }, { name = "langchain-openai" }, { name = "langchain-tavily" }, { name = "langgraph" }, @@ -7044,6 +7074,7 @@ requires-dist = [ { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, + { name = "langchain-oci", specifier = ">=0.2.4,<1.0.0" }, { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, @@ -7561,6 +7592,39 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/be/9c/92789c596b8df838baa98fa71844d84283302f7604ed565dafe5a6b5041a/oauthlib-3.3.1-py3-none-any.whl", hash = "sha256:88119c938d2b8fb88561af5f6ee0eec8cc8d552b7bb1f712743136eb7523b7a1", size = 160065, upload-time = "2025-06-19T22:48:06.508Z" }, ] +[[package]] +name = "oci" +version = "2.171.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "circuitbreaker" }, + { name = "cryptography" }, + { name = "pyopenssl" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/60/280971906425495ee1b7c81e2bf052a113fbec1adc4de0ec4bd1df07d43c/oci-2.171.0.tar.gz", hash = "sha256:83e46b7d6a54d9d41a1d090c6a3e4e9bd00caa305ceb1958eb5a15191b72cb68", size = 17035917, upload-time = "2026-04-14T03:25:12.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/2f/4925fcf29e771c62a6892a49d5e35efed2fb0d1ee3aaa1535435cf2e2b87/oci-2.171.0-py3-none-any.whl", hash = "sha256:235e7aa8891c02869ea9d0418ef8ffc7af18b36509bc0b95d74c449569bf894c", size = 34771785, upload-time = "2026-04-14T03:25:04.927Z" }, +] + +[[package]] +name = "oci-openai" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "oci" }, + { name = "openai" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/93/c395a92c8019dec50bd5760a9fcfd718cedb416824f8ebba0b26568ab6f4/oci_openai-1.1.0.tar.gz", hash = "sha256:1819ef7d17c1fdbe05c5c0653301fdca0d2fa99f6f8b1b7bd7667da9704d62a1", size = 199961, upload-time = "2026-02-03T05:15:12.486Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/a5/48aa98c4b68f3cc55bf74ef7a8d691d230ff09d5fab521e17ffd8b155ac4/oci_openai-1.1.0-py3-none-any.whl", hash = "sha256:a028ee3e1a1b1ad4e0495b10ef70b81b5e6cd50e7f13cf485a112762641a9160", size = 11449, upload-time = "2026-02-03T05:15:10.957Z" }, +] + [[package]] name = "onnxruntime" version = "1.24.2"