Private AI Knowledge Platform

Ingest to Answer

Any channel → durable record → queue → local inference → gated retrieval
Zone 01
Ingest
Channels
📱
Devices
own credential
own namespace
🖥️
Web upload
browser
drag & drop
🔗
Links & text
pages · media URLs
notes
pluggable
channel
Zone 02
Ingest Layer
(own process)
🔐
Virtual namespace
credential → source → owner
no host users · no shell
✅
Durable finalize
staging → validate → commit
duplicates caught by content
🔒 success returned only
after bytes + record are committed
record:
received
Zone 03
Durable Queue
& Workers
🗂️
Job store
atomic claim · lease
backoff · attempt count
⚙️
Workers ×N
extract → chunk → embed
summarize · kind · tags
🩺
Reconciler
expired leases · lost files
orphaned state
a crash mid-file is recoverable
inference
call
callback
on completion
Zone 04
Model Plane
🤖
One universal model contract
generation · embeddings
transcription · vision
🎬
Out-of-band media
transcode · transcribe
the API never waits
✦ where inference runs is
a deployment decision
chunks +
vectors
Zone 05
Knowledge
& Answers
🧭
Vector store
text and visual spaces
scored separately
🚦
Relevance gate
below the score → dropped
before the model sees it
💬
Chat & series
record · group · series
per-user isolation
no answer beats a confident
answer built from noise
Invariant 01
Nothing is acknowledged until it is durable - a client is told "synced" only when Plaud really has the file.
Invariant 02
Processing is a queue, not a request - workers scale out, and every failure has a defined path back.
Invariant 03
Retrieval is a contract, not a top-k call - a weak question returns nothing instead of noise.
Inbound file or link
Committed record
Claimed job
Async callback
Chunks and vectors
Gated retrieval