A portfolio RAG chatbot. Visitors ask questions about my projects, blog posts, and experience; the bot answers using retrieval-augmented generation over my markdown content.
Deployed on AWS: API Gateway → Lambda (container) → FastAPI → (Phase 3) Claude API.
| Phase | Description | Status |
|---|---|---|
| 1 | Infrastructure scaffolding | 🚧 Deploy to complete |
| 2 | Document ingestion & embeddings | ⏳ Not started |
| 3 | Retrieval & RAG chain | ⏳ Not started |
| 4 | Chat memory & frontend integration | ⏳ Not started |
See docs/02-phase-plan.md for the full learning roadmap.
- AWS CLI configured (
aws sts get-caller-identityshould work) - Terraform >= 1.6
- Docker (with BuildKit)
- Python 3.12
# 1. Bootstrap remote state + auto-generate backend.tf (one-time per account)
./scripts/initialize_aws.sh
# 2. Configure variables
cd infra/envs/dev
cp terraform.tfvars.example terraform.tfvars
# edit terraform.tfvars — set your name in common_tags
# 3. Init
terraform init
cd ../../..
# 4. Deploy (builds image, pushes to ECR, applies Terraform)
./scripts/deploy.sh./scripts/local-dev.sh
# Then: curl http://localhost:8000/healthcd backend
pip install -r requirements-dev.txt
pytest tests/echo-mind/
├── infra/ Terraform modules and environment compositions
├── backend/ FastAPI app + Lambda Dockerfile
├── frontend/ Chat UI (HTML/CSS)
├── scripts/ deploy, local-dev, bootstrap helpers
└── docs/ Architecture diagram and phase plan