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

Β 

History

374 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

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

Dashboard (Web UI)

Add a browser-based dashboard for document management and chat:

dotnet add package SmartRAG.Dashboard
builder.Services.AddSmartRag(builder.Configuration);
builder.Services.AddSmartRagDashboard(options => { options.Path = "/smartrag"; });

app.UseSmartRagDashboard("/smartrag");
app.MapSmartRagDashboard("/smartrag");

Then open https://localhost:5000/smartrag to list/upload/delete documents and chat with the active AI model. By default the dashboard is only enabled in Development. For production, protect the path with your own auth or use AuthorizationFilter. See Dashboard documentation for security and options.

πŸ† 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

 
 
 

Contributors