Most “chat with your data” systems make the same mistake: they treat an LLM as if it were a database. They shove rows into context, embed chunks, or pick “representative samples” and hope the model can infer structure, quality, and truth from anecdotes. It…
This is Part 3 of the DocSummarizer series: Part 1: Building a Document Summarizer with RAG - The architecture and why the pipeline approach beats naive LLM calls Part 2: Using the Tool - Quick-start guide for the CLI Part 3: Advanced Concepts (this article) -…
GitHub release .NET Version This is Part 2 of the DocSummarizer series. See Part 1 for the architecture and patterns, or Part 3 for the deep technical dive into embeddings and retrieval. Turn documents or URLs into evidence-grounded summaries - for humans or…
Here's the mistake everyone makes with document summarization: they extract the text and send as much as fits to an LLM. The LLM does its best with whatever landed in context, structure gets flattened, and the summary gets increasingly generic as documents get…
📌 Note: This article teaches the fundamentals of web content extraction with LLMs using the simplest possible approach. For production use cases (web summarization, document analysis, agent tools), see DocSummarizer GitHub release - it implements the…
Series: Local LLMs for Data - Part 1 of 2 Here's the mistake everyone makes: they try to feed their CSV into an LLM. Don't. LLMs should generate queries, not consume data. You've got a 500MB CSV file and want to ask "What's the average order value by region?"…
I'm a .NET developer. When I started building LLM-powered systems, everyone pointed me toward LangChain. "It's the standard," they said. "All the examples use it." And they were right - if you're in the Python ecosystem, LangChain is everywhere. But here's the…
Native AOT promises to turn your .NET applications into tiny, self-contained executables that start instantly and run anywhere—no runtime installation required. It's magic when it works. But add SQLite to the mix and suddenly you're debugging cryptic…
Welcome to Part 9! In previous parts, we've built a robust RAG system that processes markdown blog posts and makes them searchable through semantic embeddings. Now it's time to expand our capabilities with Docling - a powerful document processing library that…
Well this has been my obsession for the past week. See the previous parts and what led to this; 'What if an LRU was an execution context.'. Now it's a set of 30 Nuget packages covering most major concurrent execution patterns (in TINY 5-10 line packages). Get…