iris-vector-rag


Nameiris-vector-rag JSON
Version 0.2.0 PyPI version JSON
download
home_pagehttps://github.com/intersystems/rag-templates
SummaryDead-simple library for building RAG applications with InterSystems IRIS
upload_time2025-11-05 18:32:55
maintainerNone
docs_urlNone
authorInterSystems
requires_python>=3.8
licenseMIT
keywords rag retrieval-augmented-generation intersystems iris vector-database llm ai machine-learning nlp embeddings semantic-search mcp model-context-protocol
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # IRIS Vector RAG Templates

**Production-ready Retrieval-Augmented Generation (RAG) pipelines powered by InterSystems IRIS Vector Search**

Build intelligent applications that combine large language models with your enterprise data using battle-tested RAG patterns and native vector search capabilities.

[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
[![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
[![InterSystems IRIS](https://img.shields.io/badge/IRIS-2024.1+-purple.svg)](https://www.intersystems.com/products/intersystems-iris/)

## Why IRIS Vector RAG?

๐Ÿš€ **Production-Ready** - Six proven RAG architectures ready to deploy, not research prototypes

โšก **Blazing Fast** - Native IRIS vector search with HNSW indexing, no external vector databases needed

๐Ÿ”ง **Unified API** - Swap between RAG strategies with a single line of code

๐Ÿ“Š **Enterprise-Grade** - ACID transactions, connection pooling, and horizontal scaling built-in

๐ŸŽฏ **100% Compatible** - Works seamlessly with LangChain, RAGAS, and your existing ML stack

๐Ÿงช **Fully Validated** - Comprehensive test suite with automated contract validation

## Available RAG Pipelines

| Pipeline Type | Use Case | Retrieval Method | When to Use |
|---------------|----------|------------------|-------------|
| **basic** | Standard retrieval | Vector similarity | General Q&A, getting started, baseline comparisons |
| **basic_rerank** | Improved precision | Vector + cross-encoder reranking | Higher accuracy requirements, legal/medical domains |
| **crag** | Self-correcting | Vector + evaluation + web search fallback | Dynamic knowledge, fact-checking, current events |
| **graphrag** | Knowledge graphs | Vector + text + graph + RRF fusion | Complex entity relationships, research, medical knowledge |
| **multi_query_rrf** | Multi-perspective | Query expansion + reciprocal rank fusion | Complex queries, comprehensive coverage needed |
| **pylate_colbert** | Fine-grained matching | ColBERT late interaction embeddings | Nuanced semantic understanding, high precision |

## Quick Start

### 1. Install

```bash
# Clone repository
git clone https://github.com/intersystems-community/iris-rag-templates.git
cd iris-rag-templates

# Setup environment (requires uv package manager)
make setup-env
make install
source .venv/bin/activate
```

### 2. Start IRIS Database

```bash
# Start IRIS with Docker Compose
docker-compose up -d

# Initialize database schema
make setup-db

# Optional: Load sample medical data
make load-data
```

### 3. Configure API Keys

```bash
cat > .env << 'EOF'
OPENAI_API_KEY=your-key-here
ANTHROPIC_API_KEY=your-key-here  # Optional, for Claude models
IRIS_HOST=localhost
IRIS_PORT=1972
IRIS_NAMESPACE=USER
IRIS_USERNAME=_SYSTEM
IRIS_PASSWORD=SYS
EOF
```

### 4. Run Your First Query

```python
from iris_rag import create_pipeline

# Create pipeline with automatic validation
pipeline = create_pipeline('basic', validate_requirements=True)

# Load your documents
from iris_rag.core.models import Document

docs = [
    Document(
        page_content="RAG combines retrieval with generation for accurate AI responses.",
        metadata={"source": "rag_basics.pdf", "page": 1}
    ),
    Document(
        page_content="Vector search finds semantically similar content using embeddings.",
        metadata={"source": "vector_search.pdf", "page": 5}
    )
]

pipeline.load_documents(documents=docs)

# Query with LLM-generated answer
result = pipeline.query(
    query="What is RAG?",
    top_k=5,
    generate_answer=True
)

print(f"Answer: {result['answer']}")
print(f"Sources: {result['sources']}")
print(f"Retrieved: {len(result['retrieved_documents'])} documents")
```

## Unified API Across All Pipelines

**Switch RAG strategies with one line** - all pipelines share the same interface:

```python
from iris_rag import create_pipeline

# Try different strategies instantly
for pipeline_type in ['basic', 'basic_rerank', 'crag', 'multi_query_rrf', 'graphrag']:
    pipeline = create_pipeline(pipeline_type)

    result = pipeline.query(
        query="What are the latest cancer treatment approaches?",
        top_k=5,
        generate_answer=True
    )

    print(f"\n{pipeline_type.upper()}:")
    print(f"  Answer: {result['answer'][:150]}...")
    print(f"  Retrieved: {len(result['retrieved_documents'])} docs")
    print(f"  Confidence: {result['metadata'].get('confidence', 'N/A')}")
```

### Standardized Response Format

**100% LangChain & RAGAS compatible** responses:

```python
{
    "query": "What is diabetes?",
    "answer": "Diabetes is a chronic metabolic condition...",  # LLM answer
    "retrieved_documents": [Document(...)],                   # LangChain Documents
    "contexts": ["context 1", "context 2"],                   # RAGAS contexts
    "sources": ["medical.pdf p.12", "diabetes.pdf p.3"],     # Source citations
    "execution_time": 0.523,
    "metadata": {
        "num_retrieved": 5,
        "pipeline_type": "basic",
        "retrieval_method": "vector",
        "generated_answer": True,
        "processing_time": 0.523
    }
}
```

## Pipeline Deep Dives

### CRAG: Self-Correcting Retrieval

Automatically evaluates retrieval quality and falls back to web search when needed:

```python
from iris_rag import create_pipeline

pipeline = create_pipeline('crag')

# CRAG evaluates retrieved documents and uses web search if quality is low
result = pipeline.query(
    query="What happened in the 2024 Olympics opening ceremony?",
    top_k=5,
    generate_answer=True
)

# Check which retrieval method was used
print(f"Method: {result['metadata']['retrieval_method']}")  # 'vector' or 'web_search'
print(f"Confidence: {result['metadata']['confidence']}")     # 0.0 - 1.0
```

### HybridGraphRAG: Multi-Modal Search

Combines vector search, text search, and knowledge graph traversal:

```python
pipeline = create_pipeline('graphrag')

result = pipeline.query(
    query_text="cancer treatment targets",
    method="rrf",        # Reciprocal Rank Fusion across all methods
    vector_k=30,         # Top 30 from vector search
    text_k=30,           # Top 30 from text search
    graph_k=10,          # Top 10 from knowledge graph
    generate_answer=True
)

# Rich metadata includes entities and relationships
print(f"Entities: {result['metadata']['entities']}")
print(f"Relationships: {result['metadata']['relationships']}")
print(f"Graph depth: {result['metadata']['graph_depth']}")
```

### MultiQueryRRF: Multi-Perspective Retrieval

Expands queries into multiple perspectives and fuses results:

```python
pipeline = create_pipeline('multi_query_rrf')

# Automatically generates query variations and combines results
result = pipeline.query(
    query="How does machine learning work?",
    top_k=10,
    generate_answer=True
)

# See the generated query variations
print(f"Query variations: {result['metadata']['generated_queries']}")
print(f"Fusion method: {result['metadata']['fusion_method']}")  # 'rrf'
```

## Enterprise Features

### Production-Ready Database

**IRIS provides everything you need in one database:**

- โœ… Native vector search (no external vector DB needed)
- โœ… ACID transactions (your data is safe)
- โœ… SQL + NoSQL + Vector in one platform
- โœ… Horizontal scaling and clustering
- โœ… Enterprise-grade security and compliance

### Connection Pooling

**Automatic concurrency management:**

```python
from iris_rag.storage import IRISVectorStore

# Connection pool handles concurrency automatically
store = IRISVectorStore()

# Safe for multi-threaded applications
# Pool manages connections, no manual management needed
```

### Automatic Schema Management

**Database schema created and migrated automatically:**

```python
pipeline = create_pipeline('basic', validate_requirements=True)
# โœ… Checks database connection
# โœ… Validates schema exists
# โœ… Migrates to latest version if needed
# โœ… Reports validation results
```

### RAGAS Evaluation Built-In

**Measure your RAG pipeline performance:**

```bash
# Evaluate all pipelines on your data
make test-ragas-sample

# Generates detailed metrics:
# - Answer Correctness
# - Faithfulness
# - Context Precision
# - Context Recall
# - Answer Relevance
```

## Model Context Protocol (MCP) Support

**Expose RAG pipelines as MCP tools** for use with Claude Desktop and other MCP clients:

```bash
# Start MCP server
python -m iris_rag.mcp

# Available MCP tools:
# - rag_basic
# - rag_basic_rerank
# - rag_crag
# - rag_multi_query_rrf
# - rag_graphrag
# - rag_hybrid_graphrag
# - health_check
# - list_tools
```

Configure in Claude Desktop:

```json
{
  "mcpServers": {
    "iris-rag": {
      "command": "python",
      "args": ["-m", "iris_rag.mcp"],
      "env": {
        "OPENAI_API_KEY": "your-key"
      }
    }
  }
}
```

## Architecture Overview

```
iris_rag/
โ”œโ”€โ”€ core/              # Abstract base classes (RAGPipeline, VectorStore)
โ”œโ”€โ”€ pipelines/         # Pipeline implementations
โ”‚   โ”œโ”€โ”€ basic.py                    # BasicRAG
โ”‚   โ”œโ”€โ”€ basic_rerank.py             # Reranking pipeline
โ”‚   โ”œโ”€โ”€ crag.py                     # Corrective RAG
โ”‚   โ”œโ”€โ”€ multi_query_rrf.py          # Multi-query with RRF
โ”‚   โ”œโ”€โ”€ graphrag.py                 # Graph-based RAG
โ”‚   โ””โ”€โ”€ hybrid_graphrag.py          # Hybrid multi-modal
โ”œโ”€โ”€ storage/           # Vector store implementations
โ”‚   โ”œโ”€โ”€ vector_store_iris.py        # IRIS vector store
โ”‚   โ””โ”€โ”€ schema_manager.py           # Schema management
โ”œโ”€โ”€ mcp/              # Model Context Protocol server
โ”œโ”€โ”€ api/              # Production REST API
โ”œโ”€โ”€ services/         # Business logic (entity extraction, etc.)
โ”œโ”€โ”€ config/           # Configuration management
โ””โ”€โ”€ validation/       # Pipeline contract validation
```

## Documentation

๐Ÿ“š **Comprehensive documentation for every use case:**

- **[User Guide](docs/USER_GUIDE.md)** - Complete installation and usage
- **[API Reference](docs/API_REFERENCE.md)** - Detailed API documentation
- **[Pipeline Guide](docs/PIPELINE_GUIDE.md)** - When to use each pipeline
- **[MCP Integration](docs/MCP_INTEGRATION.md)** - Model Context Protocol setup
- **[Production Deployment](docs/PRODUCTION_DEPLOYMENT.md)** - Deployment checklist
- **[Development Guide](docs/DEVELOPMENT.md)** - Contributing and testing

## Performance Benchmarks

**Native IRIS vector search delivers:**

- ๐Ÿš€ **50-100x faster** than traditional solutions for hybrid search
- โšก **Sub-second queries** on millions of documents
- ๐Ÿ“Š **Linear scaling** with IRIS clustering
- ๐Ÿ’พ **10x less memory** than external vector databases

## Testing & Quality

```bash
# Run comprehensive test suite
make test

# Test specific categories
pytest tests/unit/           # Unit tests (fast)
pytest tests/integration/    # Integration tests (with IRIS)
pytest tests/contract/       # API contract validation

# Run with coverage
pytest --cov=iris_rag --cov-report=html
```

**For detailed testing documentation**, see [DEVELOPMENT.md](docs/DEVELOPMENT.md)

## Research & References

This implementation is based on peer-reviewed research:

- **Basic RAG**: Lewis et al., [Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks](https://arxiv.org/abs/2005.11401), NeurIPS 2020
- **CRAG**: Yan et al., [Corrective Retrieval Augmented Generation](https://arxiv.org/abs/2401.15884), arXiv 2024
- **GraphRAG**: Edge et al., [From Local to Global: A Graph RAG Approach](https://arxiv.org/abs/2404.16130), arXiv 2024
- **ColBERT**: Khattab & Zaharia, [ColBERT: Efficient and Effective Passage Search](https://arxiv.org/abs/2004.12832), SIGIR 2020

## Contributing

We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for:

- Development setup
- Testing guidelines
- Code style and standards
- Pull request process

## Community & Support

- ๐Ÿ’ฌ **Discussions**: [GitHub Discussions](https://github.com/intersystems-community/iris-rag-templates/discussions)
- ๐Ÿ› **Issues**: [GitHub Issues](https://github.com/intersystems-community/iris-rag-templates/issues)
- ๐Ÿ“– **Documentation**: [Full Documentation](docs/)
- ๐Ÿข **Enterprise Support**: [InterSystems Support](https://www.intersystems.com/support/)

## License

MIT License - see [LICENSE](LICENSE) for details.

---

**Built with โค๏ธ by the InterSystems Community**

*Powering intelligent applications with enterprise-grade RAG*

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/intersystems/rag-templates",
    "name": "iris-vector-rag",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "Thomas Dyar <thomas.dyar@intersystems.com>",
    "keywords": "rag, retrieval-augmented-generation, intersystems, iris, vector-database, llm, ai, machine-learning, nlp, embeddings, semantic-search, mcp, model-context-protocol",
    "author": "InterSystems",
    "author_email": "InterSystems <support@intersystems.com>",
    "download_url": "https://files.pythonhosted.org/packages/fc/51/318b930afb154625f8de5f770374da487ad7713ade08ab8fe056b3fe63f3/iris_vector_rag-0.2.0.tar.gz",
    "platform": null,
    "description": "# IRIS Vector RAG Templates\n\n**Production-ready Retrieval-Augmented Generation (RAG) pipelines powered by InterSystems IRIS Vector Search**\n\nBuild intelligent applications that combine large language models with your enterprise data using battle-tested RAG patterns and native vector search capabilities.\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n[![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)\n[![InterSystems IRIS](https://img.shields.io/badge/IRIS-2024.1+-purple.svg)](https://www.intersystems.com/products/intersystems-iris/)\n\n## Why IRIS Vector RAG?\n\n\ud83d\ude80 **Production-Ready** - Six proven RAG architectures ready to deploy, not research prototypes\n\n\u26a1 **Blazing Fast** - Native IRIS vector search with HNSW indexing, no external vector databases needed\n\n\ud83d\udd27 **Unified API** - Swap between RAG strategies with a single line of code\n\n\ud83d\udcca **Enterprise-Grade** - ACID transactions, connection pooling, and horizontal scaling built-in\n\n\ud83c\udfaf **100% Compatible** - Works seamlessly with LangChain, RAGAS, and your existing ML stack\n\n\ud83e\uddea **Fully Validated** - Comprehensive test suite with automated contract validation\n\n## Available RAG Pipelines\n\n| Pipeline Type | Use Case | Retrieval Method | When to Use |\n|---------------|----------|------------------|-------------|\n| **basic** | Standard retrieval | Vector similarity | General Q&A, getting started, baseline comparisons |\n| **basic_rerank** | Improved precision | Vector + cross-encoder reranking | Higher accuracy requirements, legal/medical domains |\n| **crag** | Self-correcting | Vector + evaluation + web search fallback | Dynamic knowledge, fact-checking, current events |\n| **graphrag** | Knowledge graphs | Vector + text + graph + RRF fusion | Complex entity relationships, research, medical knowledge |\n| **multi_query_rrf** | Multi-perspective | Query expansion + reciprocal rank fusion | Complex queries, comprehensive coverage needed |\n| **pylate_colbert** | Fine-grained matching | ColBERT late interaction embeddings | Nuanced semantic understanding, high precision |\n\n## Quick Start\n\n### 1. Install\n\n```bash\n# Clone repository\ngit clone https://github.com/intersystems-community/iris-rag-templates.git\ncd iris-rag-templates\n\n# Setup environment (requires uv package manager)\nmake setup-env\nmake install\nsource .venv/bin/activate\n```\n\n### 2. Start IRIS Database\n\n```bash\n# Start IRIS with Docker Compose\ndocker-compose up -d\n\n# Initialize database schema\nmake setup-db\n\n# Optional: Load sample medical data\nmake load-data\n```\n\n### 3. Configure API Keys\n\n```bash\ncat > .env << 'EOF'\nOPENAI_API_KEY=your-key-here\nANTHROPIC_API_KEY=your-key-here  # Optional, for Claude models\nIRIS_HOST=localhost\nIRIS_PORT=1972\nIRIS_NAMESPACE=USER\nIRIS_USERNAME=_SYSTEM\nIRIS_PASSWORD=SYS\nEOF\n```\n\n### 4. Run Your First Query\n\n```python\nfrom iris_rag import create_pipeline\n\n# Create pipeline with automatic validation\npipeline = create_pipeline('basic', validate_requirements=True)\n\n# Load your documents\nfrom iris_rag.core.models import Document\n\ndocs = [\n    Document(\n        page_content=\"RAG combines retrieval with generation for accurate AI responses.\",\n        metadata={\"source\": \"rag_basics.pdf\", \"page\": 1}\n    ),\n    Document(\n        page_content=\"Vector search finds semantically similar content using embeddings.\",\n        metadata={\"source\": \"vector_search.pdf\", \"page\": 5}\n    )\n]\n\npipeline.load_documents(documents=docs)\n\n# Query with LLM-generated answer\nresult = pipeline.query(\n    query=\"What is RAG?\",\n    top_k=5,\n    generate_answer=True\n)\n\nprint(f\"Answer: {result['answer']}\")\nprint(f\"Sources: {result['sources']}\")\nprint(f\"Retrieved: {len(result['retrieved_documents'])} documents\")\n```\n\n## Unified API Across All Pipelines\n\n**Switch RAG strategies with one line** - all pipelines share the same interface:\n\n```python\nfrom iris_rag import create_pipeline\n\n# Try different strategies instantly\nfor pipeline_type in ['basic', 'basic_rerank', 'crag', 'multi_query_rrf', 'graphrag']:\n    pipeline = create_pipeline(pipeline_type)\n\n    result = pipeline.query(\n        query=\"What are the latest cancer treatment approaches?\",\n        top_k=5,\n        generate_answer=True\n    )\n\n    print(f\"\\n{pipeline_type.upper()}:\")\n    print(f\"  Answer: {result['answer'][:150]}...\")\n    print(f\"  Retrieved: {len(result['retrieved_documents'])} docs\")\n    print(f\"  Confidence: {result['metadata'].get('confidence', 'N/A')}\")\n```\n\n### Standardized Response Format\n\n**100% LangChain & RAGAS compatible** responses:\n\n```python\n{\n    \"query\": \"What is diabetes?\",\n    \"answer\": \"Diabetes is a chronic metabolic condition...\",  # LLM answer\n    \"retrieved_documents\": [Document(...)],                   # LangChain Documents\n    \"contexts\": [\"context 1\", \"context 2\"],                   # RAGAS contexts\n    \"sources\": [\"medical.pdf p.12\", \"diabetes.pdf p.3\"],     # Source citations\n    \"execution_time\": 0.523,\n    \"metadata\": {\n        \"num_retrieved\": 5,\n        \"pipeline_type\": \"basic\",\n        \"retrieval_method\": \"vector\",\n        \"generated_answer\": True,\n        \"processing_time\": 0.523\n    }\n}\n```\n\n## Pipeline Deep Dives\n\n### CRAG: Self-Correcting Retrieval\n\nAutomatically evaluates retrieval quality and falls back to web search when needed:\n\n```python\nfrom iris_rag import create_pipeline\n\npipeline = create_pipeline('crag')\n\n# CRAG evaluates retrieved documents and uses web search if quality is low\nresult = pipeline.query(\n    query=\"What happened in the 2024 Olympics opening ceremony?\",\n    top_k=5,\n    generate_answer=True\n)\n\n# Check which retrieval method was used\nprint(f\"Method: {result['metadata']['retrieval_method']}\")  # 'vector' or 'web_search'\nprint(f\"Confidence: {result['metadata']['confidence']}\")     # 0.0 - 1.0\n```\n\n### HybridGraphRAG: Multi-Modal Search\n\nCombines vector search, text search, and knowledge graph traversal:\n\n```python\npipeline = create_pipeline('graphrag')\n\nresult = pipeline.query(\n    query_text=\"cancer treatment targets\",\n    method=\"rrf\",        # Reciprocal Rank Fusion across all methods\n    vector_k=30,         # Top 30 from vector search\n    text_k=30,           # Top 30 from text search\n    graph_k=10,          # Top 10 from knowledge graph\n    generate_answer=True\n)\n\n# Rich metadata includes entities and relationships\nprint(f\"Entities: {result['metadata']['entities']}\")\nprint(f\"Relationships: {result['metadata']['relationships']}\")\nprint(f\"Graph depth: {result['metadata']['graph_depth']}\")\n```\n\n### MultiQueryRRF: Multi-Perspective Retrieval\n\nExpands queries into multiple perspectives and fuses results:\n\n```python\npipeline = create_pipeline('multi_query_rrf')\n\n# Automatically generates query variations and combines results\nresult = pipeline.query(\n    query=\"How does machine learning work?\",\n    top_k=10,\n    generate_answer=True\n)\n\n# See the generated query variations\nprint(f\"Query variations: {result['metadata']['generated_queries']}\")\nprint(f\"Fusion method: {result['metadata']['fusion_method']}\")  # 'rrf'\n```\n\n## Enterprise Features\n\n### Production-Ready Database\n\n**IRIS provides everything you need in one database:**\n\n- \u2705 Native vector search (no external vector DB needed)\n- \u2705 ACID transactions (your data is safe)\n- \u2705 SQL + NoSQL + Vector in one platform\n- \u2705 Horizontal scaling and clustering\n- \u2705 Enterprise-grade security and compliance\n\n### Connection Pooling\n\n**Automatic concurrency management:**\n\n```python\nfrom iris_rag.storage import IRISVectorStore\n\n# Connection pool handles concurrency automatically\nstore = IRISVectorStore()\n\n# Safe for multi-threaded applications\n# Pool manages connections, no manual management needed\n```\n\n### Automatic Schema Management\n\n**Database schema created and migrated automatically:**\n\n```python\npipeline = create_pipeline('basic', validate_requirements=True)\n# \u2705 Checks database connection\n# \u2705 Validates schema exists\n# \u2705 Migrates to latest version if needed\n# \u2705 Reports validation results\n```\n\n### RAGAS Evaluation Built-In\n\n**Measure your RAG pipeline performance:**\n\n```bash\n# Evaluate all pipelines on your data\nmake test-ragas-sample\n\n# Generates detailed metrics:\n# - Answer Correctness\n# - Faithfulness\n# - Context Precision\n# - Context Recall\n# - Answer Relevance\n```\n\n## Model Context Protocol (MCP) Support\n\n**Expose RAG pipelines as MCP tools** for use with Claude Desktop and other MCP clients:\n\n```bash\n# Start MCP server\npython -m iris_rag.mcp\n\n# Available MCP tools:\n# - rag_basic\n# - rag_basic_rerank\n# - rag_crag\n# - rag_multi_query_rrf\n# - rag_graphrag\n# - rag_hybrid_graphrag\n# - health_check\n# - list_tools\n```\n\nConfigure in Claude Desktop:\n\n```json\n{\n  \"mcpServers\": {\n    \"iris-rag\": {\n      \"command\": \"python\",\n      \"args\": [\"-m\", \"iris_rag.mcp\"],\n      \"env\": {\n        \"OPENAI_API_KEY\": \"your-key\"\n      }\n    }\n  }\n}\n```\n\n## Architecture Overview\n\n```\niris_rag/\n\u251c\u2500\u2500 core/              # Abstract base classes (RAGPipeline, VectorStore)\n\u251c\u2500\u2500 pipelines/         # Pipeline implementations\n\u2502   \u251c\u2500\u2500 basic.py                    # BasicRAG\n\u2502   \u251c\u2500\u2500 basic_rerank.py             # Reranking pipeline\n\u2502   \u251c\u2500\u2500 crag.py                     # Corrective RAG\n\u2502   \u251c\u2500\u2500 multi_query_rrf.py          # Multi-query with RRF\n\u2502   \u251c\u2500\u2500 graphrag.py                 # Graph-based RAG\n\u2502   \u2514\u2500\u2500 hybrid_graphrag.py          # Hybrid multi-modal\n\u251c\u2500\u2500 storage/           # Vector store implementations\n\u2502   \u251c\u2500\u2500 vector_store_iris.py        # IRIS vector store\n\u2502   \u2514\u2500\u2500 schema_manager.py           # Schema management\n\u251c\u2500\u2500 mcp/              # Model Context Protocol server\n\u251c\u2500\u2500 api/              # Production REST API\n\u251c\u2500\u2500 services/         # Business logic (entity extraction, etc.)\n\u251c\u2500\u2500 config/           # Configuration management\n\u2514\u2500\u2500 validation/       # Pipeline contract validation\n```\n\n## Documentation\n\n\ud83d\udcda **Comprehensive documentation for every use case:**\n\n- **[User Guide](docs/USER_GUIDE.md)** - Complete installation and usage\n- **[API Reference](docs/API_REFERENCE.md)** - Detailed API documentation\n- **[Pipeline Guide](docs/PIPELINE_GUIDE.md)** - When to use each pipeline\n- **[MCP Integration](docs/MCP_INTEGRATION.md)** - Model Context Protocol setup\n- **[Production Deployment](docs/PRODUCTION_DEPLOYMENT.md)** - Deployment checklist\n- **[Development Guide](docs/DEVELOPMENT.md)** - Contributing and testing\n\n## Performance Benchmarks\n\n**Native IRIS vector search delivers:**\n\n- \ud83d\ude80 **50-100x faster** than traditional solutions for hybrid search\n- \u26a1 **Sub-second queries** on millions of documents\n- \ud83d\udcca **Linear scaling** with IRIS clustering\n- \ud83d\udcbe **10x less memory** than external vector databases\n\n## Testing & Quality\n\n```bash\n# Run comprehensive test suite\nmake test\n\n# Test specific categories\npytest tests/unit/           # Unit tests (fast)\npytest tests/integration/    # Integration tests (with IRIS)\npytest tests/contract/       # API contract validation\n\n# Run with coverage\npytest --cov=iris_rag --cov-report=html\n```\n\n**For detailed testing documentation**, see [DEVELOPMENT.md](docs/DEVELOPMENT.md)\n\n## Research & References\n\nThis implementation is based on peer-reviewed research:\n\n- **Basic RAG**: Lewis et al., [Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks](https://arxiv.org/abs/2005.11401), NeurIPS 2020\n- **CRAG**: Yan et al., [Corrective Retrieval Augmented Generation](https://arxiv.org/abs/2401.15884), arXiv 2024\n- **GraphRAG**: Edge et al., [From Local to Global: A Graph RAG Approach](https://arxiv.org/abs/2404.16130), arXiv 2024\n- **ColBERT**: Khattab & Zaharia, [ColBERT: Efficient and Effective Passage Search](https://arxiv.org/abs/2004.12832), SIGIR 2020\n\n## Contributing\n\nWe welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for:\n\n- Development setup\n- Testing guidelines\n- Code style and standards\n- Pull request process\n\n## Community & Support\n\n- \ud83d\udcac **Discussions**: [GitHub Discussions](https://github.com/intersystems-community/iris-rag-templates/discussions)\n- \ud83d\udc1b **Issues**: [GitHub Issues](https://github.com/intersystems-community/iris-rag-templates/issues)\n- \ud83d\udcd6 **Documentation**: [Full Documentation](docs/)\n- \ud83c\udfe2 **Enterprise Support**: [InterSystems Support](https://www.intersystems.com/support/)\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details.\n\n---\n\n**Built with \u2764\ufe0f by the InterSystems Community**\n\n*Powering intelligent applications with enterprise-grade RAG*\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Dead-simple library for building RAG applications with InterSystems IRIS",
    "version": "0.2.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/intersystems/rag-templates/issues",
        "Changelog": "https://github.com/intersystems/rag-templates/blob/main/CHANGELOG.md",
        "Documentation": "https://github.com/intersystems/rag-templates/docs",
        "Homepage": "https://github.com/intersystems/rag-templates",
        "Repository": "https://github.com/intersystems/rag-templates"
    },
    "split_keywords": [
        "rag",
        " retrieval-augmented-generation",
        " intersystems",
        " iris",
        " vector-database",
        " llm",
        " ai",
        " machine-learning",
        " nlp",
        " embeddings",
        " semantic-search",
        " mcp",
        " model-context-protocol"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fc51318b930afb154625f8de5f770374da487ad7713ade08ab8fe056b3fe63f3",
                "md5": "4ef46ea85701e65c62b022bff2159242",
                "sha256": "b1af008c8588166936cb70e2bb1db398bb0d004ff6a6f2c0d8d2f30c743ad851"
            },
            "downloads": -1,
            "filename": "iris_vector_rag-0.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "4ef46ea85701e65c62b022bff2159242",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 227250,
            "upload_time": "2025-11-05T18:32:55",
            "upload_time_iso_8601": "2025-11-05T18:32:55.553183Z",
            "url": "https://files.pythonhosted.org/packages/fc/51/318b930afb154625f8de5f770374da487ad7713ade08ab8fe056b3fe63f3/iris_vector_rag-0.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-11-05 18:32:55",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "intersystems",
    "github_project": "rag-templates",
    "github_not_found": true,
    "lcname": "iris-vector-rag"
}
        
Elapsed time: 1.77371s