@@ -374,23 +374,47 @@ func buildLlamaStackToolRuntime(_ reconciler.Reconciler, _ *olsv1alpha1.OLSConfi
374374 }
375375}
376376
377- func buildLlamaStackVectorDB (_ reconciler.Reconciler , _ * olsv1alpha1.OLSConfig ) []interface {} {
378- return []interface {}{
379- map [string ]interface {}{
380- "provider_id" : "faiss" ,
377+ func buildLlamaStackVectorIO (r reconciler.Reconciler , cr * olsv1alpha1.OLSConfig ) []interface {} {
378+ vectorIOs := []interface {}{}
379+ // Use RAG configuration from OLSConfig if available
380+ if len (cr .Spec .OLSConfig .RAG ) > 0 {
381+ for _ , rag := range cr .Spec .OLSConfig .RAG {
382+ id := "byok_rag_" + sanitizeID (rag .Image )
383+ vectorIOs = append (vectorIOs , map [string ]interface {}{
384+ "provider_id" : id ,
385+ "provider_type" : "inline::faiss" ,
386+ "config" : map [string ]interface {}{
387+ "kvstore" : map [string ]interface {}{
388+ "db_path" : "/rag-data/" + id + "/faiss_store.db" ,
389+ "type" : "kv_sqlight" ,
390+ },
391+ "persistence" : map [string ]interface {}{
392+ "backend" : "kv_default" ,
393+ "namespace" : "vector_io::faiss" ,
394+ },
395+ },
396+ })
397+ }
398+ }
399+ if ! cr .Spec .OLSConfig .ByokRAGOnly {
400+ // OCP RAG database
401+ vectorIOs = append (vectorIOs , map [string ]interface {}{
402+ "provider_id" : "ocp-rag" ,
381403 "provider_type" : "inline::faiss" ,
382404 "config" : map [string ]interface {}{
383405 "kvstore" : map [string ]interface {}{
384- "backend " : "sql_default " ,
385- "table_name " : "vector_store " ,
406+ "db_path " : "/rag-data/ocp/vector_db/ocp_product_docs/" + r . GetOpenShiftMajor () + "." + r . GetOpenshiftMinor () + "/faiss_store.db " ,
407+ "type " : "kv_sqlight " ,
386408 },
387409 "persistence" : map [string ]interface {}{
388410 "backend" : "kv_default" ,
389- "namespace" : "vector_persistence " ,
411+ "namespace" : "vector_io::faiss " ,
390412 },
391413 },
392- },
414+ })
393415 }
416+
417+ return vectorIOs
394418}
395419
396420func buildLlamaStackServerConfig (_ reconciler.Reconciler , _ * olsv1alpha1.OLSConfig ) map [string ]interface {} {
@@ -428,26 +452,19 @@ func buildLlamaStackVectorDBs(_ reconciler.Reconciler, cr *olsv1alpha1.OLSConfig
428452 vectorDB := map [string ]interface {}{
429453 "embedding_model" : "sentence-transformers/all-mpnet-base-v2" ,
430454 "embedding_dimension" : 768 ,
431- "provider_id" : "faiss" ,
455+ "provider_id" : "byok_rag_" + sanitizeID (rag .Image ),
456+ "vector_db_id" : "byok_rag_" + sanitizeID (rag .Image ),
432457 }
433-
434- // Use IndexID if specified, otherwise generate a default
435- if rag .IndexID != "" {
436- vectorDB ["vector_db_id" ] = rag .IndexID
437- } else {
438- // Generate a simple ID from the image name
439- vectorDB ["vector_db_id" ] = "rag_" + sanitizeID (rag .Image )
440- }
441-
442458 vectorDBs = append (vectorDBs , vectorDB )
443459 }
444- } else {
445- // Default fallback if no RAG configured
460+ }
461+ if ! cr .Spec .OLSConfig .ByokRAGOnly {
462+ // OCP RAG database
446463 vectorDBs = append (vectorDBs , map [string ]interface {}{
447- "vector_db_id" : "my_knowledge_base " ,
464+ "vector_db_id" : "ocp-rag " ,
448465 "embedding_model" : "sentence-transformers/all-mpnet-base-v2" ,
449466 "embedding_dimension" : 768 ,
450- "provider_id" : "faiss " ,
467+ "provider_id" : "ocp-rag " ,
451468 })
452469 }
453470
@@ -478,7 +495,7 @@ func buildLlamaStackModels(_ reconciler.Reconciler, cr *olsv1alpha1.OLSConfig) [
478495 "model_id" : "sentence-transformers/all-mpnet-base-v2" ,
479496 "model_type" : "embedding" ,
480497 "provider_id" : "sentence-transformers" ,
481- "provider_model_id" : "sentence-transformers/all-mpnet-base-v2 " ,
498+ "provider_model_id" : "/rag-data/ocp/embeddings_model " ,
482499 "metadata" : map [string ]interface {}{
483500 "embedding_dimension" : 768 ,
484501 },
@@ -595,7 +612,7 @@ func buildLlamaStackYAML(r reconciler.Reconciler, ctx context.Context, cr *olsv1
595612 "safety" : buildLlamaStackSafety (r , cr ), // Required by agents provider
596613 // "telemetry": buildLlamaStackTelemetry(r, cr), // Telemetry and tracing
597614 "tool_runtime" : buildLlamaStackToolRuntime (r , cr ), // Required for RAG
598- "vector_io" : buildLlamaStackVectorDB (r , cr ), // Required for RAG
615+ "vector_io" : buildLlamaStackVectorIO (r , cr ), // Required for RAG
599616 }
600617
601618 // Add top-level fields
0 commit comments