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…
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…
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…