惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
F
Fortinet All Blogs
D
Docker
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
罗磊的独立博客
Y
Y Combinator Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
J
Java Code Geeks
T
The Blog of Author Tim Ferriss
U
Unit 42
N
Netflix TechBlog - Medium
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
云风的 BLOG
云风的 BLOG
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
Hugging Face - Blog
Hugging Face - Blog
Stack Overflow Blog
Stack Overflow Blog
爱范儿
爱范儿
酷 壳 – CoolShell
酷 壳 – CoolShell
P
Proofpoint News Feed
G
Google Developers Blog
H
Help Net Security

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
Most RAG Problems Are R(etrieval) Problems
Tobias Egner · 2026-05-27 · via DEV Community

Most RAG blog posts read like product brochures. After building a few systems over the last months and reading way too many production post-mortems, I'm pretty convinced the LLM is usually not the thing that breaks first.

Especially not in EU mid-market deployments.

A few failure modes I see again and again:

1. Retrieval quality falls apart somewhere between 10K and 40K docs

The demo with 500 PDFs looks amazing.

Then the first real pilot starts, somebody uploads 30k documents from SharePoint and suddenly top-3 retrieval becomes semi-random.

Typical example:
Query is Lieferantenbewertung 2024.

What comes back:

  • a supplier evaluation form from 2019
  • three meeting notes because they contain the word “Lieferant”
  • the actually correct document maybe at rank 4 or 5

This problem is way more common than most tutorials mention.

What people in production seem to converge on:

  • hybrid retrieval (BM25 + dense)
  • reciprocal rank fusion
  • reranker on top (Cohere if budget exists, BGE reranker otherwise)
  • separate indexes per document type

Honestly, adding a reranker solved more quality issues for us than changing the LLM ever did.

2. German enterprise PDFs are completely cursed

Most demos run on clean PDFs.

Real document stores are:

  • scanned contracts from 1998
  • supplier manuals with 3-column layouts
  • rotated tables
  • faxed quality reports
  • old encodings destroying umlauts

pypdf turns many of these into complete garbage text.

Things I saw multiple times already:

  • ü becoming weird symbols
  • tables flattened into unreadable prose
  • footnotes injected into random sentences
  • OCR artifacts treated as actual content

Current stack that works reasonably okay:

  • Marker for most docs
  • Docling as fallback
  • VLM pass for ugly tables

This preprocessing layer is very unsexy work, but probably 30% of the actual implementation effort.

And if you skip it, the whole RAG quality later becomes fake-good.

3. Hallucinations are not the real production problem

Every stakeholder asks:
“What about hallucinations?”

Almost nobody asks:
“What if the source itself is outdated?”'

This kills more pilots from what I’ve seen.

The model gives a perfectly grounded answer.
It cites the right document.
The document is just no longer valid.

Or worse:
two valid documents disagree and the system confidently picks one.

What seems to work:

  • recency decay in retrieval scoring
  • contradiction checks across retrieved chunks
  • confidence thresholds + human handoff

A lot of “hallucination problems” are actually retrieval problems wearing a fake mustache.

4. Permissions become a disaster very fast

This one appears in basically every internal rollout thread.

The assistant accidentally answers something using a HR spreadsheet or salary export the user should never have seen.

Technically the solution is easy:
permission filtering before semantic retrieval.

In reality:

  • SharePoint permissions are ancient
  • metadata missing
  • nobody knows document ownership anymore
  • legal says ask IT
  • IT says ask department head
  • department head left in 2021

In EU environments this becomes even more annoying because GDPR changes this from “oops” into potential reportable incident territory.

Honestly I would not even start a pilot anymore before the customer can explain who should access what.

5. Re-embedding costs are massively underestimated

Everybody budgets the first embedding run.

Almost nobody budgets:

  • daily delta updates
  • re-embedding after model upgrades
  • vector storage growth
  • multi-vector indexing

Embedding APIs look cheap until somebody realizes the SharePoint dump contains 800 million tokens.

What seems to become the default setup now:

  • local embedding models after ~10k docs
  • incremental indexing pipelines from day one
  • embedding model versioning in metadata

Otherwise migrations become pain very quickly.

The EU / German Mittelstand angle

This changes the architecture more than many US blog posts suggest.

On-premise is usually the default ask now.

GDPR + Art. 28 contracts eliminate half the providers immediately.
Most legal departments only accept a very small shortlist without months of discussions.

Also:
right-to-erasure with vector DBs is more annoying than many teams expect. If embeddings are derived from customer documents, you need to know exactly where they are.

Still feels like many teams underestimate how much “boring infrastructure work” is inside production RAG systems.

The LLM part is honestly often the easiest component.

If you want a longer version with concrete vendor breakdowns and cost ranges, we wrote one up here: RAG mit eigenen Daten (in German). The broader take on agentic AI in EU-regulated
environments: KI-Agenten im Mittelstand 2026.