Skip to content

⚑ Production-ready .NET Standard 2.1 RAG library with πŸ€– multi-AI provider support, 🏒 enterprise vector storage, πŸ“„ intelligent document processing, and πŸ—„οΈ multi-database query coordination. 🌍 Cross-platform compatible.

License

Notifications You must be signed in to change notification settings

byerlikaya/SmartRAG

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SmartRAG Logo

Multi-Modal RAG for .NET β€” query databases, documents, images & audio in natural language

NuGet Version Downloads GitHub Stars License

Build Status .NET Standard 2.1

Documentation Turkish README

πŸš€ Quick Start

1. Install SmartRAG

dotnet add package SmartRAG

2. Setup

// For Web API applications
builder.Services.AddSmartRag(builder.Configuration, options =>
{
    options.AIProvider = AIProvider.OpenAI;
    options.StorageProvider = StorageProvider.InMemory;
});

// For Console applications
var serviceProvider = services.UseSmartRag(
    configuration,
    aiProvider: AIProvider.OpenAI,
    storageProvider: StorageProvider.InMemory
);

3. Configure databases in appsettings.json

{
  "SmartRAG": {
    "DatabaseConnections": [
      {
        "Name": "Sales",
        "ConnectionString": "Server=localhost;Database=Sales;...",
        "DatabaseType": "SqlServer"
      }
    ]
    }
}

4. Upload documents & ask questions

// Upload document
var document = await documentService.UploadDocumentAsync(
    fileStream, fileName, contentType, "user-123"
);

// Unified query across databases, documents, images, and audio
var response = await searchService.QueryIntelligenceAsync(
    "Show me all customers who made purchases over $10,000 in the last quarter, their payment history, and any complaints or feedback they provided"
);
// β†’ AI automatically analyzes query intent and routes intelligently:
//   - High confidence + database queries β†’ Searches databases only
//   - High confidence + document queries β†’ Searches documents only  
//   - Medium confidence β†’ Searches both databases and documents, merges results
// β†’ Queries SQL Server (orders), MySQL (payments), PostgreSQL (customer data)
// β†’ Analyzes uploaded PDF contracts, OCR-scanned invoices, and transcribed call recordings
// β†’ Provides unified answer combining all sources

5. (Optional) Configure MCP Client & File Watcher

{
  "SmartRAG": {
    "Features": {
      "EnableMcpSearch": true,
      "EnableFileWatcher": true
    },
    "McpServers": [
      {
        "ServerId": "example-server",
        "Endpoint": "https://mcp.example.com/api",
        "TransportType": "Http"
      }
    ],
    "WatchedFolders": [
      {
        "FolderPath": "/path/to/documents",
        "AllowedExtensions": [".pdf", ".docx", ".txt"],
        "AutoUpload": true
      }
    ],
    "DefaultLanguage": "en"
  }
}

Want to test SmartRAG immediately? β†’ Jump to Examples & Testing

πŸ† Why SmartRAG?

🎯 Unified Query Intelligence - Single query searches across databases, documents, images, and audio automatically

🧠 Smart Hybrid Routing - AI analyzes query intent and automatically determines optimal search strategy

πŸ—„οΈ Multi-Database RAG - Query multiple databases simultaneously with natural language

πŸ“„ Multi-Modal Intelligence - PDF, Word, Excel, Images (OCR), Audio (Speech-to-Text), and more

πŸ”Œ MCP Client Integration - Connect to external MCP servers and extend capabilities with external tools

πŸ“ Automatic File Watching - Monitor folders and automatically index new documents without manual uploads

🧩 Modular Architecture - Strategy Pattern for SQL dialects, scoring, and file parsing

🏠 100% Local Processing - GDPR, KVKK, HIPAA compliant

πŸš€ Production Ready - Enterprise-grade, thread-safe, high performance

🎯 Real-World Use Cases

1. Banking - Customer Financial Profile

var answer = await searchService.QueryIntelligenceAsync(
    "Which customers have overdue payments and what's their total outstanding balance?"
);
// β†’ Queries Customer DB, Payment DB, Account DB and combines results
// β†’ Provides comprehensive financial risk assessment for credit decisions

2. Healthcare - Patient Care Management

var answer = await searchService.QueryIntelligenceAsync(
    "Show me all patients with diabetes who haven't had their HbA1c checked in 6 months"
);
// β†’ Combines Patient DB, Lab Results DB, Appointment DB and identifies at-risk patients
// β†’ Ensures preventive care compliance and reduces complications

3. Inventory - Supply Chain Optimization

var answer = await searchService.QueryIntelligenceAsync(
    "Which products are running low on stock and which suppliers can restock them fastest?"
);
// β†’ Analyzes Inventory DB, Supplier DB, Order History DB and provides restocking recommendations
// β†’ Prevents stockouts and optimizes supply chain efficiency

πŸš€ What Makes SmartRAG Special?

  • Native multi-database RAG capabilities for .NET
  • Automatic schema detection across different database types
  • 100% local processing with Ollama and Whisper.net
  • Enterprise-ready with comprehensive error handling and logging
  • Cross-database queries without manual SQL writing
  • Multi-modal intelligence combining documents, databases, and AI
  • MCP Client integration for extending capabilities with external tools
  • Automatic file watching for real-time document indexing

πŸ§ͺ Examples & Testing

SmartRAG provides comprehensive example applications for different use cases:

πŸ“ Available Examples

examples/
β”œβ”€β”€ SmartRAG.API/          # Complete REST API with Swagger UI
└── SmartRAG.Demo/         # Interactive console application

πŸš€ Quick Test with Demo

Want to see SmartRAG in action immediately? Try our interactive console demo:

# Clone and run the demo
git clone https://github.com/byerlikaya/SmartRAG.git
cd SmartRAG/examples/SmartRAG.Demo
dotnet run

Prerequisites: You need to have databases and AI services running locally, or use Docker for easy setup.

πŸ“– SmartRAG.Demo README - Complete demo application guide and setup instructions

🐳 Docker Setup (Recommended)

For the easiest experience with all services pre-configured:

# Start all services (SQL Server, MySQL, PostgreSQL, Ollama, Qdrant, Redis)
docker-compose up -d

# Setup AI models
docker exec -it smartrag-ollama ollama pull llama3.2
docker exec -it smartrag-ollama ollama pull nomic-embed-text

πŸ“š Complete Docker Setup Guide - Detailed Docker configuration, troubleshooting, and management

πŸ“‹ Demo Features & Steps:

πŸ”— Database Management:

  • Step 1-2: Show connections & health check
  • Step 3-5: Create test databases (SQL Server, MySQL, PostgreSQL)
  • Step 6: Create SQLite test database
  • Step 7: View database schemas and relationships

πŸ€– AI & Query Testing:

  • Step 8: Query analysis - see how natural language converts to SQL
  • Step 9: Automatic test queries - pre-built scenarios
  • Step 10: Multi-database AI queries - ask questions across all databases

🏠 Local AI Setup:

  • Step 11: Setup Ollama models for 100% local processing
  • Step 12: Test vector stores (InMemory, FileSystem, Redis, SQLite, Qdrant)

πŸ“„ Document Processing:

  • Step 13: Upload documents (PDF, Word, Excel, Images, Audio)
  • Step 14: List and manage uploaded documents
  • Step 15: Clear documents for fresh testing
  • Step 16: Conversational Assistant - combine databases + documents + chat
  • Step 17: MCP Integration - list tools and run MCP queries

πŸ“ File Watcher:

  • Automatic folder monitoring for new documents
  • Real-time document indexing
  • Duplicate detection and prevention

Perfect for: Quick evaluation, proof-of-concept, team demos, learning SmartRAG capabilities

πŸ“š Complete Examples & Testing Guide - Step-by-step tutorials and test scenarios

🎯 Supported Data Sources

πŸ“Š Databases: SQL Server, MySQL, PostgreSQL, SQLite
πŸ“„ Documents: PDF, Word, Excel, PowerPoint, Images, Audio
πŸ€– AI Models: OpenAI, Anthropic, Gemini, Azure OpenAI, Ollama (local), LM Studio
πŸ—„οΈ Vector Stores: Qdrant, Redis, InMemory
πŸ’¬ Conversation Storage: Redis, SQLite, FileSystem, InMemory (independent from document storage)
πŸ”Œ External Integrations: MCP (Model Context Protocol) servers for extended tool capabilities
πŸ“ File Monitoring: Automatic folder watching with real-time document indexing

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

Built with ❀️ by Barış Yerlikaya

Made in Turkey πŸ‡ΉπŸ‡· | Contact | LinkedIn

About

⚑ Production-ready .NET Standard 2.1 RAG library with πŸ€– multi-AI provider support, 🏒 enterprise vector storage, πŸ“„ intelligent document processing, and πŸ—„οΈ multi-database query coordination. 🌍 Cross-platform compatible.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Languages