← Back to projects
Personal portfolio project

Meridian Knowledge & Access Agent

A controlled document corpus is ingested and split into section-aware chunks. Amazon Titan Text Embeddings v2 on Bedrock generates 1,024-dimensional embeddings; vectors and metadata are stored in PostgreSQL with pgvector. At query time, the system retrieves relevant passages using semantic similarity plus metadata signals, then generates an evidence-grounded response with conflict handling and an unsupported-answer fallback.

View on GitHub
FastAPIPythonPostgreSQLpgvectorAmazon BedrockTitan Text Embeddings v2Llama 3.3ReactDockerMCP

Corpus size

25 pages, 152 chunks

Evaluation cases

Clean/control, hard-conflict, near-conflict, and noise cases

Bedrock region

us-east-2

Automated tests

Test suite passing (count pending final verification)

Demo setup

Local Docker + Bedrock (preferred demo environment)

Possible production target

ECS Fargate / RDS — not continuously deployed

Retrieval

The corpus (25 pages, 152 chunks) is split into section-aware chunks so retrieved passages preserve their original document context rather than arbitrary fixed-length windows.

Amazon Titan Text Embeddings v2 (via Amazon Bedrock, us-east-2) generates 1,024-dimensional embeddings for each chunk. Vectors and their metadata are stored in PostgreSQL using pgvector, and queries are answered with semantic similarity search combined with metadata signals rather than similarity alone.

Conflict & freshness evaluation

The evaluation corpus was deliberately built to include clean/control cases, hard-conflict cases, near-conflict cases, and noise cases, so retrieval and response quality can be tested against ambiguous and contradictory source material — not only straightforward lookups.

When retrieved passages disagree, the system is designed to surface that conflict rather than silently picking one source.

Evidence grounding & fallback

Responses are generated from retrieved evidence rather than open-ended generation, with Llama 3.3 used for generation on top of the retrieved context.

When the corpus does not contain sufficient support for a question, the system is designed to fall back rather than produce an unsupported answer.

Limitations & roadmap

This is a personal portfolio project built against a fictional Meridian Financial Group document corpus — it is not Fidelity production work and should not be read as such.

Live Confluence integration, a custom MCP server, a Spring AI migration, and a workflow-automation agent are roadmap items only; they are not part of the current implementation.

A possible production target is ECS Fargate with RDS, but the project is not continuously deployed — local Docker plus Bedrock is the current demo environment.

Implemented

  • Section-aware document chunking over a controlled document corpus
  • 1,024-dimensional embeddings via Amazon Titan Text Embeddings v2 on Bedrock
  • Vector + metadata storage and retrieval in PostgreSQL with pgvector
  • Evidence-grounded response generation with conflict detection
  • Fallback behavior when the corpus does not support an answer

Roadmap (planned, not implemented)

  • Live Confluence integration
  • Custom MCP server
  • Spring AI migration
  • Workflow-automation agent
Architecture diagram coming soon — add screenshots/diagram assets when supplied.