Retrieval-Augmented Generation (RAG) system built with Microsoft Kernel Memory and Semantic Kernel. Transform your documents into an intelligent Q&A assistant in minutes.
- 🧠 Dual AI Stack - Kernel Memory for RAG + Semantic Kernel for advanced prompting
- 💬 Multi-Session Chat - Conversation history with follow-up question suggestions
- 💾 Flexible Storage - Choose between SimpleVectorDb (zero-config) or Qdrant (high-performance)
- 🎯 Smart Validation - AI-powered answer quality assessment
┌─────────────────────────────────────────────────────────┐
│ AskBase API (.NET 8) │
├─────────────────────────────────────────────────────────┤
│ Controllers │ ChatController │ SystemController │
├─────────────────────────────────────────────────────────┤
│ Services │ KernelMemory │ SemanticKernel │
│ │ SessionManager │ ConversationManager │
├─────────────────────────────────────────────────────────┤
│ AI Layer │ Kernel Memory (RAG Pipeline) │
│ │ Semantic Kernel (Prompt Engineering) │
├─────────────────────────────────────────────────────────┤
│ Vector Store │ SimpleVectorDb │ Qdrant │
├─────────────────────────────────────────────────────────┤
│ AI Models │ Azure OpenAI (GPT-4o + Embeddings) │
└─────────────────────────────────────────────────────────┘
Interactive AI assistant with source attribution and follow-up suggestions
- .NET 8 SDK
- Azure OpenAI (with GPT-4o and text-embedding-ada-002 deployments)
- Optional: Docker (only if using Qdrant)
-
Clone the repository
git clone https://github.com/ramital/AskBase.git cd AskBase -
Configure Azure OpenAI
Update
appsettings.json:{ "OpenAI": { "ApiKey": "your-azure-openai-key", "Endpoint": "https://your-resource.openai.azure.com/" } } -
Add your documents
# Place documents in the Documents folder cp your-files.pdf Documents/ -
Run the application
dotnet run --project AskBase
-
Open your browser
http://localhost:5000
Navigate to http://localhost:5000 for an intuitive chat interface with:
- Real-time document Q&A
- Conversation history
- AI-suggested follow-up questions
- Source citations
Choose your vector database in appsettings.json:
SimpleVectorDb (Default - No Docker Required):
{
"KernelMemory": {
"VectorStore": "SimpleVectorDb",
"SimpleVectorDb": {
"StoragePath": "Documents/.km_vectors"
}
}
}Qdrant (High Performance):
{
"KernelMemory": {
"VectorStore": "Qdrant",
"Qdrant": {
"Endpoint": "http://localhost:6333"
}
}
}Start Qdrant with Docker:
docker run -d -p 6333:6333 qdrant/qdrant- Use Azure Managed Identity for OpenAI authentication
- Deploy Qdrant on Azure Container Apps for scale
- Store secrets in Azure Key Vault
- Enable Application Insights for monitoring
| Component | Technology |
|---|---|
| Framework | .NET 8 / ASP.NET Core |
| AI Orchestration | Microsoft Kernel Memory |
| Prompt Engineering | Microsoft Semantic Kernel |
| Vector Database | SimpleVectorDb / Qdrant |
| LLM | Azure OpenAI (GPT-4o) |
| Embeddings | text-embedding-ada-002 |
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License
