reem-mor/ai-engineering-portfolio

AI-Augmented Software Engineering portfolio archive — lectures, homework, capstone RAG projects. By an AI Engineer × SRE.

Python

1

305 commits

updated Jul 20, 2026

See the code

README

AI Engineering Portfolio

Learning archive & capstone projects — Amdocs / Lab17 AI-Augmented Software Engineering

AI Engineer × SRE — production-minded systems · grounded RAG · agentic ops · deterministic safety floors

CI Python Tests Ecosystem Stack AI

Python FastAPI Flask AWS Bedrock Docker Kubernetes Terraform React n8n MCP

Employer review · Featured work · Skills · Architecture · Learning journey · Curriculum · MCP & agents · Evidence gallery · Quick start

Re'em Mor · B.Sc. CS (GPA 91) · Production SRE/NOC @ regulated multi-jurisdiction gaming · Profile README

Former repo name: amdocs-ai-course (GitHub redirects automatically)


Who this is for

AudienceStart hereTime
Hiring manager / recruiter60-second review → PITER AiOps~2 min
Technical interviewerFeatured work → incident-assistant-rag/ → Evidence gallery~10 min
Engineering lead (AI/SRE)Skills matrix · RAG evolution · Production habits~15 min
Self-learnerQuick start · docs/SYLLABUS.md—

⏱ 60-second employer review

The headline: I build AI systems that survive production — not demos that only work on the happy path.

By day I run regulated, multi-jurisdiction infrastructure (500+ nodes, Kubernetes, Terraform, on-call incident response). This archive shows how I applied that ops mindset to AI engineering: grounded RAG, tool-using agents, MCP integrations, and guardrails that override LLM output when safety matters.

Review in this order:

  1. PITER AiOps — flagship Bedrock Agent + RAG incident platform · 325+ tests
  2. IncidentIQ capstone — full-stack grounded RAG in this repo · 90 tests · eval 5/5
  3. course-assistant-bot — production Telegram bot · 224 tests · mypy strict
  4. HINDSIGHT — document intelligence pipeline · n8n + Gemini + FastAPI
  5. This repo — honest progression from Python → RAG → agents/MCP with CI evidence

What I learned & practiced

Four stages, each with runnable artifacts — not slide-only coursework.

StageTopics masteredKey deliverablesOutcome
1 — FoundationsPython 3.12, OOP, NumPy, pytesthw01–03, lectures 01–03Typed, tested Python baseline
2 — RAG & WebEmbeddings, FAISS, chunking, Flask/FastAPIhw04 scaffold → IncidentIQGrounded answers + source citation + no-context refusal
3 — Ops & AgentsDocker, EC2, MCP, n8n, Bedrock, LangGraph, Open WebUIhw05–07, lectures 07–11Containerized labs, agent workflows, tool servers
4 — Capstone & FlagshipsBedrock KB → Agent, extraction to standalone reposPITER, bot, HINDSIGHTProduction-minded systems with CI, Docker, guardrails

Engineering principles repeated across every project:

  • Deterministic safety floors — scoring, thresholds, and eligibility in code, not LLM prose
  • No-context refusal — fixed response when retrieval misses; no wasted LLM calls
  • Structured errors, health endpoints, secrets via env vars only
  • pytest + ruff in CI; externals mocked in tests

Production-minded AI systems — each with screenshot evidence, stack, and test counts. Pin order: flagships README.


🛰️ PITER AiOps — flagship · 325+ tests

PITER AiOps — investigation detail with triage and RAG citations

What it doesAgentic incident-response for NOC/SRE: Bedrock Agent + RAG over runbooks, 4 Lambda action groups, session memory, safe escalation previews (humans decide).
StackAWS Bedrock · RAG · Lambda · Flask · React · Docker
HighlightsAlert storm → P1 triage → RAG citations → correlation chain → escalation preview

PITER — RAG citations PITER — demo gallery


🧠 IncidentIQ — in-repo capstone · 90 tests · eval 5/5

IncidentIQ — grounded RAG chat with source citations and confidence badges

What it doesFull-stack incident assistant: upload runbooks → FAISS index → grounded chat with source citations, confidence scores, and fixed refusal when retrieval misses.
StackFastAPI · OpenAI · FAISS · React · Docker
HighlightsDeterministic no-context refusal · RAG eval harness · Swagger API · incident analysis panel

IncidentIQ — no-context refusal IncidentIQ — incident analysis IncidentIQ — RAG evaluation 5/5


🔎 HINDSIGHT — document intelligence pipeline

HINDSIGHT — n8n cloud workflow canvas

What it doesIngests ops documents → Gemini extraction → deterministic enrichment → semantic search over incident history. Region-aware routing for SEV1/confidential alerts.
Stackn8n · FastAPI · Gemini · Supabase / pgvector
HighlightsCloud + local Docker · daily digest workflow · form intake → pipeline → email/Sheets

HINDSIGHT — pipeline dashboard HINDSIGHT — architecture


🤖 course-assistant-bot — production Telegram bot · 224 tests

course-assistant-bot — LangGraph router architecture

What it doesBilingual (HE/EN) Telegram course-ops: schedule, recordings, homework submission, RAG recommendations, admin FSM flows. LLM classifies; code enforces rules.
StackPython · uv · SQLAlchemy/Alembic · LangGraph · Docker · mypy strict
HighlightsAsync PTB v21 · all externals mocked in CI · Alembic migrations · multi-LLM routing

⚡ Incident RAG (Bedrock) — AWS KB iteration · 111 tests

Bedrock KB — grounded answer with citations

What it doesSame incident domain as IncidentIQ, using managed Bedrock Knowledge Base — stepping stone to PITER Agent.
StackFlask · Bedrock KB · React · EC2
HighlightsRetrieveAndGenerate · refusal on low confidence · EC2 deployment evidence

Bedrock KB overview Bedrock refusal Bedrock pytest 111

RAG progression (honest arc):

Track A (OpenAI + local FAISS):  L04 → L06 → hw04 → incident-assistant-rag (capstone)
Track B (AWS Bedrock):           L09 → incident-rag-bedrock → piter-aiops (flagship Agent)

Hero image sources: docs/screenshots/featured/ · Regenerate: node scripts/capture-featured-previews.mjs


Skills & competencies

DomainSkillsEvidence in this repo
RAG & retrievalEmbeddings, FAISS, chunking, similarity thresholds, evaluation harness, source attributionIncidentIQ · Bedrock iteration
LLM applicationsGrounded generation, refusal paths, prompt + tool design, multi-LLM routingCapstone · hw06 n8n agent · bot
Agents & orchestrationAWS Bedrock Agent, LangChain/LangGraph, n8n workflows, MCP tool serversPITER · L08–11 · hw07 tools
BackendFastAPI, Flask, async Python, pydantic v2, REST APIs, OpenAPICapstone · lectures 05–06 · hw07 FastAPI server
FrontendReact, TypeScript, Vite, ops consolesCapstone · PITER frontend
SRE & DevOpsDocker Compose, EC2 labs, Nginx, health checks, CI/CD, secrets hygienehw05 · CI · .env.example
Qualitypytest (mocked externals), ruff, structured logging, idempotent scripts201+ in-repo tests · 4 CI matrices
Agent dev toolingMCP server wiring, Cursor skills/rules, cross-tool AGENTS.md.mcp.json · docs/AGENT-TOOLING.md
Technology stack — full list
AreaTechnologies
LanguagesPython 3.12
WebFastAPI, Flask, React, TypeScript, Vite
AIOpenAI, FAISS, AWS Bedrock KB/Agent, LangChain, LangGraph, Ollama
DataSQLite, Postgres, pgvector, Google Sheets (HINDSIGHT)
OpsDocker, EC2, n8n, MCP, Kubernetes & Terraform (production day-job context)
Qualityruff, pytest, GitHub Actions

Architecture

Colour-coded ecosystem — curriculum → in-repo capstones → external flagships:

Portfolio ecosystem map — interactive mermaid
flowchart TB
  subgraph archive["This repo — ai-engineering-portfolio"]
    L["lectures/ 01–11"]
    H["homework/ hw01–hw07"]
    CAP["incident-assistant-rag<br/>FastAPI · OpenAI · FAISS"]
    ITER["incident-rag-bedrock<br/>Bedrock KB iteration"]
  end
  subgraph external["flagships/ → standalone repos"]
    PITER["piter-aiops<br/>Bedrock Agent + tools"]
    HIND["hindsight<br/>n8n + Gemini pipeline"]
    BOT["course-assistant-bot<br/>Telegram HE/EN"]
  end
  L --> H --> CAP
  ITER -.->|evolved into| PITER
  H --> BOT
  CAP -.->|parallel track| PITER
  classDef archive fill:#11233a,stroke:#3b82f6,color:#cfe0ff
  classDef cap fill:#1e1430,stroke:#a855f7,color:#e6d6ff
  classDef ext fill:#2a2010,stroke:#f59e0b,color:#ffe6bf
  class L,H archive
  class CAP,ITER cap
  class PITER,HIND,BOT ext
LayerLocationRole
Curriculumlectures/, homework/, exercises/Authored notes + runnable demos
Capstoneprojects/incident-assistant-rag/Featured RAG app — 90 tests, evaluation harness
Iterationprojects/incident-rag-bedrock/Bedrock KB stepping-stone → PITER
Flagshipsflagships/Pointers to external production repos
Metadocs/, AGENTS.md, .mcp.jsonSetup, syllabus, agent/MCP tooling

Deep dive: docs/architecture/repository-architecture.md

RAG evolution — two tracks

Compare retrieval architectures — mermaid
flowchart LR
  subgraph trackA [Track A — Local FAISS]
    A1[Upload PDF] --> A2[Chunk + embed]
    A2 --> A3[FAISS index]
    A3 --> A4[Similarity search]
    A4 --> A5{Above threshold?}
    A5 -->|yes| A6[OpenAI chat + sources]
    A5 -->|no| A7[Fixed refusal]
  end
  subgraph trackB [Track B — AWS Bedrock]
    B1[S3 corpus] --> B2[Bedrock KB sync]
    B2 --> B3[RetrieveAndGenerate]
    B3 --> B4{Confidence OK?}
    B4 -->|yes| B5[Grounded answer]
    B4 -->|no| B6[Refusal]
    B2 --> B7[Bedrock Agent + Lambda tools]
    B7 --> B8[PITER AiOps]
  end
  trackA --> CAP[incident-assistant-rag]
  trackB --> BED[incident-rag-bedrock]
  BED --> B8
Capstone request flow — upload → index → grounded chat
sequenceDiagram
  autonumber
  participant U as Operator
  participant UI as React UI
  participant API as FastAPI
  participant IDX as FAISS index
  participant LLM as OpenAI

  U->>UI: Upload runbook PDF
  UI->>API: POST /documents
  API->>IDX: Chunk + embed + store
  U->>UI: Ask incident question
  UI->>API: POST /chat
  API->>IDX: Similarity search
  alt hits above threshold
    API->>LLM: Prompt + retrieved chunks
    LLM-->>API: Grounded answer
    API-->>UI: Answer + sources + scores
  else no context
    API-->>UI: Fixed refusal — no LLM call
  end

Learning journey

Four-stage colored flow — lectures + homework → capstone → flagships
flowchart TB
  subgraph stage1 [Stage 1 Foundations]
    L01[L01 Jupyter Python]
    L02[L02 Python intro]
    L03[L03 OOP NumPy]
    HW01[hw01 Jupyter]
    HW02[hw02 Python scripts]
    HW03[hw03 Titanic CLI]
    L01 --> L02 --> L03
    L01 --> HW01
    L02 --> HW02
    L03 --> HW03
  end

  subgraph stage2 [Stage 2 RAG and Web]
    L04[L04 NLP FAISS RAG]
    L05[L05 Flask]
    L06[L06 Flask SQLite RAG]
    HW04[hw04 RAG app]
    L04 --> L05 --> L06
    L04 --> HW04
    L06 --> HW04
  end

  subgraph stage3 [Stage 3 Ops and Agents]
    L07[L07 Docker AWS]
    L08[L08 MCP]
    L09[L09 Bedrock n8n]
    L10[L10 LangChain LangGraph]
    L11[L11 Open WebUI]
    HW05[hw05 EC2 Nginx]
    HW06[hw06 n8n agent]
    HW07[hw07 Open WebUI tools]
    L07 --> HW05
    L09 --> HW06
    L08 --> L11
    L11 --> HW07
    L10 --> HW07
  end

  subgraph stage4 [Stage 4 Capstone and Flagships]
    CAP[incident-assistant-rag]
    BED[incident-rag-bedrock]
    PITER[piter-aiops external]
    HW04 -.-> CAP
    L06 -.-> CAP
    BED -.-> PITER
  end

  stage1 --> stage2 --> stage3 --> stage4

  classDef foundations fill:#11233a,stroke:#3b82f6,color:#cfe0ff
  classDef rag fill:#1a2e1a,stroke:#22c55e,color:#dcfce7
  classDef ops fill:#2a2010,stroke:#f59e0b,color:#ffe6bf
  classDef cap fill:#1e1430,stroke:#a855f7,color:#e6d6ff
  class L01,L02,L03,HW01,HW02,HW03 foundations
  class L04,L05,L06,HW04 rag
  class L07,L08,L09,L10,L11,HW05,HW06,HW07 ops
  class CAP,BED,PITER cap

Source: docs/diagrams/learning-path.mermaid


Curriculum

Full map: docs/SYLLABUS.md · lectures/README.md · homework/README.md

Lectures 01–11 — topics & skills
#TopicPathSkills gained
01Jupyter & Python basicslectures/01_jupyter_python_basics/Python, notebooks
02Python foundationslectures/02_python_intro/Functions, I/O, data structures
03OOP & NumPylectures/03_oop_numpy/Classes, arrays
04NLP, embeddings, FAISS, RAGlectures/04_nlp_rag/Embeddings, vector search, RAG
05Flask web developmentlectures/05_flask_intro/Flask, Docker
06Flask + SQLite + RAGlectures/06_flask_advanced_rag/REST API, FAISS chat UI
07Docker & AWS EC2lectures/07_docker_aws/Containers, EC2, architecture diagrams
08Model Context Protocollectures/08_mcp/MCP stdio servers, tool-calling
09Bedrock Flows & n8nlectures/09_flows_bedrock_n8n/Bedrock, workflow automation
10LangChain & LangGraphlectures/10_langchain_langgraph/Agent memory, routing, graphs
11Local models & Open WebUIlectures/11_local_models_webui/Ollama, local KB → hw07
Homework hw01–hw07 — assignments & evidence
HWTopicStatusEvidence
hw01Jupyter introCompleteNotebook
hw02Python foundationsCompleteScripts + exercises
hw03OOP / Titanic CLICompletepytest
hw04RAG web appScaffold — full impl in capstoneDocker scaffold
hw05EC2 / Docker / NginxCompleteScreenshots
hw06n8n customer-support agentCompleteWorkflow + guardrails
hw07Open WebUI + MCP toolsCompleteScreenshots · Playwright e2e

MCP & agent tooling

This repo is configured for AI-assisted development — MCP servers, Cursor skills, and cross-tool agent guidance (AGENTS.md).

MCP ecosystem — how agents connect to course tooling
flowchart LR
  subgraph ide [Agent IDEs]
    Cursor[Cursor]
    Claude[Claude Code]
  end
  subgraph mcp [MCP layer — .mcp.json]
    CT[course-tools]
    PW[playwright]
    KG[kaggle]
    AWK[aws-knowledge]
    AWA[aws-api]
    BKB[bedrock-kb]
    N8N[n8n-workflows]
    LOV[lovable]
  end
  subgraph use [Used for]
    L08[Lecture 08 demo]
    E2E[hw07 UI capture]
    DS[hw07 datasets]
    DOC[AWS docs Q&A]
    BR[Bedrock KB labs]
    HW6[hw06 workflows]
  end
  Cursor --> mcp
  Claude --> mcp
  CT --> L08
  PW --> E2E
  KG --> DS
  AWK --> DOC
  BKB --> BR
  N8N --> HW6
ServerUse in this repo
course-toolsLecture 08 stdio MCP demo
playwrightE2E / UI capture (hw07)
kagglehw07 Netflix dataset
aws-knowledgeAWS documentation Q&A
aws-apiAWS API operations
bedrock-kbBedrock Knowledge Base retrieval
n8n-workflowshw06 / lecture 09 automation
lovableOptional UI experiments

Bootstrap: docs/AGENT-TOOLING.md · scripts/setup-dev.ps1 · .mcp.json


Detailed captures beyond the featured heroes above — homework labs, API surface, and test output.

IncidentIQ — full walkthrough

API (Swagger)KB indexGrounded chatRefusal (no context)
01040607
Tests (90)Evaluation 5/5
1112

Architecture: projects/incident-assistant-rag/docs/architecture.png

Bedrock learning iteration

KB overviewGrounded answerRefusal / low confidencepytest (111)
kbanswerrefusaltests

Ops & agent homework

hw05 EC2 + Docker + Nginxhw06 n8n agenthw07 Open WebUI KBhw07 tool server
ec2n8nkbtools

External flagships — more in each repo

PITER · HINDSIGHT · course-assistant-bot

Index: docs/screenshots/README.md · Hero captures: docs/screenshots/featured/


Production engineering habits

Ops-minded patterns backed by repo evidence — not demo-only AI:

SignalWhere
CI gate — ruff + 4 pytest matrices.github/workflows/ci.yml
Health / deep checksCapstone /health endpoints
No-context refusal (deterministic)Capstone + Bedrock iteration
RAG evaluation harnessCapstone eval 5/5
Docker Compose reproducibilityCapstone, hw07
Secrets hygiene.env.example, MCP ${env:VAR}
Incident-domain corpusShared runbook samples across projects
EC2 / container ops labhomework/hw05/nginx-docker-lab/
Guardrails in n8n agentInput guardrails + agent prompt — hw06

Repository structure

docs/  lectures/  homework/  exercises/  projects/  flagships/  resources/  scripts/
FolderRole
lectures/Lessons 01–11 — demos colocated with notes
homework/Assignments hw01–07 — evidence colocated
projects/In-repo capstone + Bedrock iteration
flagships/Pointers → external production repos
docs/Syllabus, setup, architecture, agent tooling

Full map: docs/STRUCTURE.md · Clean local clutter: .\scripts\clean-workspace.ps1


Quick start

git clone https://github.com/reem-mor/ai-engineering-portfolio.git
cd ai-engineering-portfolio
python -m venv .venv && source .venv/bin/activate   # Windows: .\.venv\Scripts\Activate.ps1
pip install -r requirements-dev.txt

Capstone (Docker):

cd projects/incident-assistant-rag && docker compose up --build
# → http://localhost:8080

CI parity:

cd projects/incident-assistant-rag/backend && pip install -r requirements.txt && pytest -q
cd projects/incident-rag-bedrock && pip install -r requirements.txt && pytest -q
cd lectures/10_langchain_langgraph && pip install -r requirements.txt && pytest -q
cd homework/hw07 && pip install -r requirements.txt && pytest -q
ruff check .

Human setup: docs/setup.md · Agent bootstrap: scripts/setup-dev.ps1


Documentation

DocContents
docs/README.mdDocumentation hub
docs/SYLLABUS.mdFull curriculum map
docs/STRUCTURE.mdRepository layout
flagships/README.mdExternal repo pointers + pin order
docs/AGENT-TOOLING.mdMCP, skills, CI matrix
docs/setup.mdClone, venv, per-project deps
docs/portfolio/GITHUB_PROFILE_PLAYBOOK.mdProfile README + GitHub pins
AGENTS.mdCross-tool agent guidance

License

MIT for original code — LICENSE. Course slides/handouts: resources/MANIFEST.md only (instructor IP — not redistributed).

reem-mor/ai-engineering-portfolio

AI-Augmented Software Engineering portfolio archive — lectures, homework, capstone RAG projects. By an AI Engineer × SRE.

Python

1

305 commits

updated Jul 20, 2026

See the code

README

AI Engineering Portfolio

Learning archive & capstone projects — Amdocs / Lab17 AI-Augmented Software Engineering

AI Engineer × SRE — production-minded systems · grounded RAG · agentic ops · deterministic safety floors

CI Python Tests Ecosystem Stack AI

Python FastAPI Flask AWS Bedrock Docker Kubernetes Terraform React n8n MCP

Employer review · Featured work · Skills · Architecture · Learning journey · Curriculum · MCP & agents · Evidence gallery · Quick start

Re'em Mor · B.Sc. CS (GPA 91) · Production SRE/NOC @ regulated multi-jurisdiction gaming · Profile README

Former repo name: amdocs-ai-course (GitHub redirects automatically)


Who this is for

AudienceStart hereTime
Hiring manager / recruiter60-second review → PITER AiOps~2 min
Technical interviewerFeatured work → incident-assistant-rag/ → Evidence gallery~10 min
Engineering lead (AI/SRE)Skills matrix · RAG evolution · Production habits~15 min
Self-learnerQuick start · docs/SYLLABUS.md—

⏱ 60-second employer review

The headline: I build AI systems that survive production — not demos that only work on the happy path.

By day I run regulated, multi-jurisdiction infrastructure (500+ nodes, Kubernetes, Terraform, on-call incident response). This archive shows how I applied that ops mindset to AI engineering: grounded RAG, tool-using agents, MCP integrations, and guardrails that override LLM output when safety matters.

Review in this order:

  1. PITER AiOps — flagship Bedrock Agent + RAG incident platform · 325+ tests
  2. IncidentIQ capstone — full-stack grounded RAG in this repo · 90 tests · eval 5/5
  3. course-assistant-bot — production Telegram bot · 224 tests · mypy strict
  4. HINDSIGHT — document intelligence pipeline · n8n + Gemini + FastAPI
  5. This repo — honest progression from Python → RAG → agents/MCP with CI evidence

What I learned & practiced

Four stages, each with runnable artifacts — not slide-only coursework.

StageTopics masteredKey deliverablesOutcome
1 — FoundationsPython 3.12, OOP, NumPy, pytesthw01–03, lectures 01–03Typed, tested Python baseline
2 — RAG & WebEmbeddings, FAISS, chunking, Flask/FastAPIhw04 scaffold → IncidentIQGrounded answers + source citation + no-context refusal
3 — Ops & AgentsDocker, EC2, MCP, n8n, Bedrock, LangGraph, Open WebUIhw05–07, lectures 07–11Containerized labs, agent workflows, tool servers
4 — Capstone & FlagshipsBedrock KB → Agent, extraction to standalone reposPITER, bot, HINDSIGHTProduction-minded systems with CI, Docker, guardrails

Engineering principles repeated across every project:

  • Deterministic safety floors — scoring, thresholds, and eligibility in code, not LLM prose
  • No-context refusal — fixed response when retrieval misses; no wasted LLM calls
  • Structured errors, health endpoints, secrets via env vars only
  • pytest + ruff in CI; externals mocked in tests

Production-minded AI systems — each with screenshot evidence, stack, and test counts. Pin order: flagships README.


🛰️ PITER AiOps — flagship · 325+ tests

PITER AiOps — investigation detail with triage and RAG citations

What it doesAgentic incident-response for NOC/SRE: Bedrock Agent + RAG over runbooks, 4 Lambda action groups, session memory, safe escalation previews (humans decide).
StackAWS Bedrock · RAG · Lambda · Flask · React · Docker
HighlightsAlert storm → P1 triage → RAG citations → correlation chain → escalation preview

PITER — RAG citations PITER — demo gallery


🧠 IncidentIQ — in-repo capstone · 90 tests · eval 5/5

IncidentIQ — grounded RAG chat with source citations and confidence badges

What it doesFull-stack incident assistant: upload runbooks → FAISS index → grounded chat with source citations, confidence scores, and fixed refusal when retrieval misses.
StackFastAPI · OpenAI · FAISS · React · Docker
HighlightsDeterministic no-context refusal · RAG eval harness · Swagger API · incident analysis panel

IncidentIQ — no-context refusal IncidentIQ — incident analysis IncidentIQ — RAG evaluation 5/5


🔎 HINDSIGHT — document intelligence pipeline

HINDSIGHT — n8n cloud workflow canvas

What it doesIngests ops documents → Gemini extraction → deterministic enrichment → semantic search over incident history. Region-aware routing for SEV1/confidential alerts.
Stackn8n · FastAPI · Gemini · Supabase / pgvector
HighlightsCloud + local Docker · daily digest workflow · form intake → pipeline → email/Sheets

HINDSIGHT — pipeline dashboard HINDSIGHT — architecture


🤖 course-assistant-bot — production Telegram bot · 224 tests

course-assistant-bot — LangGraph router architecture

What it doesBilingual (HE/EN) Telegram course-ops: schedule, recordings, homework submission, RAG recommendations, admin FSM flows. LLM classifies; code enforces rules.
StackPython · uv · SQLAlchemy/Alembic · LangGraph · Docker · mypy strict
HighlightsAsync PTB v21 · all externals mocked in CI · Alembic migrations · multi-LLM routing

⚡ Incident RAG (Bedrock) — AWS KB iteration · 111 tests

Bedrock KB — grounded answer with citations

What it doesSame incident domain as IncidentIQ, using managed Bedrock Knowledge Base — stepping stone to PITER Agent.
StackFlask · Bedrock KB · React · EC2
HighlightsRetrieveAndGenerate · refusal on low confidence · EC2 deployment evidence

Bedrock KB overview Bedrock refusal Bedrock pytest 111

RAG progression (honest arc):

Track A (OpenAI + local FAISS):  L04 → L06 → hw04 → incident-assistant-rag (capstone)
Track B (AWS Bedrock):           L09 → incident-rag-bedrock → piter-aiops (flagship Agent)

Hero image sources: docs/screenshots/featured/ · Regenerate: node scripts/capture-featured-previews.mjs


Skills & competencies

DomainSkillsEvidence in this repo
RAG & retrievalEmbeddings, FAISS, chunking, similarity thresholds, evaluation harness, source attributionIncidentIQ · Bedrock iteration
LLM applicationsGrounded generation, refusal paths, prompt + tool design, multi-LLM routingCapstone · hw06 n8n agent · bot
Agents & orchestrationAWS Bedrock Agent, LangChain/LangGraph, n8n workflows, MCP tool serversPITER · L08–11 · hw07 tools
BackendFastAPI, Flask, async Python, pydantic v2, REST APIs, OpenAPICapstone · lectures 05–06 · hw07 FastAPI server
FrontendReact, TypeScript, Vite, ops consolesCapstone · PITER frontend
SRE & DevOpsDocker Compose, EC2 labs, Nginx, health checks, CI/CD, secrets hygienehw05 · CI · .env.example
Qualitypytest (mocked externals), ruff, structured logging, idempotent scripts201+ in-repo tests · 4 CI matrices
Agent dev toolingMCP server wiring, Cursor skills/rules, cross-tool AGENTS.md.mcp.json · docs/AGENT-TOOLING.md
Technology stack — full list
AreaTechnologies
LanguagesPython 3.12
WebFastAPI, Flask, React, TypeScript, Vite
AIOpenAI, FAISS, AWS Bedrock KB/Agent, LangChain, LangGraph, Ollama
DataSQLite, Postgres, pgvector, Google Sheets (HINDSIGHT)
OpsDocker, EC2, n8n, MCP, Kubernetes & Terraform (production day-job context)
Qualityruff, pytest, GitHub Actions

Architecture

Colour-coded ecosystem — curriculum → in-repo capstones → external flagships:

Portfolio ecosystem map — interactive mermaid
flowchart TB
  subgraph archive["This repo — ai-engineering-portfolio"]
    L["lectures/ 01–11"]
    H["homework/ hw01–hw07"]
    CAP["incident-assistant-rag<br/>FastAPI · OpenAI · FAISS"]
    ITER["incident-rag-bedrock<br/>Bedrock KB iteration"]
  end
  subgraph external["flagships/ → standalone repos"]
    PITER["piter-aiops<br/>Bedrock Agent + tools"]
    HIND["hindsight<br/>n8n + Gemini pipeline"]
    BOT["course-assistant-bot<br/>Telegram HE/EN"]
  end
  L --> H --> CAP
  ITER -.->|evolved into| PITER
  H --> BOT
  CAP -.->|parallel track| PITER
  classDef archive fill:#11233a,stroke:#3b82f6,color:#cfe0ff
  classDef cap fill:#1e1430,stroke:#a855f7,color:#e6d6ff
  classDef ext fill:#2a2010,stroke:#f59e0b,color:#ffe6bf
  class L,H archive
  class CAP,ITER cap
  class PITER,HIND,BOT ext
LayerLocationRole
Curriculumlectures/, homework/, exercises/Authored notes + runnable demos
Capstoneprojects/incident-assistant-rag/Featured RAG app — 90 tests, evaluation harness
Iterationprojects/incident-rag-bedrock/Bedrock KB stepping-stone → PITER
Flagshipsflagships/Pointers to external production repos
Metadocs/, AGENTS.md, .mcp.jsonSetup, syllabus, agent/MCP tooling

Deep dive: docs/architecture/repository-architecture.md

RAG evolution — two tracks

Compare retrieval architectures — mermaid
flowchart LR
  subgraph trackA [Track A — Local FAISS]
    A1[Upload PDF] --> A2[Chunk + embed]
    A2 --> A3[FAISS index]
    A3 --> A4[Similarity search]
    A4 --> A5{Above threshold?}
    A5 -->|yes| A6[OpenAI chat + sources]
    A5 -->|no| A7[Fixed refusal]
  end
  subgraph trackB [Track B — AWS Bedrock]
    B1[S3 corpus] --> B2[Bedrock KB sync]
    B2 --> B3[RetrieveAndGenerate]
    B3 --> B4{Confidence OK?}
    B4 -->|yes| B5[Grounded answer]
    B4 -->|no| B6[Refusal]
    B2 --> B7[Bedrock Agent + Lambda tools]
    B7 --> B8[PITER AiOps]
  end
  trackA --> CAP[incident-assistant-rag]
  trackB --> BED[incident-rag-bedrock]
  BED --> B8
Capstone request flow — upload → index → grounded chat
sequenceDiagram
  autonumber
  participant U as Operator
  participant UI as React UI
  participant API as FastAPI
  participant IDX as FAISS index
  participant LLM as OpenAI

  U->>UI: Upload runbook PDF
  UI->>API: POST /documents
  API->>IDX: Chunk + embed + store
  U->>UI: Ask incident question
  UI->>API: POST /chat
  API->>IDX: Similarity search
  alt hits above threshold
    API->>LLM: Prompt + retrieved chunks
    LLM-->>API: Grounded answer
    API-->>UI: Answer + sources + scores
  else no context
    API-->>UI: Fixed refusal — no LLM call
  end

Learning journey

Four-stage colored flow — lectures + homework → capstone → flagships
flowchart TB
  subgraph stage1 [Stage 1 Foundations]
    L01[L01 Jupyter Python]
    L02[L02 Python intro]
    L03[L03 OOP NumPy]
    HW01[hw01 Jupyter]
    HW02[hw02 Python scripts]
    HW03[hw03 Titanic CLI]
    L01 --> L02 --> L03
    L01 --> HW01
    L02 --> HW02
    L03 --> HW03
  end

  subgraph stage2 [Stage 2 RAG and Web]
    L04[L04 NLP FAISS RAG]
    L05[L05 Flask]
    L06[L06 Flask SQLite RAG]
    HW04[hw04 RAG app]
    L04 --> L05 --> L06
    L04 --> HW04
    L06 --> HW04
  end

  subgraph stage3 [Stage 3 Ops and Agents]
    L07[L07 Docker AWS]
    L08[L08 MCP]
    L09[L09 Bedrock n8n]
    L10[L10 LangChain LangGraph]
    L11[L11 Open WebUI]
    HW05[hw05 EC2 Nginx]
    HW06[hw06 n8n agent]
    HW07[hw07 Open WebUI tools]
    L07 --> HW05
    L09 --> HW06
    L08 --> L11
    L11 --> HW07
    L10 --> HW07
  end

  subgraph stage4 [Stage 4 Capstone and Flagships]
    CAP[incident-assistant-rag]
    BED[incident-rag-bedrock]
    PITER[piter-aiops external]
    HW04 -.-> CAP
    L06 -.-> CAP
    BED -.-> PITER
  end

  stage1 --> stage2 --> stage3 --> stage4

  classDef foundations fill:#11233a,stroke:#3b82f6,color:#cfe0ff
  classDef rag fill:#1a2e1a,stroke:#22c55e,color:#dcfce7
  classDef ops fill:#2a2010,stroke:#f59e0b,color:#ffe6bf
  classDef cap fill:#1e1430,stroke:#a855f7,color:#e6d6ff
  class L01,L02,L03,HW01,HW02,HW03 foundations
  class L04,L05,L06,HW04 rag
  class L07,L08,L09,L10,L11,HW05,HW06,HW07 ops
  class CAP,BED,PITER cap

Source: docs/diagrams/learning-path.mermaid


Curriculum

Full map: docs/SYLLABUS.md · lectures/README.md · homework/README.md

Lectures 01–11 — topics & skills
#TopicPathSkills gained
01Jupyter & Python basicslectures/01_jupyter_python_basics/Python, notebooks
02Python foundationslectures/02_python_intro/Functions, I/O, data structures
03OOP & NumPylectures/03_oop_numpy/Classes, arrays
04NLP, embeddings, FAISS, RAGlectures/04_nlp_rag/Embeddings, vector search, RAG
05Flask web developmentlectures/05_flask_intro/Flask, Docker
06Flask + SQLite + RAGlectures/06_flask_advanced_rag/REST API, FAISS chat UI
07Docker & AWS EC2lectures/07_docker_aws/Containers, EC2, architecture diagrams
08Model Context Protocollectures/08_mcp/MCP stdio servers, tool-calling
09Bedrock Flows & n8nlectures/09_flows_bedrock_n8n/Bedrock, workflow automation
10LangChain & LangGraphlectures/10_langchain_langgraph/Agent memory, routing, graphs
11Local models & Open WebUIlectures/11_local_models_webui/Ollama, local KB → hw07
Homework hw01–hw07 — assignments & evidence
HWTopicStatusEvidence
hw01Jupyter introCompleteNotebook
hw02Python foundationsCompleteScripts + exercises
hw03OOP / Titanic CLICompletepytest
hw04RAG web appScaffold — full impl in capstoneDocker scaffold
hw05EC2 / Docker / NginxCompleteScreenshots
hw06n8n customer-support agentCompleteWorkflow + guardrails
hw07Open WebUI + MCP toolsCompleteScreenshots · Playwright e2e

MCP & agent tooling

This repo is configured for AI-assisted development — MCP servers, Cursor skills, and cross-tool agent guidance (AGENTS.md).

MCP ecosystem — how agents connect to course tooling
flowchart LR
  subgraph ide [Agent IDEs]
    Cursor[Cursor]
    Claude[Claude Code]
  end
  subgraph mcp [MCP layer — .mcp.json]
    CT[course-tools]
    PW[playwright]
    KG[kaggle]
    AWK[aws-knowledge]
    AWA[aws-api]
    BKB[bedrock-kb]
    N8N[n8n-workflows]
    LOV[lovable]
  end
  subgraph use [Used for]
    L08[Lecture 08 demo]
    E2E[hw07 UI capture]
    DS[hw07 datasets]
    DOC[AWS docs Q&A]
    BR[Bedrock KB labs]
    HW6[hw06 workflows]
  end
  Cursor --> mcp
  Claude --> mcp
  CT --> L08
  PW --> E2E
  KG --> DS
  AWK --> DOC
  BKB --> BR
  N8N --> HW6
ServerUse in this repo
course-toolsLecture 08 stdio MCP demo
playwrightE2E / UI capture (hw07)
kagglehw07 Netflix dataset
aws-knowledgeAWS documentation Q&A
aws-apiAWS API operations
bedrock-kbBedrock Knowledge Base retrieval
n8n-workflowshw06 / lecture 09 automation
lovableOptional UI experiments

Bootstrap: docs/AGENT-TOOLING.md · scripts/setup-dev.ps1 · .mcp.json


Detailed captures beyond the featured heroes above — homework labs, API surface, and test output.

IncidentIQ — full walkthrough

API (Swagger)KB indexGrounded chatRefusal (no context)
01040607
Tests (90)Evaluation 5/5
1112

Architecture: projects/incident-assistant-rag/docs/architecture.png

Bedrock learning iteration

KB overviewGrounded answerRefusal / low confidencepytest (111)
kbanswerrefusaltests

Ops & agent homework

hw05 EC2 + Docker + Nginxhw06 n8n agenthw07 Open WebUI KBhw07 tool server
ec2n8nkbtools

External flagships — more in each repo

PITER · HINDSIGHT · course-assistant-bot

Index: docs/screenshots/README.md · Hero captures: docs/screenshots/featured/


Production engineering habits

Ops-minded patterns backed by repo evidence — not demo-only AI:

SignalWhere
CI gate — ruff + 4 pytest matrices.github/workflows/ci.yml
Health / deep checksCapstone /health endpoints
No-context refusal (deterministic)Capstone + Bedrock iteration
RAG evaluation harnessCapstone eval 5/5
Docker Compose reproducibilityCapstone, hw07
Secrets hygiene.env.example, MCP ${env:VAR}
Incident-domain corpusShared runbook samples across projects
EC2 / container ops labhomework/hw05/nginx-docker-lab/
Guardrails in n8n agentInput guardrails + agent prompt — hw06

Repository structure

docs/  lectures/  homework/  exercises/  projects/  flagships/  resources/  scripts/
FolderRole
lectures/Lessons 01–11 — demos colocated with notes
homework/Assignments hw01–07 — evidence colocated
projects/In-repo capstone + Bedrock iteration
flagships/Pointers → external production repos
docs/Syllabus, setup, architecture, agent tooling

Full map: docs/STRUCTURE.md · Clean local clutter: .\scripts\clean-workspace.ps1


Quick start

git clone https://github.com/reem-mor/ai-engineering-portfolio.git
cd ai-engineering-portfolio
python -m venv .venv && source .venv/bin/activate   # Windows: .\.venv\Scripts\Activate.ps1
pip install -r requirements-dev.txt

Capstone (Docker):

cd projects/incident-assistant-rag && docker compose up --build
# → http://localhost:8080

CI parity:

cd projects/incident-assistant-rag/backend && pip install -r requirements.txt && pytest -q
cd projects/incident-rag-bedrock && pip install -r requirements.txt && pytest -q
cd lectures/10_langchain_langgraph && pip install -r requirements.txt && pytest -q
cd homework/hw07 && pip install -r requirements.txt && pytest -q
ruff check .

Human setup: docs/setup.md · Agent bootstrap: scripts/setup-dev.ps1


Documentation

DocContents
docs/README.mdDocumentation hub
docs/SYLLABUS.mdFull curriculum map
docs/STRUCTURE.mdRepository layout
flagships/README.mdExternal repo pointers + pin order
docs/AGENT-TOOLING.mdMCP, skills, CI matrix
docs/setup.mdClone, venv, per-project deps
docs/portfolio/GITHUB_PROFILE_PLAYBOOK.mdProfile README + GitHub pins
AGENTS.mdCross-tool agent guidance

License

MIT for original code — LICENSE. Course slides/handouts: resources/MANIFEST.md only (instructor IP — not redistributed).