A Ten Commandments–Compliant Architecture In which we build a voice-to-form system that doesn't hand the keys to the AI kingdom Here's the thing about voice interfaces: everyone wants them, nobody trusts them. And they're right not to. Most voice forms fail…
This is Part 5 of the DocSummarizer series, and it's also the culmination of the GraphRAG series and Semantic Search series. We're combining everything into a deployable web application. 🚨🚨 PREVIEW ARTICLE 🚨🚨 Still working out some kinks and adding…
In Part 1 we covered the philosophy: transparent segmentation without PII. Part 2 covers session profiles, signals, and segment definitions. But first: how do you validate any of this without ever touching real customer data? For this series I generate a…
NuGet npm .NET Node.js This is Part 4 of the DocSummarizer series. See Part 1 for the architecture, Part 2 for the CLI tool, or Part 3 for the deep dive on embeddings. The hard part of RAG isn't the LLM. It's everything before the LLM. You've probably seen the…
Small and local LLMs are often framed as the cheap alternative to frontier models. That framing is wrong. They are not a degraded version of the same thing. They are a different architectural choice, selected for control, predictability, and survivable failure…
I keep seeing the same failure mode in "AI-powered" systems: LLMs are being asked to do jobs we already solved decades ago - badly, probabilistically, and without guarantees. This isn't cutting edge. It's a regression. And this isn't a beginner mistake. The…
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…