Plugins¶
Extend AutoRAG-Research with custom pipelines and metrics.
Overview¶
AutoRAG-Research supports external plugins that add custom pipelines, metrics,
and data ingestors. Plugins use Python's entry_points mechanism for discovery.
Install a plugin package, run plugin sync to copy its configs (pipelines/metrics),
or use autorag-research ingest to run ingestor plugins directly.
How It Works¶
- Install a plugin package (
pip install autorag-research-elasticsearch) - The package registers entry_points under
autorag_research.pipelines,autorag_research.metrics, orautorag_research.ingestors - For pipelines/metrics: run
autorag-research plugin syncto copy YAML configs intoconfigs/ - For ingestors: run
autorag-research ingest --name=<plugin_name>to ingest data directly
Plugin Types¶
| Type | Entry Point Group | Base Config Class | Base Pipeline/Metric Class |
|---|---|---|---|
| Retrieval Pipeline | autorag_research.pipelines |
BaseRetrievalPipelineConfig |
BaseRetrievalPipeline |
| Generation Pipeline | autorag_research.pipelines |
BaseGenerationPipelineConfig |
BaseGenerationPipeline |
| Retrieval Metric | autorag_research.metrics |
BaseRetrievalMetricConfig |
Function-based |
| Generation Metric | autorag_research.metrics |
BaseGenerationMetricConfig |
Function-based |
| Data Ingestor | autorag_research.ingestors |
N/A (@register_ingestor) |
TextEmbeddingDataIngestor |
Quick Start¶
# Scaffold a new retrieval plugin
autorag-research plugin create my_search --type=retrieval
# Edit the generated code
cd my_search_plugin
# ... implement your logic in src/my_search_plugin/pipeline.py
# Install in development mode
pip install -e .
# Sync configs to your project
cd /path/to/your/project
autorag-research plugin sync
Ingestor Plugin¶
# Scaffold a new ingestor plugin
autorag-research plugin create my_dataset --type=ingestor
# Edit the generated code
cd my_dataset_plugin
# ... implement your logic in src/my_dataset_plugin/ingestor.py
# Install in development mode
pip install -e .
# Run the ingestor
autorag-research ingest --name=my_dataset