FIELD NOTES / ENTERPRISE KNOWLEDGE

Company knowledge is not
a folder of clean PDFs.

SageBot lets authorized employees ask natural-language questions across approved company content — policies, handbooks, spreadsheets, scanned pages, recordings and training video — and answers only from that content, with citations back to the original files.

AI KNOWLEDGE CASE STUDY

SageBot

Serverless RAG on AWS.
Server-side authorization.

Grounded, cited, auditable
SageBot / Grounded answer with citationsACTUAL PRODUCT INTERFACE
SageBot answer grounded in company content with citations to source files
THE GROUNDING RULEAnswer from the content, or say so.

The model answers only from retrieved company content and states plainly when the documents do not contain the answer.

Follow the retrieval ↗
IngestClassifyIndexRetrieveGroundCite
DOMAIN

Enterprise knowledge management

WHAT WE BUILT

Serverless RAG platform on AWS

OUR ROLE

Architecture to data engineering & DevOps

01 / THE REAL ENGINEERING PROBLEM

Most internal chatbots fail
on one of two fronts.

Either the assistant hallucinates because retrieval is an afterthought, or the ingestion side collapses because real company knowledge is not a folder of clean PDFs — it is scanned invoices, DOCX drafts, onboarding videos, and recorded all-hands meetings.

The parental-leave policy lives in a PDF handbook. The expense process lives in a Finance DOCX. Deployment steps live in an engineering Markdown file. Scanned documents are images with no searchable text at all.

SageBot was engineered against both failure modes at once — the full path from raw company files to a trusted, auditable answer.

01

Content that is not text

Native documents, scanned PDFs with no text layer, photographed pages, MP4 video and audio each need a different processing path — and the system must choose it automatically.

02

Deletes that actually delete

When a source file is removed, its derived text, metadata and vector embeddings must all disappear — even though the derivative may have a different name and format.

03

Authorization the client cannot bypass

Topic scoping is a security boundary, not a UI filter. The retrieval filter is built server-side from verified entitlements, never from the request body.

02 / INSIDE THE PRODUCT

Ask the question.
Check the source.

Five views of the delivered platform.
Each shows another part of the path from file to trusted answer.

SageBot chat interface scoped to an approved topic

Questions scoped to what you may see.

Employees ask questions scoped to a topic or all authorized topics; follow-ups are condensed into standalone queries before retrieval runs.

SageBot chat interface scoped to an approved topic
FILE TO TRUSTED ANSWER

UploadClassifyTranscribe or OCRIndexRetrieveGroundCite

03 / GROUNDING AND AUTHORIZATION

The browser can suggest.
The server decides.

User identity is derived from the validated Cognito JWT, never from the request body. The same enforcement applies to conversations, feedback and citation access, where a retrieved transcript is mapped back to its original file and served only through a short-lived, entitlement-checked URL.

The generation prompt constrains the model to answer only from retrieved context, to state plainly when the documents do not contain the answer, and to ignore instructions embedded inside retrieved documents — prompt injection hidden in an uploaded file is a real attack surface, and was designed and tested against.

Look under the hood ↘
01

Classify the incoming file

Each file is routed to direct copy, Textract OCR or Transcribe transcription — including detecting that a PDF is actually a scan with no usable text layer.

NATIVE DOCUMENT

Direct extraction

Text-bearing documents are parsed and written straight to Knowledge-Base-ready form with metadata sidecars.

SCAN OR MEDIA

OCR and transcription

Scanned pages go through Textract; audio and video go through Transcribe, with completion events unified into one durable path.

02

Build the filter server-side

Retrieval runs against a metadata filter constructed from the user's verified entitlements, so restricted content is never a search hit.

03

Answer only from what was retrieved

The model grounds every answer in retrieved context and abstains when the content does not contain the answer.

04 / THE TECHNOLOGY & THE REASON

Serverless throughout.
Cost as a design input.

SageBot is deliberately kept to five functional Lambda components plus managed AWS services. OpenSearch Serverless allocates capacity even when idle, Transcribe bills by media duration and embedding bills by ingested tokens — so cost was treated as an architecture input, not a later surprise.

RETRIEVAL

Bedrock Knowledge Bases

Drives incremental ingestion into the vector index and serves retrieval for every grounded answer.

Why incremental?

Unchanged documents are never re-embedded, so a routine upload does not re-bill the whole corpus.

VECTOR INDEX

OpenSearch Serverless

Holds the embeddings that back retrieval, synchronized from the curated content bucket.

Why watch it closely?

It allocates capacity even when idle, so batched sync signals let one ingestion job cover many uploads.

MEDIA PROCESSING

Transcribe + Textract

Transcribe converts audio and video to text; Textract OCRs scanned pages and photographed documents.

Why unify the events?

Transcribe reports through EventBridge and Textract through SNS — two event shapes for the same logical outcome, merged into one durable completion path.

RUNTIME

AWS Lambda

Five functional components carry classification, completion handling, retrieval, generation and administration.

Why response streaming?

A streaming Function URL behind CloudFront avoids the persistent connection state and reconnect handling a WebSocket estate would add.

STATE & MANIFEST

DynamoDB

Holds the ingestion manifest mapping every source object version to its curated derivatives, plus conversation and feedback records.

Why a manifest?

Deletion resolves deterministically — the derived object often has a different name and format than the source.

IDENTITY & DELIVERY

Cognito + CloudFront

Cognito issues the JWT that identity is derived from; CloudFront fronts the streaming function with Origin Access Control.

Why Origin Access Control?

The function cannot be invoked directly, so CloudFront and WAF cannot be bypassed.

The architecture and product narrative reproduce the supplied project documentation. Interface values are product screen data.

Explore the documented platform stack

Retrieval & generation
Amazon Bedrock Knowledge Bases · Bedrock foundation model · OpenSearch Serverless
Media processing
Amazon Transcribe · Amazon Textract · automatic scan detection
Runtime & events
AWS Lambda · EventBridge · SNS · dead-letter queue with retries
State
Amazon DynamoDB · ingestion manifest · conversation and feedback records
Identity & delivery
Amazon Cognito · Amazon CloudFront · Origin Access Control · WAF
Cost controls
Checksum tracking · incremental sync · batched sync signals · budgets, cost-allocation tags and a per-component dashboard

Technology names identify the documented implementation, not partnerships or endorsements.

A CONVERSATION ABOUT YOUR KNOWLEDGE WORKFLOW

Where does your assistant
stop being trustworthy?

Bring one internal knowledge workflow — the formats you actually have, the permissions that apply, and the answers people need to verify. In 20 minutes, we will map where grounding and authorization have to meet.

20 minutes · Your content, permissions and constraints

CONTACT PREVIEW

Contact destination

No message has been sent. The destination will be connected before outreach.