Import Patterns¶
FedRAG provides a carefully designed public API for working with RAG and both centralized and federated fine-tuning components. All components exported at the root level and from public subpackages are considered stable and follow semantic versioning guidelines.
Root Imports¶
Import core components directly from the root:
from fed_rag import (
RAGSystem,
RAGConfig,
HFPretrainedModelGenerator,
HFSentenceTransformerRetriever,
InMemoryKnowledgeStore,
)
# Now use the components directly
system = RAGSystem(
retriever=HFSentenceTransformerRetriever(...),
generator=HFPretrainedModelGenerator(...),
knowledge_store=InMemoryKnowledgeStore(),
rag_config=RAGConfig(...),
)
Namespaced Imports¶
For better organization and increased clarity, you can import from specific component categories:
from fed_rag.core import RAGSystem
from fed_rag.data_structures.rag import RAGConfig
from fed_rag.generators import HFPretrainedModelGenerator
from fed_rag.retrievers import HFSentenceTransformerRetriever
from fed_rag.knowledge_stores import InMemoryKnowledgeStore
# Create system with components from different namespaces
system = RAGSystem(
retriever=HFSentenceTransformerRetriever(...),
generator=HFPretrainedModelGenerator(...),
knowledge_store=InMemoryKnowledgeStore(),
rag_config=RAGConfig(...),
)
Note
Modules and functions prefixed with an underscore (e.g., _internal
) are considered
implementation details and may change between versions.