Knowledge Assistant
A local AI assistant that reads documents dropped into a folder into SQL Server, answers questions with sources and learns taught facts after administrator approval.
Design and development · 2026
No live demo: the app runs with a local AI model and SQL Server, so it is not published on shared hosting. Screenshots were taken from a local install with sample documents.
The brief
In a team, knowledge is scattered: manuals, spreadsheets, presentations, documents attached to emails. The answer to a question is often written down somewhere, but nobody remembers which file it is in. Uploading documents to a cloud AI, on the other hand, means company knowledge leaves the building.
What I did
I built an assistant that watches a folder where documents are dropped and processes their content into a database. When asked a question it finds the relevant passages and gives them to a local language model; in the answer it shows which document each piece of information came from with numbered citations, and clicking a citation opens the source text. Users can teach new information by saying “hatırla:” (“remember:”); that information isn’t used in answers until an administrator approves it.
Result
The app works and passes 42 unit tests. Adding, changing, moving and deleting files in the folder; uploading from the web; sourced and streamed answers; and approved learning were verified end to end.
Technical decisions
ASP.NET Core with .NET 10, Blazor Server and a Fluent UI interface; SQL Server with Entity Framework Core. Search combines semantic similarity with a keyword search adapted to Turkish. The language model runs locally with Ollama; files and questions never leave the machine.
- ASP.NET Core
- Blazor
- EF Core
- SQL Server
- Ollama
Highlights
- Detects added, changed, moved and deleted documents by itself
- Reads PDF, Word, Excel, PowerPoint and plain text
- [1], [2] citations next to every claim
- Facts taught with “hatırla:” join the pool after administrator approval
- Files never leave the machine


Thinking of something similar?