Skip to content

Investigation Workbench

Isolated, multimodal workspace per investigation.

Industry Level Difficulty Recommended mode
Media & journalism 4 of 5 Expert flat
  • Investigations mix documents, images and transcripts.
  • Sources need protection.
  • Teams collaborate under pressure.
  1. One SrvDB database per investigation.
  2. Text and images embedded together.
  3. Runs on the newsroom’s own hardware.
  4. Delete the folder to remove everything.
Today With Investigation Workbench on SrvDB
Scattered materials One searchable workspace
Source exposure risk Local only
Messy cleanup Delete one folder
  1. Create a workspace.
  2. Ingest materials.
  3. Search and annotate.
  4. Draft.
  5. Archive or delete.
  • Several databases: each database is a directory, so different data types or tenants stay separate.
  • delete and compact(): remove items immediately from search, then reclaim disk space.
  • Crash-safe persist(): after it returns, data survives a crash or power loss and reopens exactly as committed.
  • Fully offline: SrvDB runs in-process and never opens a network connection.
  • Document leaks
  • Court records
  • Interview transcripts
  • Photo verification
  • Timeline building
  • Podcast research

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("./investigation-workbench-db", dimension=512)
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 investigation_search(query, k=5):
hits = db.search(embed(query), k)
return [(json.loads(db.get(i)), round(score, 3)) for i, score in hits]
  • Follow source-protection procedures.
  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 Archive Search Search decades of articles by meaning.
2 · Intermediate Fact-check Assistant Matches claims against previously fact-checked claims and sources.
3 · Advanced Narrative Tracker Clusters stories and posts into narratives.
4 · Expert Investigation Workbench (this page) Isolated, multimodal workspace per investigation.
5 · Frontier Secure Leak Analysis Air-gapped analysis of large leaked datasets.

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