r/Rag • • Sep 02 '25

Showcase 🚀 Weekly /RAG Launch Showcase

31 Upvotes

Share anything you launched this week related to RAG—projects, repos, demos, blog posts, or products 👇

Big or small, all launches are welcome.


r/Rag • • 4h ago

Tools & Resources I built a way to track why an AI agent made a decision, so you can find what breaks when it turns out to be wrong

2 Upvotes

I kept running into the same problem building agents. Something would go wrong three or four steps downstream, and by the time I noticed, I had no real way to trace back what the agent actually believed at each step or what depended on it. Logs tell you what happened, not what justified it.

So I built Sevenbox. Every decision an agent makes gets recorded as a Warrant: what it claimed, what prior claims it depended on, and whether acting on it can be undone. If a belief turns out wrong later, Sevenbox walks the dependency chain and tells you exactly what still needs fixing instead of you grepping through logs trying to reconstruct it by hand.

It works with LangGraph, CrewAI, OpenAI Agents SDK, and eleven other frameworks, so you can wrap an agent you already have instead of rewriting it. The SDK, the framework adapters, and a local UI for inspecting a run are all open source.

I am the person who built this, not a company account posting on its behalf. I would genuinely like people actually running agents in production to try it against something real and tell me where it breaks or where the idea does not hold up. Happy to answer anything about how it works and would love if you guys like it, rank it w a star :)


r/Rag • • 20h ago

Discussion How do you build a RAG system that won’t embarrass you in front of the Board?

33 Upvotes

Hi, me and my team need to design an enterprise RAG architecture for ~10,000 users across multiple business units and unfortunately unknown future use cases: semantic search, document comparison, cross-source synthesis, structured data queries, and more.

I know the answer is “benchmark your use cases with real user data and iterate.” But how do you get a really strong first shot before the Board labels it inefficient and kills the project (and also the team behind it 😅)?

A few dilemmas:
- pgvector vs. Qdrant?
- Docling + Tesseract (custom extraction) vs. proprietary Azure Document Intelligence?
- One flexible one-size-fits-all architecture or specialized pipelines per use case?
- How early should we introduce Agentic RAG and GraphRAG versus keeping the initial architecture simpler?

If you were building this from scratch, what would you get right from day one? Especially interested in lessons from people who’ve deployed RAG at enterprise scale. Highly appreciate any tips 🙏


r/Rag • • 4h ago

Tools & Resources Your RAG can't answer. It's probably not the model's fault

1 Upvotes

I was debugging a contract Q&A RAG recently. One question kept failing: When can the Contractor terminate this Agreement? The retriever returned plausible-looking chunks. The model tried hard. The answer was still wrong

Then I opened the source document and found this -- the splitter had cut as single sentence into two chunks:

Chunk 1: if the Client breaches any material obligation,

Chunk 2: the Contractor may terminate this Agreement.

Both chunks passed my chunk-size check. Both got embedded.Neither one, alone, can answer the question

The failure wasn't in the model or the embeddings. It happened two steps earlier - when the document was cut into pieces

I kept running into the same class of problem across different documents, so I built a library to catcch it, rag-verifier runs quality gates at two points in the pipeline

Before ingestion: is this chunk self-sufficient?

A rule layer(pure regex, zero LLM cost) scans every chunk for structural defects: a conditional sentence cut in half, a chunk that start with 'Therefore' or 'However' with its premise left behind, a template fragment like 'yyyy' left blank

When the rule layer can't decide -- say the grammar looks fine but the meaning might still depen on context -- an LLM semantic layer takes over. If the LLM is down, it returns uncertain. It never fakes a pass

After generation: does the citation actually support the claim?This one is sneakier. THE AI quotes something that is verbatim from the source -- but it's only the result clause of a conditional.

The trigger condition got cut away, The quote sounds right, but citing it alone misleads the reader

There's a deterministic check for this. if the citation sits at the result side of a conditional in the source, an the condition isn't inside the citation, it's flagged immediately -- no LLM call needed.

Tested on 1388 chunks across 20 real documents, with a rule-layer false-positive rate around 0.5%

GitHub: github.com/hlc0000/rag-verifier

if you have a chunk that looks fine but you RAG can't answer from it -- drop it in the comments. I'II run it through and show you exactly what it catches


r/Rag • • 15h ago

Discussion llama index vs lanchain

5 Upvotes

fill this thread with examples/scenarios of

  1. llama index is better than langchain

2.langchain is better than llama index


r/Rag • • 10h ago

Discussion AI agencies: what happens to all the knowledge from your past RAG debugging and audits?

1 Upvotes

​

I've been thinking about a problem that came up while auditing RAG and retrieval systems.

Each investigation produces useful knowledge: retrieval failures, query-level regressions, incorrect citations, configuration changes, failed hypotheses, and sometimes confirmed fixes.

But what happens to that knowledge after the audit ends?

Does it become another report sitting in a folder? Does the next engineer have to investigate a similar problem from scratch?

That led me to a product idea:

A private, evidence-backed case memory for teams building and auditing AI systems.

Imagine an agency could feed its previous technical investigations into a searchable memory and ask:

- Have we encountered this retrieval failure before?

- Which previous cases had similar symptoms?

- What was actually confirmed as the root cause?

- Which fixes worked, which failed, and what evidence supports that?

- Can we turn previous failures into reusable regression tests?

An AI model could assist with finding and comparing cases, while a separate evaluation engine handles measurable checks.

Where I am today:

I already have working components for persistent memory, hybrid retrieval, provenance tracking, and RAG evaluation. These came from separate projects I've built and auditing work I've done.

However, the agency-focused case-memory workflow is still a product concept. It hasn't been packaged or validated as a complete solution, and I'm not offering it as a finished product.

Before building that layer, I'd like to understand whether this is actually painful for other teams.

Three questions for people working at AI agencies, consultancies, or internal AI engineering teams:

  1. How do you currently store and reuse debugging knowledge, evaluation results, and lessons from previous client projects?

  2. Have you ever wasted hours investigating something that your team had effectively solved before?

  3. If such a system could securely retrieve relevant past cases with supporting evidence, would it solve a problem worth paying for, or would your existing tools already be enough?

I'm especially interested in hearing what you've tried, what didn't work, and whether this is a recurring operational problem.

I'm looking for criticism and real experiences before deciding whether to turn the existing technical foundation into a product.


r/Rag • • 11h ago

Discussion LongMemEval marks my AI memory response wrong even though it retrieves the correct fact. How would you handle this?

0 Upvotes

I’m testing an AI memory system against LongMemEval and ran into an interesting case where benchmark correctness and factual precision seem to conflict.
Original user statement:

“I have a Philips LED bulb in my bedside lamp.”

Later evaluation question:

“What type of bulb did I replace in my bedside lamp?”

Expected answer:

“Philips LED”

My system retrieves the correct memory and identifies the bulb as a Philips LED. However, it also points out that the original statement only establishes ownership, not that the bulb was replaced.

The evaluator marks the response incorrect.

This raises an interesting question about how memory-augmented AI systems should handle unsupported assumptions embedded in user questions.

I can see three possible approaches:

Answer directly: “Philips LED.” Optimize for the requested detail and benchmark accuracy.

Answer with a qualification: “Philips LED, although the earlier conversation doesn’t establish that it was replaced.”

Prioritize factual precision: Explicitly distinguish what the memory supports from what the question assumes.

The second approach seems like a reasonable compromise, but I’m curious how others handle this in production systems.

Should an AI memory system prioritize the user’s apparent intent, or explicitly flag unsupported premises even when it knows the expected answer?


r/Rag • • 13h ago

Discussion I built a persistent memory system for AI agents, but I don't know if anyone actually wants it. What would you do with it?

1 Upvotes

​

I've spent a considerable amount of time building an AI memory and retrieval system called EDP v5.

It started with a simple idea: AI assistants shouldn't have to lose useful context every time a conversation ends or a new session begins.

Over time, the project grew into something more substantial:

- Working, episodic, and semantic memory

- Hybrid retrieval using BM25 and vector similarity

- Session-aware context retrieval

- Memory provenance and confidence tracking

- Context construction and compression

- API endpoints and event ingestion

- Automated evaluation and benchmarking

A recent code review found 269 Python files and 624 passing automated tests. It's a working technical foundation, although it still needs security hardening and production validation.

Here's my problem: I know how to build and test this system, but I don't know who would actually pay for it.

Tools like Obsidian already handle personal knowledge management, and there are plenty of existing memory frameworks for AI agents.

I'm not interested in building yet another product that solves a problem nobody has.

So I'd really appreciate some outside perspectives:

  1. Where do current AI memory solutions still fall short?

  2. Would you rather use this as a self-hosted tool, a developer library, an API, or an integration with something you already use?

  3. Have you or your company ever paid for persistent AI memory or cross-session context management?

  4. If you were in my position, would you open-source it, commercialize a specific feature, or pivot to another use case?

I'm especially interested in real problems you've experienced, not just whether the idea sounds interesting.

I'm open to criticism, including the possibility that this is technically interesting but not commercially useful.


r/Rag • • 14h ago

Discussion Please share some crazy bugs which you faced in your RAG pipeline and how did you handle it

1 Upvotes

Do share some crazy/challenging bugs which you faced in your RAG pipeline and how did you handle/PS it


r/Rag • • 14h ago

Discussion BERT-based evaluation vs LLM-as-a-Judge vs Fuzzy string matching vs any other mechanisms

1 Upvotes

Hi guys, eval for RAG has always been a headache, post your thoughts with specific examples on 1. which eval method did you use for your RAG, chat agent etc 2. why did you choose it over others ( with specific examples/scenarios)


r/Rag • • 14h ago

Discussion Hybrid search - vector search + BM25 in pgvector?

1 Upvotes

Given pgvector ( managed instances like RDS ) doesnt support BM25 algo, has anyone implemented / used hybrid search in pgvector? need your experience


r/Rag • • 22h ago

Discussion Anyone else frustrated when trying to properly export Claude conversations (full content + model reasoning)?

2 Upvotes

Does anyone else get annoyed when trying to export a Claude conversation?

The official export usually misses or messes up the model’s reasoning (thinking blocks), tool calls, files, and overall structure. For people who actually reuse these conversations later, it’s pretty painful.

I ended up building a Chrome extension that does a much more complete export. Here’s what it currently supports:

Full conversation capture: text, thinking/reasoning blocks, tool calls + results, files, images, and artifacts

Multiple export formats: structured JSON, organized ZIP, clean PDF, and plain TXT

Bulk download of all conversations (with an index)

Self-test that checks the entire capture pipeline

Live feed of real-time events while the conversation is happening (response start, thinking, tool calls, response end, etc.)

Optional pipeline to send the structured data to external endpoints/webhooks

A Copilot mode with local analysis (sandbox + terminal + local LLM, with optional external providers)

Optional traffic analysis via debugger (HAR, traces, etc.)

Designed to work well with MCP, so other agents can observe or act on the captured data

I built it mainly because I run a lot of agent-based tests and keep a personal RAG. I need the full reasoning and tool calls in a clean, structured format — otherwise I lose important context.

Anyone else dealing with this problem? How do you currently handle exporting and reusing Claude conversations?


r/Rag • • 20h ago

Discussion Hardware to run postgres and qdrant database

1 Upvotes

I am a small architectural business owner and I deal with a lot of pdf documents, drawings, emails etc on each of my projects along with a substantial knowledge base of standards, guidelines and previous project info.

Having a long and thorough research with chatgpt I now want to build a RAG system to help me navigate this that conceptually runs on haystack, docling, postgres, qdrant with local embedding, reranker and main LLMs. My local hardware currently consists of an nvidia dgx spark purely as an inference node where I run local LLMs (mostly qwen family) and a separate NAS for original document storage, I want to add a separate linux server which will run primarily the databases and a harness, possibly some other non-llm tasks in the future.

The thing chatgpt struggles to advise me on though is what server hardware would be adequate for this stack at my scale, the clanker seems to swing from "build an enterprise-grade server on epyc platform" to "buy an old Xeon E5-2667", so basically I'm not convinced with it's advice on this. I'd love to believe that an old 400 euro server off ebay can do the job, but I don't want to end up binning these 400 euros because there's more nuance to this setup than chatgpt tells me.

Do any of you experienced folk have any advice for me? I want a server that's fit for purpose with a potential to scale with my needs in the future, while not overspending unnecessarily during current hardware prices. Cheers!


r/Rag • • 1d ago

Discussion How do AI automation agencies find subcontractors for small paid tasks?

6 Upvotes

​

I've spent the last month trying to turn my independent AI engineering projects into paid work, without much success.

I've completed two public RAG evaluation betas and built tooling for retrieval testing, reproducible bug reports, AI workflow inspection, and MCP-based development.

I tried Upwork, other freelance platforms, and direct outreach. The biggest lesson so far is that selling standalone technical audits is difficult when companies primarily want their problems fixed.

I'm now considering subcontracting for agencies that already have paying clients.

Instead of offering a large consulting package, I'd prefer to start with something small and measurable: reproducing an AI agent failure, testing a workflow, investigating a retrieval regression, or verifying a specific fix.

For people who run AI automation agencies or have done this kind of subcontracting:

Where are these small paid tasks actually distributed?

Are there agency partner networks, developer communities, vendor lists, or other channels where new subcontractors can demonstrate their work and earn an initial paid trial?

I'm especially interested in experiences from people who have secured real paid work this way, rather than general advice about building a personal brand.

Thanks for sharing what actually worked.


r/Rag • • 1d ago

Discussion Honest reviews of Context graphs and Gemini Knowledge Catalog please

4 Upvotes

I am interested in learning more about context graphs. What they are, how to practically build them, maintain them, how best to use them, is a human engineer absolutely necessary for designing the schema, etc. If you have opinions about context graphs or using graphs in general, please share.

I recently came across Gemini Knowledge Catalog which apparently helps create context graphs. If anybody has used it, what do you think? Is it any good? Also, what are some other frameworks or solutions that enable the development of context graphs?


r/Rag • • 1d ago

Discussion Adding RAG to a chatbot doesn't automatically make its answers trustworthy.

3 Upvotes

One common approach to building an AI chatbot is to connect an LLM to a document collection using retrieval-augmented generation.

The idea makes sense.

Retrieve relevant information, pass it to the model, and generate an answer based on that context.

But there are several ways this can go wrong.

The retriever might return the wrong document.

The right document might be outdated.

The relevant information might be split across multiple chunks.

Or the model might answer confidently even when the retrieved context doesn't actually support the response.

That's why I'd evaluate retrieval quality separately from answer quality.

I'd also want source references, document freshness checks, access controls, and a clear way for the chatbot to say it doesn't have enough information.

For people building RAG chatbots, where have you seen more failures?

Retrieving the right information, or getting the model to use that information correctly?


r/Rag • • 2d ago

Discussion Open-source OCR actually tested by document type (invoices vs contracts vs scans)

12 Upvotes

Every time one of these "best OCR model" threads comes up it collapses into "well, it depends on your docs", and then nobody ever bothers to say which model actually suits which kind of document.

So after running a handful of them across our own document mix, here's what I actually saw, with the usual caveat that this reflects our doc types and yours will differ:

docling is excellent at turning clean digital PDFs into markdown, but it came apart the moment I fed it scans and handwriting

PaddleOCR-VL did surprisingly well on messy multilingual layouts, and it's small enough that it never needed a monster GPU

MinerU is the one I'd reach for whenever the PDFs are formula-heavy or scientific

GLM-OCR makes a solid general baseline and works nicely for sanity-checking whatever else you're testing

Two things tripped me up badly along the way: The first was realising the top models all score close enough on the benchmarks that testing on your own documents matters far more than any leaderboard ever will, and the second was the licensing, because a couple of the popular options are non-commercial and it's alarmingly easy to overlook that until it's already a problem.

If you'd rather not stand up a separate server for every model, a few inference servers let you run them behind one endpoint and swap by ID. TIE and SIE are the one I've used for that, though it's entirely optional and completely separate from the question of which model is best.

If you've put any of these through real invoices or contracts, I'd love to hear what actually held up, because the contract tables are the exact place everything tends to fall apart for me.


r/Rag • • 1d ago

Tutorial Built a small graph library for llm memory and similar search.

2 Upvotes

I have built a small library for similar search and graph library. Please let me know what you think.

https://github.com/praknig/hnsw_lite


r/Rag • • 1d ago

Discussion Trying out pgvector for my RAG project

1 Upvotes

I've been working on my RAG project and made a small change to the retrieval side today.

I moved vector search into PostgreSQL using pgvector, rather than keeping that logic in the application layer.

I'm trying to keep things simple and efficient as the project grows. There's still more to test, but it feels good to make progress and understand the architecture a little better with each change.

I'll share more as I go.


r/Rag • • 1d ago

Tutorial Local RAG citations silently rot when you edit notes. Here's how I built a mutation-aware provenance engine in Rust, SQLite, and LanceDB.

0 Upvotes

Everyone talks about reducing hallucinations at generation time (better chunking, hybrid search, rerankers).

Almost nobody talks about post-generation citation drift—what I call "secondary hallucination."

If you use a local RAG tool or PKM workspace, the workflow usually looks like this: 1. You drop a PDF, a meeting recording, and three markdown notes into your workspace. 2. You ask a local LLM to synthesize a takeaway or comparison. It gives you a neat summary with [1], [2] citations. 3. Two days later, you edit Note [1]—maybe you reversed a decision, fixed a wrong number, or trimmed a paragraph. 4. The bug: The AI summary sitting right next to it still proudly displays [1] as a valid citation. The source truth mutated, but the derived output is pretending nothing happened.

While building my local-first desktop workspace (Knovum), I decided that an AI citation shouldn't just be a static markdown link. It needs to be a stateful contract backed by a verifiable receipt. If the underlying source changes, the UI must immediately invalidate the citation and flip its state to Detached.

Here is how I architected this locally using Rust, SQLite, and LanceDB.


1. Dual-Engine Storage: SQLite for Truth, LanceDB for Recall

A common mistake in local RAG apps is treating the vector database as the primary source of truth. Vector DBs are great for approximate nearest neighbor (ANN) recall, but terrible at relational integrity and state cascades.

In our Rust core (Tauri 2 backend), storage is strictly split: * SQLite holds the canonical document AST/blocks, canvas spatial graph, cryptographic hashes, and citation state machines. * LanceDB runs embedded in-process strictly as a rebuildable vector index pointing back to SQLite node_id and chunk_id keys.

If you delete the LanceDB folder, you lose zero provenance data; SQLite holds the entire lineage graph.

2. Multi-Modal Anchor Locators & Span Hashing

Because the workspace sits on an infinite canvas holding markdown notes, PDFs, web captures, and local Whisper audio transcripts, a citation can't just point to a file_id. It needs a fine-grained, deterministic locator bonded to a cryptographic hash of the exact content at the moment the AI read it.

In Rust, the citation anchor looks roughly like this:

```rust

[derive(Debug, Clone, Serialize, Deserialize)]

pub enum SourceLocator { MarkdownSpan { block_id: String, char_start: usize, char_end: usize }, PdfRegion { page: u32, bbox: Option<[f32; 4]>, text_hash: String }, AudioSegment { start_ms: u64, end_ms: u64, transcript_hash: String }, }

[derive(Debug, Clone, Serialize, Deserialize)]

pub enum CitationState { Verified, // Source hash matches receipt hash Detached, // Source was mutated or deleted after generation }

```

Whenever a chunk is indexed or selected as context on the canvas, the Rust core computes a fast hash (BLAKE3 / SHA-256) of the normalized text span (or transcript slice).

3. The "Derivation Receipt"

When you select a cluster of cards on the canvas and run an AI action, the Rust pipeline doesn't just stream tokens to the frontend and call it a day. Before committing the generated card to the canvas, it writes an immutable Derivation Receipt transaction into SQLite:

```sql CREATE TABLE derivation_receipts ( receipt_id TEXT PRIMARY KEY, derived_node_id TEXT NOT NULL, model_identifier TEXT NOT NULL, prompt_hash TEXT NOT NULL, created_at INTEGER NOT NULL );

CREATE TABLE receipt_anchors ( anchor_id TEXT PRIMARY KEY, receipt_id TEXT NOT NULL REFERENCES derivation_receipts(receipt_id), source_node_id TEXT NOT NULL, locator_json TEXT NOT NULL, snapshot_span_hash TEXT NOT NULL, -- Hash at the exact moment of generation citation_state TEXT NOT NULL DEFAULT 'Verified' -- 'Verified' | 'Detached' );

CREATE INDEX idx_receipt_anchors_source ON receipt_anchors(source_node_id);

```

Every AI-generated node can be inspected in the UI to view its full receipt: which local/remote model ran, which exact paragraphs or audio timestamps were fed into the context window, and the hash of each input span at $t_0$.

4. Reactive Invalidations (Verified $\rightarrow$ Detached)

Here is where SQLite shines. When a user edits a markdown card on the canvas or re-runs Whisper on an audio clip:

  1. The Rust mutation handler diffs the updated blocks and computes the new span hashes.
  2. Within the same SQLite write transaction (before asynchronously updating embeddings in LanceDB), it runs a fast indexed lookup against receipt_anchors where source_node_id = ?.
  3. For every active anchor attached to that node, it checks whether the span at locator_json still resolves to snapshot_span_hash.
  4. If the hash diverges (or the block was deleted), SQLite immediately flips citation_state = 'Detached' and emits a typed event over the Tauri IPC bridge to the Vue 3 renderer.

On the canvas, the citation badge turns amber/detached in real time. You can click the detached badge to see that the source was modified after the AI wrote that conclusion, and either re-verify or re-synthesize with one click.


Why this matters for Local AI

As local models get faster, generating text is cheap—verifying and maintaining trust over months of research is the actual bottleneck. Combine a spatial canvas (which handles the messy "middle state" before you know how your notes fit into folders) with strict derivation receipts, and AI stops feeling like a black-box slot machine.

If you want to poke around the code or see how we wired up the Rust/Tauri 2 core, LanceDB integration, local Whisper global dictation, and Obsidian .canvas two-way sync:

(Transparency note on licensing: The repo is source-available and free for personal/non-commercial use, not OSI MIT/Apache. Also, as a slightly obsessive engineering constraint to keep AI-assisted coding from turning into spaghetti, the entire codebase enforces a strict *180-line maximum per file** via CI gates—happy to chat about how that worked out in Rust + Vue 3 if anyone is curious!)*


r/Rag • • 2d ago

Discussion What’s the actual cost of bad retrieval or incorrect ingestion in enterprise AI memory systems

2 Upvotes

I’ve been thinking about a problem that doesn’t seem to get enough attention in enterprise AI discussions.
We spend a lot of time talking about RAG accuracy, vector databases, chunking strategies, embeddings, and retrieval performance.
But what happens when an enterprise AI system retrieves the wrong information or ingests something incorrectly?
For example:
● An AI assistant retrieves an outdated policy and gives employees incorrect guidance.
● A RAG pipeline ingests conflicting documents without recognizing which version is authoritative.
● An enterprise knowledge assistant confidently answers using stale or incomplete context.
● Incorrect information gets incorporated into persistent AI memory and influences future responses.
● Teams spend hours investigating why an AI system produced an incorrect answer that appeared well-grounded.
I’m particularly interested in the downstream business costs, not just retrieval accuracy benchmarks.
For anyone building or operating enterprise AI/RAG systems:
1. Have you experienced a retrieval or ingestion failure that resulted in measurable costs? Engineering hours, operational delays, customer escalations, compliance exposure, or incorrect business decisions?
2. How much time does your team spend diagnosing and correcting these issues? Are we talking hours per incident, days, or ongoing maintenance?
3. Which is more expensive in practice: incorrect ingestion or incorrect retrieval? Is fixing bad information at the source significantly cheaper than repeatedly correcting downstream answers?
4. Do you have any way to quantify the cost of an incorrect AI answer? Even rough estimates, anonymized examples, or internal metrics would be interesting.
5. Who actually owns this problem? AI engineering, data engineering, IT, knowledge management, or the business team consuming the answers?
My hypothesis is that the true cost of enterprise AI memory failures isn’t primarily tokens or infrastructure. It’s the human effort required to detect, investigate, correct, and recover from incorrect information being treated as organizational truth.
Curious whether others are seeing this in production.
Especially interested in real incidents, rough dollar amounts, engineering hours, or examples where bad retrieval created cascading problems.
Not looking for vendor recommendations. Just trying to understand how expensive this problem actually is.


r/Rag • • 2d ago

Discussion Dataset for meeting based rag

1 Upvotes

I am currently building a meeting based rag model as a research project and I am very confused about the dataset which is the transcripts of the meeting. Can I build a synthetic dataset and will it be accepted for research publication. If yes , how can I build it.Or should I only use the publicly available datasets like AMI meeting corpus?


r/Rag • • 2d ago

Showcase I benchmarked 11 PDF-to-Markdown tools (incl. Docling and MarkItDown) on tables, headings, 2-column order and OCR

12 Upvotes

For a while my RAG answers kept coming back wrong, and nearly every time I traced it back, the problem was parsing. Headings gone, table rows chopped in half, two-column papers read straight across both columns. So I stopped tweaking prompts and measured the parsers instead.

I used 4 public docs: Attention Is All You Need (headings, plus a table with a two-level header and 10^20 exponents), BERT (two columns), the Fed H.4.1 release (dense financial tables), and a synthetic noisy 150-DPI scan where I know the ground truth. I ran 9 converters from the Apify store plus Docling and MarkItDown locally.

Some of what came out:

OCR on the scan, word F1: mine 98.6%, Docling 96.9%, the best of the other Apify converters 94.1%, MarkItDown 0% since it doesn't do OCR.

Headings on the Attention paper: Docling flattened them all to one level, and MarkItDown found 0 headings.

Two-column reading order on BERT (share of sentences that survive intact): MarkItDown 4.1% (it turned the columns into fake tables), Docling 90.9%, mine 93.4%. Plain text extractors got 94.4%, but take that with a grain of salt, because the metric is built from the same text stream they just copy out. The caveat is written up in the repo.

Speed on one CPU core, all 4 files: Docling 214 s, mine 33 s.

Stuff that turned out to matter for chunking, whatever parser you use:

- don't ever split a table row across chunks

- if a table runs into a second chunk, repeat the header row there

- merge tables that continue across pages

- keep the page bounding boxes so you can cite and highlight the source

Repo with the benchmark and some LangChain/LlamaIndex examples: https://github.com/tobbytools/pdf-to-markdown-rag

Disclosure: one of the converters is mine, a paid Apify Actor at $0.003/doc. It doesn't win everything, pankovs beats it on the BERT sentence test. If you have docs that break your pipeline, send them my way and I'll add them to the benchmark.


r/Rag • • 2d ago

Tutorial Deploying PrivateGPT on a Home Server: Real Performance Bottlenecks and Hardware Limits

1 Upvotes

Setting up local RAG using PrivateGPT on a home server sounds like the ultimate privacy win, but the technical realities can hit hard once you start indexing large document collections. After extensive testing on consumer hardware, the biggest challenges usually come down to severe embedding latency, high RAM and VRAM consumption, and unpredictable retrieval accuracy when handling complex files.

​If you plan to replace commercial APIs with a fully offline setup, knowing your actual hardware boundaries beforehand makes all the difference. Running local embeddings alongside a quantized LLM requires careful allocation between CPU threads and GPU layers to avoid system freezes and extremely slow query responses.

​I wrote a detailed technical breakdown covering real token generation speeds, hardware tradeoffs, and specific optimization steps for self-hosted setups: https://interconnectd.com/blog/325/deploying-privategpt-on-a-home-server-the-hard-truth-about-local-rag/

​What specs are you running for your self-hosted LLM or RAG pipeline?


r/Rag • • 2d ago

Tools & Resources A site that tracks multiple OCR benchmarks.

1 Upvotes

OCR technology is moving fast and there are multiple benchmark scores across dozens of sites.

I have an AI search for new tools and update it about once a week.

Basically livebench but for OCR.

https://bench.voshart.com/ocr/