Enterprise-Grade RAG System for Internal Knowledge Management

pdi · Tech · 2026 · source Agentic: no · promotional bias: high · source-backed · extracted with prompt 0.5.6 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: Internal enterprise knowledge assistant

PDI Technologies needed employees to access fragmented company knowledge across websites, Confluence, SharePoint, Azure DevOps, and other data sources through a secure AI chat interface.

Constraints:

Architecture

PDI built PDIQ on AWS with configurable crawlers, S3 document storage, SNS events, Lambda/ECS processing, Bedrock models, Titan embeddings, Aurora PostgreSQL vector storage, DynamoDB metadata, Amazon Nova Pro for retrieval/response, and zero-trust role-based access controls. Documents are converted to markdown, enriched with generated image captions, chunked, summarized, embedded, and retrieved for chat answers.

Diagram confidence: explicit (topology described by the source).

flowchart LR
  administrator-crawler-configuration["Administrator crawler configuration"] --> crawler-tasks["Crawler tasks"]
  crawler-tasks --> s3-document-store["S3 document store"]
  s3-document-store --> document-processing-lambda["Document processing Lambda"]
  document-processing-lambda --> bedrock-models["Bedrock models"]
  document-processing-lambda --> aurora-vector-store["Aurora vector store"]
  document-processing-lambda --> dynamodb-metadata["DynamoDB metadata"]
  aurora-vector-store --> pdiq-chat-assistant["PDIQ chat assistant"]
  pdiq-chat-assistant --> zero-trust-access-layer["Zero-trust access layer"]
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Administrator crawler configuration Configures knowledge bases, crawler settings, credentials, and schedules. Crawler tasks
Crawler tasks Extract content from Confluence, Azure DevOps, SharePoint, and other sources. S3 document store
S3 document store Stores source documents and triggers downstream processing on object changes. Document processing Lambda
Document processing Lambda Chunks, summarizes, captions images, and generates embeddings. Bedrock models, Aurora vector store, DynamoDB metadata
Bedrock models Generate captions, summaries, embeddings, and responses. Document processing Lambda
Aurora vector store Stores vector embeddings and text/metadata for similarity search. PDIQ chat assistant
DynamoDB metadata Stores crawler configuration, image metadata, and captions for reuse. Document processing Lambda
PDIQ chat assistant End-user interface for role-appropriate knowledge search and answers. Zero-trust access layer
Zero-trust access layer Validates permissions and group context before users query datasets. —

Data flow

Administrators configure crawlers; Lambda invokes ECS crawler tasks; source documents land in S3; object events trigger chunking, image captioning, summary generation, and embeddings; Aurora stores vectors; users query role-appropriate knowledge bases; Nova Pro retrieves relevant content and generates responses.

“invokes crawlers that are executed as tasks by”article, stated
“PDIQ scans each document chunk and generates vector embeddings. This data is stored in Aurora PostgreSQL database”article, stated

Why this architecture

PDI chose a custom AWS RAG architecture to make scattered enterprise knowledge searchable while preserving metadata, image context, source synchronization, role-based access, and serverless scale.

“Internal teams at PDI Technologies were struggling with information scattered across disparate systems including websites, Confluence pages, SharePoint sites”article, stated
“By using Amazon serverless services, PDIQ can automatically scale with demand, reduce operational overhead, and optimize costs.”article, stated

Models used: Amazon Bedrock · Amazon Titan Text Embeddings V2 · Amazon Nova Pro · Aurora PostgreSQL · AWS Lambda · Amazon ECS · DynamoDB · S3

Scale

Alternatives considered (roads not taken)

Use generic document chunks without whole-document summaries.

Rejected because: PDI found summaries atop chunks improve the context available to the LLM.

“when a particular chunk is matched based on similarity search, the LLM has access to the entire summary of the document and not only the chunk that matched.”article, stated

Ignore image content in source documents.

Rejected because: PDI injects generated image captions into markdown to make images searchable.

“This approach ensures that image content becomes part of the searchable text, enabling richer and more accurate context retrieval”article, stated

Require one crawler design for all sources.

Rejected because: Separate crawler configurations allow source-specific extraction and extensibility.

“By building separate crawler configurations, PDIQ offers easy extensibility into the platform to configure additional crawlers on demand.”article, stated

Patterns

rag-retrieval (retrieval)

PDIQ embeds documents and retrieves relevant content for grounded chat answers.

“The key objective of this step is to generate vector embeddings so that they can be used for similarity matching and effective retrieval”article, stated

privacy-preserving-processing (governance)

Zero-trust RBAC and encrypted crawler credentials constrain which knowledge bases users can query.

“access knowledge bases based on group permissions validated at the application layer.”article, stated

semantic-caching (optimization)

PDI reuses generated image captions to avoid repeated LLM calls for the same images.

“PDIQ stores image metadata (file location and generated captions) in Amazon DynamoDB.”article, stated

Tradeoffs

Build a custom RAG pipeline on AWS.

Chose Serverless crawlers, S3, Lambda/ECS, Bedrock, Aurora, and DynamoDB. over A simple off-the-shelf chat over documents..

Rationale: PDI needed source-specific crawling, image captioning, dynamic token management, security, and sync.

“The architecture successfully balances performance, cost, and scalability while maintaining security and authentication requirements.”article, stated

Use serverless architecture.

Chose AWS serverless services that scale with demand. over Always-on custom infrastructure..

Rationale: The article ties serverless to automatic scaling, lower overhead, and cost optimization.

“automatically scale with demand, reduce operational overhead, and optimize costs.”article, stated

Gotchas (what bit them)

Images disappear from search if only text chunks are embedded.

Root cause: Markdown conversion can replace images with references unless captions are injected.

Resolution: Generate captions and inject them into markdown next to image tags.

“This caption gets injected back into the markdown file, next to the tag, thereby enriching the document content.”article, stated

Source synchronization needs deletes and updates, not just adds.

Root cause: Enterprise documents change or disappear after initial ingestion.

Resolution: Compare hashes for updates and trigger cleanup jobs for deleted source objects.

“If PDIQ determines that a specific source document no longer exists, it triggers a delete operation on the S3 bucket”article, stated

Chunk-only context can be insufficient for accurate answers.

Root cause: The matched chunk may not contain enough whole-document context.

Resolution: Add customized summary sections atop chunks for LLM context.

“the LLM has access to the entire summary of the document and not only the chunk that matched.”article, stated

Evaluation

PDI evaluates through approval-rate accuracy, support resolution, customer satisfaction, NPS, cost reduction, token management, and retrieval quality.

Metrics: Accuracy approval rate 60% to 79% · CSAT · NPS · Resolution rates · Cost reduction · Token balance between summaries and content

“PDIQ provides key business outcomes that include:”article, stated

Outcomes

PDIQ is designed for enterprise-wide internal knowledge and serverless scale, with source crawlers across Confluence, Azure DevOps, SharePoint, and other systems.

“The tool empowers PDI support teams to resolve customer queries significantly faster”article, stated