Skip to content

Add CLAUDE.md with architecture overview and dev commands#177

Open
maraal wants to merge 8 commits intohttps-deeplearning-ai:mainfrom
maraal:main
Open

Add CLAUDE.md with architecture overview and dev commands#177
maraal wants to merge 8 commits intohttps-deeplearning-ai:mainfrom
maraal:main

Conversation

@maraal
Copy link
Copy Markdown

@maraal maraal commented Apr 29, 2026

Summary

  • Adds CLAUDE.md to guide Claude Code in this repository
  • Documents the full query request flow across the RAG pipeline
  • Covers key design decisions: tool-use-driven retrieval, two ChromaDB collections, in-memory session state
  • Includes commands for running and developing the app with uv

🤖 Generated with Claude Code

lucasmaraal and others added 8 commits April 29, 2026 17:38
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sources returned by the search tool now include the lesson URL (looked
up from the course catalog at query time). The API returns structured
{label, url} objects instead of plain strings, and the frontend renders
them as pill-shaped chips — blue and clickable when a URL is available,
gray otherwise.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Reveals the previously hidden header as a slim top bar with the app
title and a sun/moon toggle button. Theme preference is persisted in
localStorage and falls back to the OS prefers-color-scheme setting.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds a sidebar dropdown to switch between Claude (Sonnet) and Gemini (2.5 Flash) at query time. Model choice persists in localStorage and is sent with each request. GeminiGenerator mirrors AIGenerator's interface with two-turn tool-call flow and Anthropic→Gemini tool definition conversion.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- search_tools: track seen (label, url) pairs so each lesson appears once in source chips regardless of how many chunks matched
- rag_system: fetch course titles from vector store at query time and include them in the prompt, so the model can answer catalog questions without a tool call
- config: raise MAX_RESULTS 5→10 so outline queries retrieve enough chunks to cover more lessons

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Swaps get_existing_course_titles() for get_all_courses_metadata() so the model sees lesson counts and instructors for each course in every prompt. Enables answering questions like "what is the longest course?" or "which courses are taught by X?" without a search.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…pages

Adds a new get_course_page_info tool that fetches and strips the course's
official DeepLearning.AI page so the model can read actual duration, difficulty,
and description instead of guessing from lesson count. Uses requests (already
a transitive dep) and stdlib re/html for tag stripping.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds a styled '+ NEW CHAT' button between the model selector and courses
section. Clicking it calls DELETE /api/session/{id} to free server-side
history, then resets the chat window and mints a fresh session on the next
query — no page reload needed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants