Evaluating LLM Outputs: Building an Eval Harness That Actually Catches Regressions
"It looked fine when I tried it" is not an evaluation strategy. Here is the harness we run before any prompt or model change ships.
The vector database market is crowded and most comparisons focus on benchmark recall numbers that won't matter for your actual traffic.
Every vector database claims to be the fastest at approximate nearest neighbour search, and at the scale most companies actually operate at, the difference between them on that dimension will never be the thing that determines whether your RAG pipeline works. The decision that actually matters is closer to your existing infrastructure and operational maturity than to a benchmark leaderboard.
We use Qdrant as a default for most client builds — not because it wins every synthetic benchmark, but because its filtering model, self-hosting story, and operational simplicity match the constraints most of our clients actually have: a small team, a need for tenant isolation, and no appetite for operating a bespoke search cluster.
If your data already lives in Postgres and your scale is in the low millions of vectors, pgvector removes an entire system from your stack — no separate service to operate, back up, and secure, and your retrieval query can join directly against your existing relational data. Teams reach for a dedicated vector database by default when the honest answer, at their actual scale, is "you already have one."
More from the same category.
"It looked fine when I tried it" is not an evaluation strategy. Here is the harness we run before any prompt or model change ships.
The clever prompt phrase mattered when models were smaller. What actually moves the needle now is what you put in the context window, and what you leave out.
Most token-cost conversations jump straight to "use a cheaper model." That is the last lever to pull, not the first.
Thirty minutes with the people who would actually do the work — no discovery deck, no account manager.