kb-bench

Which platform is best for searching internal documentation?

Short answer

dify — Dify. It ingested every document in the corpus and retrieved the correct passage for 66% of the questions — the highest of anything measured — and it did the whole corpus in eleven minutes.

What this use case actually needs

How the candidates measured up

Platform Documents ingested Parsing Retrieval Peak memory Ready
dify 11/11 82% 66% 2,572.7 MB 39 s
openwebui 11/11 61% 62% 912.9 MB 18 s
ragflow 11/11 80% 45% 10,326 MB 511 s
fastgpt 8/11 97% 41% 3,227 MB 239 s

Every figure comes from the same run against the same documents, so these are directly comparable. The full per-document and per-query rows are in the raw data.

Why Dify wins this one

It is the only platform that came first or second on every dimension this use case depends on:

The finding underneath the result

Dify stored 1,149 chunks for the same corpus that FastGPT stored 340 chunks for — more than three times as many pieces from identical documents. That is the whole explanation for the retrieval gap.

Ranked by chunk count, the retrieval scores line up almost exactly:

PlatformChunks storedRetrieval accuracy
Open WebUI1,28162%
Dify1,14966%
RAGFlow39345%
FastGPT34041%
AnythingLLM7441%

Finer chunking put the answer in a smaller, more specific passage, and a smaller passage ranks better against a specific question. Coarse chunking kept the fact in the knowledge base but buried it in a block that never surfaced.

This is worth stating clearly because it inverts the intuitive ranking: the platform that preserved the most facts retrieved the fewest of them. For internal documentation search, retrievability is the property that matters, and Dify has it.

Open WebUI is closer than expected

At 62% retrieval, one container and 913 MB, Open WebUI is a genuine alternative if you also want a chat interface and can accept thinner knowledge-base controls. Its parsing figure is the lowest measured at 61%, but that figure is approximate — it exposes no way to list stored chunks, so we could only measure what retrieval surfaced.

Where this recommendation stops applying