https://github.com/byerlikaya/smartrag
SmartRAG is a production-ready .NET 9.0 library that provides a complete Retrieval-Augmented Generation (RAG) solution. Features include multi-provider AI support (OpenAI, Anthropic, Gemini), enterprise vector storage (Qdrant, Redis, SQLite), and intelligent document processing (PDF, Word, Text).
https://github.com/byerlikaya/smartrag
ai anthropic csharp document-processing document-qa dotnet enterprise-ai gemini llm machine-learning natural-language-processing openai pdf-parser qdrant rag redis retrieval-augmented-generation vector-database word-parser
Last synced: 4 months ago
JSON representation
SmartRAG is a production-ready .NET 9.0 library that provides a complete Retrieval-Augmented Generation (RAG) solution. Features include multi-provider AI support (OpenAI, Anthropic, Gemini), enterprise vector storage (Qdrant, Redis, SQLite), and intelligent document processing (PDF, Word, Text).
- Host: GitHub
- URL: https://github.com/byerlikaya/smartrag
- Owner: byerlikaya
- License: mit
- Created: 2025-08-15T18:38:32.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-08-22T14:22:40.000Z (10 months ago)
- Last Synced: 2025-08-23T00:40:03.683Z (10 months ago)
- Topics: ai, anthropic, csharp, document-processing, document-qa, dotnet, enterprise-ai, gemini, llm, machine-learning, natural-language-processing, openai, pdf-parser, qdrant, rag, redis, retrieval-augmented-generation, vector-database, word-parser
- Language: C#
- Homepage: https://www.nuget.org/packages/SmartRAG
- Size: 345 KB
- Stars: 0
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
Multi-Modal RAG for .NET β query databases, documents, images & audio in natural language
## π **Quick Start**
### **1. Install SmartRAG**
```bash
dotnet add package SmartRAG
```
### **2. Setup**
```csharp
// 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**
```json
{
"SmartRAG": {
"DatabaseConnections": [
{
"Name": "Sales",
"ConnectionString": "Server=localhost;Database=Sales;...",
"DatabaseType": "SqlServer"
}
]
}
}
```
### **4. Upload documents & ask questions**
```csharp
// 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**
```json
{
"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](#-examples--testing)
### **Dashboard (Web UI)**
Add a browser-based dashboard for document management and chat:
```bash
dotnet add package SmartRAG.Dashboard
```
```csharp
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](https://byerlikaya.github.io/SmartRAG/en/dashboard.html) 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**
```csharp
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**
```csharp
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**
```csharp
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:
```bash
# 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](examples/SmartRAG.Demo/README.md)** - Complete demo application guide and setup instructions
#### **π³ Docker Setup (Recommended)**
For the easiest experience with all services pre-configured:
```bash
# 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](examples/SmartRAG.Demo/README-Docker.md)** - 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](https://byerlikaya.github.io/SmartRAG/en/examples)** - 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](LICENSE) file for details.
**Built with β€οΈ by BarΔ±Ε Yerlikaya**
Made in Turkey πΉπ· | [Contact](mailto:b.yerlikaya@outlook.com) | [LinkedIn](https://www.linkedin.com/in/barisyerlikaya/)