Commit 6caf21f
authored
Add OCI LangChain support for hosted Nemotron workflows (#1804)
## Summary
- add a first-class OCI LLM config to NAT core and register it alongside the existing providers
- add LangChain wrapper support for OCI via `langchain-oci`, matching the workflow-layer integration shape used by AWS Bedrock in this repo
- add OCI docs and tests, with live integration coverage centered on an OCI-hosted Nemotron inference endpoint
- declare the necessary `uv` extra conflicts so the workspace remains solvable when `langchain-oci` introduces `openai>=2` alongside existing `strands` and `vanna` surfaces
## What Was Tested
- `PYTHONPATH=$(pwd)/packages/nvidia_nat_core/src:$(pwd)/packages/nvidia_nat_langchain/src:$(pwd)/packages/nvidia_nat_test/src .venv/bin/pytest packages/nvidia_nat_core/tests/nat/llm/test_oci_llm.py packages/nvidia_nat_langchain/tests/test_llm_langchain.py -q -k 'OCI or oci'`
- `OCI_NEMOTRON_BASE_URL=http://127.0.0.1:8080/v1 OCI_NEMOTRON_MODEL=nvidia/Llama-3.1-Nemotron-Nano-8B-v1 PYTHONPATH=$(pwd)/packages/nvidia_nat_core/src:$(pwd)/packages/nvidia_nat_langchain/src:$(pwd)/packages/nvidia_nat_test/src .venv/bin/pytest packages/nvidia_nat_langchain/tests/test_langchain_agents.py -q --run_integration -k oci_hosted_nemotron_openai_compatible_agent`
- `uv lock`
## Notes
- all live validation in this PR is centered on `nvidia/Llama-3.1-Nemotron-Nano-8B-v1`
- the live Nemotron endpoint is served from an OKE + vLLM inference layer in Phoenix
- this closes the main OCI workflow-layer gap relative to the existing AWS Bedrock path in `nvidia_nat_langchain`
## Summary by CodeRabbit
* **New Features**
* Added an OCI-hosted LLM provider with LangChain client support and Nemotron-compatible model option.
* **Documentation**
* New OCI Generative AI integration guide, config examples, TOC entry, and documentation redirects; OCI added to supported providers list.
* **Tests**
* Added unit and integration tests for the OCI provider and LangChain wrapper, plus a pytest fixture for OCI Nemotron endpoints.
* **Chores**
* Broadened OpenAI dependency ranges, added langchain-oci runtime dependency, and adjusted optional extras/conflicts in packaging.
Authors:
- Federico Kamelhar (https://github.com/fede-kamel)
- Will Killian (https://github.com/willkill07)
Approvers:
- Will Killian (https://github.com/willkill07)
- https://github.com/Salonijain27
URL: #18041 parent ca59672 commit 6caf21f
56 files changed
Lines changed: 3879 additions & 7 deletions
File tree
- ci
- docs/source
- build-workflows/llms
- components/integrations
- get-started
- examples
- A2A
- math_assistant_a2a_protected
- math_assistant_a2a
- HITL
- por_to_jiratickets
- simple_calculator_hitl
- MCP
- simple_calculator_fastmcp_protected
- simple_calculator_fastmcp
- simple_calculator_mcp_protected
- simple_calculator_mcp
- RAG/simple_rag
- advanced_agents/alert_triage_agent
- agents
- control_flow
- hybrid_control_flow
- parallel_executor
- router_agent
- sequential_executor
- custom_functions
- automated_description_generation
- plot_charts
- documentation_guides
- workflows/text_file_ingest
- dynamo_integration
- latency_sensitivity_demo
- react_benchmark_agent
- evaluation_and_profiling
- email_phishing_analyzer
- simple_calculator_eval
- simple_web_query_eval
- finetuning
- dpo_tic_tac_toe
- rl_with_openpipe_art
- frameworks
- multi_frameworks
- semantic_kernel_demo
- strands_demo
- front_ends
- per_user_workflow
- simple_auth
- simple_calculator_custom_routes
- getting_started
- simple_calculator
- simple_web_query
- memory/redis
- notebooks
- object_store/user_report
- observability/simple_calculator_observability
- prompt_from_file
- safety_and_security/retail_agent
- packages
- nvidia_nat_core
- src/nat/llm
- tests/nat/llm
- nvidia_nat_langchain
- src/nat/plugins/langchain
- tests
- nvidia_nat_test/src/nat/test
- nvidia_nat_vanna
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
26 | 29 | | |
27 | 30 | | |
28 | 31 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| 31 | + | |
31 | 32 | | |
32 | 33 | | |
33 | 34 | | |
| |||
52 | 53 | | |
53 | 54 | | |
54 | 55 | | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
55 | 65 | | |
56 | 66 | | |
57 | 67 | | |
| |||
118 | 128 | | |
119 | 129 | | |
120 | 130 | | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
121 | 164 | | |
122 | 165 | | |
123 | 166 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
| 26 | + | |
| 27 | + | |
Lines changed: 99 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| 30 | + | |
30 | 31 | | |
31 | 32 | | |
32 | 33 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments