Build AI-powered pipelines in Python. Extract structure from unstructured inputs, work with embeddings and vector databases, and implement retrieval-augmented generation (RAG) to improve model output.
- Clone this repo using GitHub Desktop (URL provided in class)
- Open the folder in VS Code (
File→Open Folder→ selectodsa-ai-backend) - Open the setup notebook:
notebooks/session_0_1_setup.ipynb - Follow it step by step — it will install everything and verify your environment
The setup notebook walks you through installing uv, Python, dependencies, selecting your kernel, and creating your workspace. Every step has a verification check — all should show PASS before you move on.
1. Open GitHub Desktop → Fetch origin → Pull
2. Copy the new session notebook from notebooks/ into my_work/
3. Open the copy from my_work/ and work there
Why my_work/? This folder is git-ignored. When the instructor pushes updates, git pull updates the master copies in notebooks/ without touching your work. No merge conflicts, no lost progress.
odsa-ai-backend/
├── notebooks/ ← Master copies (don't edit these directly)
│ ├── session_0_1_setup.ipynb
│ ├── session_1_1.ipynb
│ └── ...
│
├── my_work/ ← YOUR workspace (git-ignored, safe from updates)
│ ├── session_1_1.ipynb
│ └── ...
│
├── src/ ← Pre-built pipeline modules (provided to you)
│ ├── s0_generation/ ← Session 1.1: API integration
│ ├── s1_extraction/ ← Session 1.2: Batch processing
│ ├── s2_embeddings/ ← Session 2.1: Embeddings
│ ├── s3_ingestion/ ← Session 2.2: Vector ingestion
│ ├── s4_retrieval/ ← Sessions 3.1–3.2: RAG
│ └── s5_observability/← Session 4.1: Logging
│
├── data/ ← Course dataset
├── pyproject.toml ← Dependencies (uv reads this)
├── .env.example ← API key template
└── .gitignore ← Keeps .env, .venv/, my_work/ out of git
| Week | Session | Topic |
|---|---|---|
| 1 | 1.1 | LLM API Integration |
| 1 | 1.2 | Batch Processing & Extraction |
| 2 | 2.1 | Embeddings & Model Selection |
| 2 | 2.2 | Chunking & Vector Ingestion |
| 3 | 3.1 | Naive RAG |
| 3 | 3.2 | Metadata-Aware RAG |
| 4 | 4.1 | Observability & Debugging |
| 4 | 4.2 | Module Test |
| Component | Weight |
|---|---|
| Lab 1 — Batch Extraction | 20% |
| Lab 2 — RAG Evaluation | 20% |
| Written Exam | 50% |
| Participation | 10% |
| Passing | 70% or above |
| Problem | Fix |
|---|---|
uv not found |
Close and reopen your terminal after installing uv |
| Kernel not listed in VS Code | Cmd/Ctrl+Shift+P → "Reload Window", then reselect kernel |
| "Module not found" error | Make sure your kernel is set to .venv, not system Python |
AuthenticationError |
Check .env is in the project root and key starts with sk-ant- |
Packages missing after uv sync |
Reload VS Code window, then re-run the package check cell |
| Cells error after reloading VS Code | Normal — reload clears variables. Run cells from the top again |
git pull has conflicts |
You may have edited a file in notebooks/. Work in my_work/ instead |
- Re-run
notebooks/session_0_1_setup.ipynbto diagnose environment issues - Check the troubleshooting table above
- Ask in class or during office hours