@@ -226,8 +226,8 @@ func buildLlamaStackVectorDB(_ *common_helper.Helper, _ *apiv1beta1.OpenStackLig
226226 "table_name" : "vector_store" ,
227227 },
228228 "persistence" : map [string ]interface {}{
229- "backend" : "kv_default " ,
230- "namespace" : "vector_persistence " ,
229+ "backend" : "rag_backend " ,
230+ "namespace" : "vector_io:faiss " ,
231231 },
232232 },
233233 },
@@ -270,6 +270,10 @@ func buildLlamaStackStorage(_ *common_helper.Helper, instance *apiv1beta1.OpenSt
270270 "ca_cert_path" : "/etc/certs/postgres-ca/service-ca.crt" ,
271271 "gss_encmode" : "disable" ,
272272 },
273+ "rag_backend" : map [string ]interface {}{
274+ "type" : "kv_sqlite" ,
275+ "db_path" : "/rag/rag-0/vector_db/os_product_docs/faiss_store.db" ,
276+ },
273277 }
274278
275279 // Map data stores to backends - all use SQL with table_name
@@ -294,37 +298,34 @@ func buildLlamaStackStorage(_ *common_helper.Helper, instance *apiv1beta1.OpenSt
294298 }
295299}
296300
297- func buildLlamaStackVectorDBs (_ * common_helper.Helper , instance * apiv1beta1.OpenStackLightspeed ) [ ]interface {} {
298- vectorDBs := [ ]interface {} {}
301+ func buildLlamaStackVectorStores (_ * common_helper.Helper , instance * apiv1beta1.OpenStackLightspeed ) map [ string ]interface {} {
302+ var vectorDBs map [ string ]interface {}
299303
300304 // Use RAG configuration from instance if available
301305 rags := buildLCoreRAGConfigs (instance , instance .Status .ActiveOCPRAGVersion )
302306 if len (rags ) > 0 {
303- for _ , rag := range rags {
304- vectorDB := map [string ]interface {}{
305- "embedding_model" : "sentence-transformers/all-mpnet-base-v2" ,
306- "embedding_dimension" : 768 ,
307- "provider_id" : "faiss" ,
308- }
309-
310- // Use IndexID if specified, otherwise generate a default
311- if rag .IndexID != "" {
312- vectorDB ["vector_db_id" ] = rag .IndexID
313- } else {
314- // Generate a simple ID from the image name
315- vectorDB ["vector_db_id" ] = "rag_" + sanitizeID (rag .Image )
316- }
307+ vectorDBs = map [string ]interface {}{
308+ "default_embedding_model" : map [string ]interface {}{
309+ "provider_id" : "sentence-transformers" ,
310+ // "model_id": "all-mpnet-base-v2",
311+ "model_id" : "/rag/rag-0/embeddings_model" ,
312+ },
317313
318- vectorDBs = append (vectorDBs , vectorDB )
314+ // "embedding_dimension": 768,
315+ "default_provider_id" : "faiss" ,
316+ // "index_path": rag.IndexPath,
319317 }
318+
319+ vectorDBs ["vector_store_id" ] = getVectorStoreID ()
320+
320321 } else {
321322 // Default fallback if no RAG configured
322- vectorDBs = append ( vectorDBs , map [string ]interface {}{
323+ vectorDBs = map [string ]interface {}{
323324 "vector_db_id" : "my_knowledge_base" ,
324325 "embedding_model" : "sentence-transformers/all-mpnet-base-v2" ,
325326 "embedding_dimension" : 768 ,
326327 "provider_id" : "faiss" ,
327- })
328+ }
328329 }
329330
330331 return vectorDBs
@@ -337,7 +338,7 @@ func buildLlamaStackModels(_ *common_helper.Helper, instance *apiv1beta1.OpenSta
337338 "model_id" : "sentence-transformers/all-mpnet-base-v2" ,
338339 "model_type" : "embedding" ,
339340 "provider_id" : "sentence-transformers" ,
340- "provider_model_id" : "sentence-transformers/all-mpnet-base-v2 " ,
341+ "provider_model_id" : "/rag/rag-0/embeddings_model " ,
341342 "metadata" : map [string ]interface {}{
342343 "embedding_dimension" : 768 ,
343344 },
@@ -380,6 +381,47 @@ func buildLlamaStackToolGroups(_ *common_helper.Helper, _ *apiv1beta1.OpenStackL
380381 }
381382}
382383
384+ func buildLlamaStackRegisteredResources (_ * common_helper.Helper , instance * apiv1beta1.OpenStackLightspeed ) map [string ]interface {} {
385+ return map [string ]interface {}{
386+ "models" : []interface {}{
387+ map [string ]interface {}{
388+ "model_id" : "sentence-transformers/all-mpnet-base-v2" ,
389+ "model_type" : "embedding" ,
390+ // "provider_model_id": "all-mpnet-base-v2",
391+ "metadata" : map [string ]interface {}{
392+ "embedding_dimension" : 768 ,
393+ },
394+
395+ "provider_id" : "sentence-transformers" ,
396+ // "provider_model_id": "all-mpnet-base-v2",
397+ "provider_model_id" : "/rag/rag-0/embeddings_model" ,
398+ },
399+
400+ map [string ]interface {}{
401+ "model_id" : instance .Spec .ModelName ,
402+ "model_type" : "llm" ,
403+ "provider_id" : "openstack-lightspeed-provider" ,
404+ "provider_model_id" : instance .Spec .ModelName ,
405+ "metadata" : map [string ]interface {}{
406+ "max_tokens" : 2048 ,
407+ },
408+ },
409+ },
410+ "vector_stores" : []interface {}{
411+ map [string ]interface {}{
412+ "vector_store_id" : getVectorStoreID (),
413+ // "model_id": "sentence-transformers/all-mpnet-base-v2",
414+ "provider_id" : "faiss" ,
415+ // "embedding_model": "all-mpnet-base-v2",
416+ // "embedding_model": "sentence-transformers/all-mpnet-base-v2",
417+ "embedding_model" : "sentence-transformers//rag/rag-0/embeddings_model" ,
418+ "embedding_dimension" : 768 ,
419+ // "provider_model_id": "/rag/rag-0/embeddings_model",
420+ },
421+ },
422+ }
423+ }
424+
383425// buildLlamaStackYAML assembles the complete Llama Stack configuration and converts to YAML
384426func buildLlamaStackYAML (h * common_helper.Helper , ctx context.Context , instance * apiv1beta1.OpenStackLightspeed ) (string , error ) {
385427 // Build the complete config as a map
@@ -400,12 +442,12 @@ func buildLlamaStackYAML(h *common_helper.Helper, ctx context.Context, instance
400442 "tool_runtime" : buildLlamaStackToolRuntime (h , instance ),
401443 "vector_io" : buildLlamaStackVectorDB (h , instance ),
402444 }
403-
404445 // Add top-level fields
405446 config ["scoring_fns" ] = []interface {}{}
406447 config ["server" ] = buildLlamaStackServerConfig (h , instance )
407448 config ["storage" ] = buildLlamaStackStorage (h , instance )
408- config ["vector_dbs" ] = buildLlamaStackVectorDBs (h , instance )
449+ config ["vector_stores" ] = buildLlamaStackVectorStores (h , instance )
450+ config ["registered_resources" ] = buildLlamaStackRegisteredResources (h , instance )
409451 config ["models" ] = buildLlamaStackModels (h , instance )
410452 config ["tool_groups" ] = buildLlamaStackToolGroups (h , instance )
411453 config ["telemetry" ] = map [string ]interface {}{
0 commit comments