FastGPT 4.15.8
A knowledge-base-first platform with a visual workflow builder, deployed and measured against the same corpus as every other platform here.
In one paragraph
Deployed from its published image, FastGPT runs 13 containers and held 3,227 MB at peak during ingestion. It retained 97% of the facts planted in the corpus and answered 41% of the retrieval questions correctly.
Measured
| Measurement | Result | How |
|---|---|---|
| Time to first served request | 239 s | Includes image pull, from a clean host |
| Containers | 13 | Running after the stack settles |
| Idle memory | 1,691.5 MB | Sum across containers, 60s after ready |
| Peak memory during ingestion | 3,227 MB | Sampled every 5s across the whole corpus |
| Documents ingested | 8/11 | Failures counted, not excluded |
| Chunks stored | 340 | Across the whole corpus |
| Parsing fidelity | 97% | Planted facts found in stored chunks |
| Retrieval accuracy | 41% | Answer present in top-5 context, 29 questions |
| Retrieval latency | 19,312.2 / 23,253.5 ms | p50 / p95, CPU embedding |
| Licence | FastGPT Open Source License | Prohibits offering it as a service |
What it does well
- Fully scriptable — every step of setup, ingestion and retrieval is reachable over HTTP with no browser involved
- A dedicated retrieval-only endpoint, which makes its search behaviour measurable independently of any language model
- The lightest memory footprint of the three purpose-built platforms despite running the most containers
Where it falls short
- The published compose file does not start unmodified — two required values ship empty and the failure surfaces as a generic environment-validation error rather than pointing at the file
- Guidance in that file is written in Chinese even in the repository's `global` variant
- Model setup spans two systems — a bundled gateway with its own token and its own database, plus a separate catalogue in FastGPT itself, and configuring one without the other fails at knowledge-base creation
- Its model-activation endpoint returns success without persisting a partial update, so a client that trusts the response silently misconfigures the instance
- The licence permits commercial use but prohibits offering the software as a service
Choose it when
- Teams that want a knowledge base running quickly and will drive it from scripts rather than a UI
- Deployments where memory is constrained but container count is not
Choose something else when
- Anyone intending to resell it as a hosted service — the licence forbids it
- Air-gapped setups that cannot tolerate a multi-service stack
Deployment notes
The stack is larger than its reputation suggests: thirteen containers including two separate Postgres instances, MongoDB, Redis and MinIO. Container count and memory tell opposite stories here — it runs the most containers of any platform measured and holds the least memory of the three purpose-built ones.
The first-start failure is worth calling out because it costs time in a way that
is hard to diagnose. FE_DOMAIN and the sandbox proxy URL both ship as empty
strings with a comment saying they must be filled in; leaving them produces a
crash loop whose error names the variable but not the file, and the comment
explaining it is in Chinese in the file served from the repository’s global
directory.
Getting a machine credential
Three calls, none of which need a browser: a pre-login request returns a
single-use anti-replay code, the login itself expects the password already
SHA-256 hashed by the caller, and a third call mints an API key. The documented
ROOT_KEY is not accepted by the dataset routes despite reaching them.