Retrieval-augmented generation, secured
Grounded answers from your own knowledge.
Connect your sources, control what gets ingested, and serve AI answers that cite the exact passages they came from. Multi-tenant isolation, audit trails, and sensitive-data redaction built in from day one.
How it works
From raw documents to grounded answers in three steps.
No black boxes. Every answer traces back to the exact chunk it came from.
Connect & ingest
Upload files or sync a database. Duplicate content is detected, sources get stable IDs, and checkpoints make syncs resumable.
Sanitize & index
Documents are parsed, PII and secrets are redacted or blocked, then chunked and indexed for both vector and keyword search.
Ask & cite
Query a knowledge base and get an answer with citations. Insufficient evidence is stated plainly — no fabricated sources.
Features
Security and retrieval are the product, not an afterthought.
Tenant isolation at the database layer
Row-level security policies enforce isolation on every query, not just in application code. Cross-tenant access is rejected by the database itself.
- Per-resource authorization, deny by default
- Suspended memberships lose access immediately
- Revoked tokens rejected on every request
Hybrid retrieval
Vector similarity plus full-text search, fused and deduplicated, so you get both semantic recall and exact matches.
Document provenance
Every chunk keeps its source, version, and position. Reindex and delete are lifecycle-safe — no stale content leaks into answers.
Security
Sensitive data is redacted before it ever reaches an index.
PII, credentials, and secrets are detected and handled by policy — redact, mask, or block — before embedding. A secondary scan verifies the result.
Quarantine first
Uploads land in quarantine. Validation, parsing, and scanning happen before anything is promoted to a knowledge base.
Scoped API keys
Keys are scoped to an application and revocable. Usage is recorded once per idempotent operation, with concurrent quota enforcement.
Provider-independent AI layer
Embeddings and generation sit behind adapters. Swap providers without touching retrieval or application code. Model metadata is stored with every vector.
- OpenAI-compatible and local providers
- Per-tenant rate and cost limits
- Normalized errors across providers
Build your first knowledge base today.
Start with a single document and get a grounded, cited answer in minutes. No credit card required.