Skip to content

Commit aa73849

Browse files
committed
Merge remote-tracking branch 'origin/ai-factory' into inject-nvidia-auth
# Conflicts: # charts/aif-operator/files/blueprints/nvidia-rag-minimal-2-6-0.yaml # pkg/aif-ui/pages/components/AppWizard.vue # pkg/aif-ui/pages/components/BlueprintInstallWizard.vue # pkg/aif-ui/services/fleet-bundle.ts # pkg/aif-ui/types/blueprint-types.ts
2 parents 7d4a40c + 33c7be5 commit aa73849

101 files changed

Lines changed: 2018 additions & 4075 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: AI Factory UI Extension CI
2+
3+
on:
4+
pull_request:
5+
paths:
6+
- 'pkg/**'
7+
- 'package.json'
8+
9+
permissions:
10+
contents: read
11+
12+
concurrency:
13+
group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }}
14+
cancel-in-progress: true
15+
16+
jobs:
17+
ci:
18+
runs-on: ubuntu-latest
19+
timeout-minutes: 15
20+
steps:
21+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
22+
23+
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
24+
with:
25+
node-version: '24'
26+
cache: yarn
27+
28+
- run: yarn install --frozen-lockfile --ignore-engines
29+
30+
- run: npx eslint --ext .js,.ts,.vue pkg/aif-ui/
31+
32+
- run: yarn build-pkg aif-ui

charts/aif-operator/files/blueprints/nvidia-rag-minimal-2-5-0.yaml renamed to charts/aif-operator/files/blueprints/nvidia-rag-minimal-2-6-0.yaml

Lines changed: 61 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,21 @@ kind: Blueprint
33
metadata:
44
labels:
55
ai-platform.suse.com/blueprint-name: nvidia-rag-minimal
6-
ai-platform.suse.com/blueprint-version: 2.5.0
7-
name: nvidia-rag-minimal-2-5-0
6+
ai-platform.suse.com/blueprint-version: 2.6.0
7+
name: nvidia-rag-minimal-2-6-0
88
spec:
9-
components:
10-
# NOTE: This blueprint requires NVIDIA nim-operator. Please make sure it
11-
# is installed on the cluster. Please refer to
9+
# NOTE: This blueprint requires NVIDIA k8s-nim-operator and
10+
# Elasticsearch (ECK) Operator. Please make sure they are
11+
# installed on the cluster. Please refer to
1212
# https://docs.nvidia.com/nim-operator/latest/install.html on how to
13-
# install nim-operator.
13+
# install k8s-nim-operator. For Elasticsearch Operator, please
14+
# refer to https://www.elastic.co/docs/deploy-manage/deploy/cloud-on-k8s/install-using-helm-chart.
1415
#
16+
source: Nvidia
17+
components:
1518
- chartName: nvidia-blueprint-rag
1619
chartRepo: nvidia-blueprints
17-
chartVersion: v2.5.0
20+
chartVersion: v2.6.0
1821
# vendor: nvidia makes the operator's nvidiaInjector auto-create the
1922
# conventional ngc-secret (dockerconfigjson for nvcr.io) and ngc-api
2023
# (NGC_CLI_API_KEY/NGC_API_KEY/NVIDIA_API_KEY) in the release namespace from
@@ -33,11 +36,6 @@ spec:
3336
ngcApiSecret:
3437
create: false
3538
name: ngc-api
36-
image:
37-
# DECISION: Pinned to 2.5.0 because 2.5.1 image is not present.
38-
# Tracking via https://github.com/NVIDIA-AI-Blueprints/rag/issues/618 ;
39-
# bump to 2.5.1 once resolved.
40-
tag: "2.5.0"
4139
envVars:
4240
# DECISION: Downscaled the orchestrator routing targets from the default
4341
# massive 49B Nemotron model to the hyper-efficient Llama 3.2 3B model.
@@ -49,6 +47,8 @@ spec:
4947
APP_EMBEDDINGS_MODELNAME: nvidia/llama-nemotron-embed-1b-v2
5048
APP_RANKING_MODELNAME: nvidia/llama-nemotron-rerank-1b-v2
5149

50+
APP_EMBEDDINGS_SERVERURL: "nemotron-embedding-ms:8000/v1"
51+
5252
# DECISION: Switched vector search execution entirely to the CPU.
5353
# For text knowledge bases under a few million chunks, CPU dense
5454
# retrieval runs in single-digit milliseconds, saving critical VRAM
@@ -91,6 +91,7 @@ spec:
9191
# Slashed from default 9000 to 4000 to keep inputs lean.
9292
SUMMARY_LLM_MAX_CHUNK_LENGTH: "4000"
9393
APP_EMBEDDINGS_MODELNAME: nvidia/llama-nemotron-embed-1b-v2
94+
APP_EMBEDDINGS_SERVERURL: "nemotron-embedding-ms:8000/v1"
9495

9596
# DECISION: Forced document token indexing to run strictly on host
9697
# CPU threads.
@@ -143,6 +144,9 @@ spec:
143144
# save VRAM, resetting this string stops the ingestion pod from
144145
# hanging in an infinite loop waiting for dead services.
145146
COMPONENTS_TO_READY_CHECK: ""
147+
148+
APP_EMBEDDINGS_SERVERURL: "nemotron-embedding-ms:8000/v1"
149+
EMBEDDING_NIM_ENDPOINT: "http://nemotron-embedding-ms:8000/v1"
146150
milvus:
147151
image:
148152
all:
@@ -196,10 +200,21 @@ spec:
196200
# 18,640 MiB (18.6 GB) of VRAM just to initialize. Evicting this
197201
# monster cleared out 80%+ of our GPU card, giving the embedding,
198202
# ranking, and LLM services a clean slate.
199-
nemoretriever_ocr_v1:
203+
ocr:
200204
enabled: false
201205
# NIM Operator Deployments (3B LLM Engine)
202206
nimOperator:
207+
# DECISION: nim-vlm is another memory eating monster so disable it
208+
# for now.
209+
nim-vlm:
210+
enabled: false
211+
# DECISION: disable nvidia-nim-llama-nemotron-embed-vl-1b-v2 as its
212+
# caching job keep failing to download model profiles. Use the non-vlm
213+
# one instead.
214+
nvidia-nim-llama-nemotron-embed-vl-1b-v2:
215+
enabled: false
216+
nvidia-nim-llama-nemotron-embed-1b-v2:
217+
enabled: true
203218
nim-llm:
204219
enabled: true
205220
image:
@@ -242,15 +257,45 @@ spec:
242257
# user queries.
243258
- name: NIM_KVCACHE_PERCENT
244259
value: "0.15"
260+
# DECISION: Expose an ingress to make it easier to access the
261+
# NIM frontend UI. This is a hack, intended for demo purposes as the
262+
# endpoint is not protected by TLS or required any authentication.
263+
# To access the frontend UI, user will need to manually create the
264+
# DNS record for "rag-frontend.suse.demo" with the IP address
265+
# of the NIM frontend node in either /etc/hosts or DNS server.
266+
expose:
267+
ingress:
268+
enabled: true
269+
spec:
270+
rules:
271+
- host: rag-frontend.suse.demo
272+
http:
273+
paths:
274+
- path: /
275+
pathType: Prefix
276+
backend:
277+
service:
278+
name: rag-frontend
279+
port:
280+
number: 3000
245281
description: |
246-
Minimal NVIDIA RAG (v2.5.0) for low-GPU footprints (single ~24 GB GPU,
282+
Minimal NVIDIA RAG (v2.6.0) for low-GPU footprints (single ~24 GB GPU,
247283
e.g. A10 / L4). Swaps the default 49B Nemotron for Llama 3.2 3B,
248284
disables structural OCR / table / chart extraction to reclaim ~18 GB
249285
VRAM, forces CPU vector search/index, drops chart resource bounds to
250286
fit a single node, and pins Milvus standalone (text-only RAG). Not
251287
for production: tracing/observability stack is disabled, and the
252288
token budget is tuned for the small LLM, not throughput.
253289
254-
NOTE: this blueprint requires nim-operator.
290+
This blueprint exposes an ingress endpoint for the RAG Frontend UI
291+
with the name "rag-frontend.suse.demo".
292+
To access the RAG Frontend UI:
293+
294+
1. get the external IP of the node
295+
2. create a DNS entry in either your /etc/hosts file or DNS server
296+
for "rag-frontend.suse.com" with the node IP
297+
3. point your browser to http://rag-frontend.suse.demo
298+
299+
NOTE: this blueprint requires k8s-nim-operator and Elasticsearch eck-operator.
255300
displayName: NVIDIA RAG (minimal, low-GPU)
256-
version: 2.5.0
301+
version: 2.6.0

0 commit comments

Comments
 (0)