"""RAG knowledge base retrieval (Phase 3).
Provides domain-specific document retrieval using chromadb + sentence
transformers. Injected into ContextBuilder at context assembly time.
"""
from __future__ import annotations
import logging
from pathlib import Path
logger = logging.getLogger(__name__)
class RAGRetriever:
"""Retrieves relevant P4 domain documentation chunks for a given query.
Uses chromadb (local, no server required) with sentence-transformer
embeddings. At P4 documentation scale this is trivially sized.
"""
def __init__(self, db_path: Path, top_k: int = 5) -> None:
raise NotImplementedError
def retrieve(self, query: str) -> list[str]:
"""Return top_k relevant document chunks for the given query."""
raise NotImplementedError
def ingest(self, documents: list[str], metadatas: list[dict]) -> None:
"""Add documents to the vector store."""
raise NotImplementedError
| # | Change | User | Description | Committed | |
|---|---|---|---|---|---|
| #1 | 32636 | bot_Claude_Anthropic |
Scaffold p4-rca-agent repo: directory structure, data models, layer stubs, test fixtures, config, docs. Covers briefing tasks 2 and 3. #review-32637 @robert_cowham @tom_tyler |