AI Engineering

How this portfolio works — RAG pipeline, tech choices, and AWS architecture.

RAG Pipeline

Source Data
resume.yaml + projects.yaml
Embeddings
HuggingFace all-MiniLM-L6-v2
Vector Store
ChromaDB on AWS EFS
LLM
Claude claude-sonnet-4-6 via LangChain
Streaming API
FastAPI SSE → Next.js chat UI
Resume YAML is chunked and embedded offline into ChromaDB (persisted on EFS). At query time, the top-4 relevant chunks are retrieved and injected into the Claude prompt as grounding context — so the AI answers as Jackie, citing real facts, not hallucinations. Responses stream token-by-token via SSE to the chat panel.

Why Each Tech

Claude APILLM

Best-in-class instruction-following and multilingual (EN/ZH) capability. Streaming via Anthropic SDK integrates cleanly with FastAPI SSE.

ChromaDBVector DB

Lightweight, embeddable vector DB — no separate service needed. Persisted on AWS EFS so it survives container restarts without re-embedding on every deploy.

HuggingFace all-MiniLM-L6-v2Embeddings

Fast, small (80MB), runs CPU-only in Fargate. Good semantic similarity for resume-style factual retrieval without needing a paid embedding API.

LangChainOrchestration

Handles chunking, retrieval chain wiring, and history management. Swappable components — easy to upgrade models or vector stores without rewriting retrieval logic.

FastAPI + SSEBackend

Async-native Python, minimal overhead. Server-Sent Events keep the connection simple — no WebSocket handshake — and stream tokens to the browser as they arrive.

AWS ECS FargateInfra

Serverless containers — no EC2 to manage. Scales to zero when idle, spins up in seconds. Paired with EFS for persistent ChromaDB storage across deployments.

AWS Architecture

Browser
CloudFront CDN
static
S3 (Next.js)
/api/*
ALB
ECS Fargate
EFS (ChromaDB)
Secrets Manager
🌐
CloudFront + S3
CDN + static hosting for Next.js export
⚙️
ECS Fargate
Serverless container running FastAPI backend
💾
EFS
Persistent filesystem — ChromaDB survives redeploys
📦
ECR
Docker image registry for backend container
⚖️
ALB
Load balancer — routes /api/* from CloudFront to ECS
🔐
Secrets Manager
ANTHROPIC_API_KEY, GITHUB_TOKEN at runtime

Live Stats

Conversations started
Questions asked