Skip to content

Knowledge Base Search

Customers and agents find the right article from their own words.

Industry Level Difficulty Recommended mode
Customer support 1 of 5 Beginner flat
  • Customers describe problems differently from article titles.
  • Agents search several tools.
  • Good articles go unused.
  1. Every article section is embedded in SrvDB.
  2. Any question finds the closest sections.
  3. Article updates use upsert.
  4. Runs inside your help centre backend.
Today With Knowledge Base Search on SrvDB
Keyword search fails on real questions Search by meaning
Agents switch tools One search box
Articles unused Surfaced when relevant
  1. Export articles.
  2. Embed sections.
  3. Serve search.
  4. Track unanswered queries.
  5. Update articles.
  • Exact search (flat): every query compares against every stored vector, so results are exact and explainable.
  • upsert: inserts new items and replaces changed ones, so the knowledge base stays current.
  • Crash-safe persist(): after it returns, data survives a crash or power loss and reopens exactly as committed.
  • Thread-safe handles: one database object can be shared between threads; searches run in parallel.
  • Customer self-service
  • Agent lookup
  • In-app help
  • Release-note search
  • Community answers
  • Internal IT help

embed() is your embedding model (for example sentence-transformers, or a function that turns your records into feature vectors).

import json
import srvdb
db = srvdb.Database("./kb-search-db", dimension=384)
def ingest(items):
"""items: list of (id, text, metadata dict)"""
db.upsert(
ids=[i for i, _, _ in items],
embeddings=[embed(t) for _, t, _ in items],
metadatas=[json.dumps(m) for _, _, m in items],
)
db.persist() # crash-safe checkpoint
def find_articles(question, k=5):
hits = db.search(embed(question), k)
return [(json.loads(db.get(i)), round(score, 3)) for i, score in hits]
  • Article quality limits answer quality.
  1. Prototype: load a sample of real data with flat mode and check that searches return what an expert expects.
  2. Measure: if you move to an approximate mode, compare its results with flat on the same queries (recall).
  3. Pipeline: add continuous upsert and decide when to call persist().
  4. Harden: test restarts and crashes, add logging, review every output path with domain experts.
  5. Deploy: ship the database directory with the application or service.
Level Project What it does
1 · Beginner Knowledge Base Search (this page) Customers and agents find the right article from their own words.
2 · Intermediate Helpdesk Answer Bot Drafts replies from similar solved tickets and articles.
3 · Advanced Ticket Deduplicator Finds duplicate tickets and emerging issue clusters.
4 · Expert Customer Memory Agent Remembers each customer’s history across conversations.
5 · Frontier Offline Support Kiosk A self-service assistant that works without internet.

See also: Use cases · Live examples (coming soon)