View on GitHub

Lightspeed Core Stack

Lightspeed Core Stack

Migrating to v0.7.0

Table of Contents


RAG Configuration

In v0.7.0, the RAG configuration in lightspeed-stack.yaml will be unified under a single rag section. The four separate top-level sections (byok_rag, rag, okp, reranker) will be replaced by a nested structure that groups BYOK stores, OKP settings, retrieval strategies, and reranker settings together. The rag_type field will be renamed to backend and the inline::/remote:: prefix will be dropped (e.g. inline::faiss becomes faiss). Hardcoded chunk limit constants will become user-configurable fields with sensible defaults.

Field Mapping

Old config path New config path Notes
byok_rag (top-level list) rag.byok.stores Moved under rag.byok
byok_rag[].rag_type rag.byok.stores[].backend Drop the inline::/remote:: prefix (e.g. inline::faiss becomes faiss)
rag.inline (list of IDs) rag.retrieval.inline.sources Moved under rag.retrieval.inline
rag.tool (list of IDs) rag.retrieval.tool.sources Moved under rag.retrieval.tool
okp (top-level section) rag.okp Moved under rag
BYOK_RAG_MAX_CHUNKS constant rag.byok.max_chunks Default: 10
OKP_RAG_MAX_CHUNKS constant rag.okp.max_chunks Default: 5
INLINE_RAG_MAX_CHUNKS constant rag.retrieval.inline.max_chunks Default: 10
TOOL_RAG_MAX_CHUNKS constant rag.retrieval.tool.max_chunks Default: 10
reranker (top-level section) rag.retrieval.inline.reranker Moved under rag.retrieval.inline

Before / After Examples

Full RAG Configuration Example

Before (v0.6.x):

byok_rag:
  - rag_id: ocp-docs
    rag_type: inline::faiss
    embedding_model: sentence-transformers/all-mpnet-base-v2
    embedding_dimension: 768
    vector_db_id: vs_123
    db_path: /tmp/ocp.faiss
    score_multiplier: 1.0
  - rag_id: knowledge-base
    rag_type: inline::faiss
    embedding_model: sentence-transformers/all-mpnet-base-v2
    embedding_dimension: 768
    vector_db_id: vs_456
    db_path: /tmp/kb.faiss
    score_multiplier: 1.2

rag:
  inline:
    - ocp-docs
    - knowledge-base
    - okp
  tool:
    - ocp-docs
    - knowledge-base

okp:
  rhokp_url: ${env.RH_SERVER_OKP}
  offline: true
  # chunk_filter_query: "product:*ansible* AND product:*openshift*"

reranker:
  enabled: true
  model: cross-encoder/ms-marco-MiniLM-L6-v2

After (v0.7.0):

rag:
  byok:
    max_chunks: 10                 # Was BYOK_RAG_MAX_CHUNKS constant
    stores:
      - rag_id: ocp-docs
        backend: faiss              # Was 'rag_type: inline::faiss'
        embedding_model: sentence-transformers/all-mpnet-base-v2
        embedding_dimension: 768
        vector_db_id: vs_123
        db_path: /tmp/ocp.faiss
        score_multiplier: 1.0
      - rag_id: knowledge-base
        backend: faiss              # Was 'rag_type: inline::faiss'
        embedding_model: sentence-transformers/all-mpnet-base-v2
        embedding_dimension: 768
        vector_db_id: vs_456
        db_path: /tmp/kb.faiss
        score_multiplier: 1.2

  okp:
    rhokp_url: ${env.RH_SERVER_OKP}
    offline: true
    max_chunks: 5                  # Was OKP_RAG_MAX_CHUNKS constant
    # chunk_filter_query: "product:*ansible* AND product:*openshift*"

  retrieval:
    inline:
      sources:
        - ocp-docs
        - knowledge-base
        - okp
      max_chunks: 10               # Was INLINE_RAG_MAX_CHUNKS constant
      reranker:
        enabled: true
        model: cross-encoder/ms-marco-MiniLM-L6-v2
    tool:
      sources:
        - ocp-docs
        - knowledge-base
      max_chunks: 10               # Was TOOL_RAG_MAX_CHUNKS constant

Chunk Limits

Chunk limits, currently hardcoded as constants, will be configurable fields in lightspeed-stack.yaml with the same default values:

Old constant New config field Default
BYOK_RAG_MAX_CHUNKS rag.byok.max_chunks 10
OKP_RAG_MAX_CHUNKS rag.okp.max_chunks 5
INLINE_RAG_MAX_CHUNKS rag.retrieval.inline.max_chunks 10
TOOL_RAG_MAX_CHUNKS rag.retrieval.tool.max_chunks 10