[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-1880":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":15,"stars30d":14,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":16,"rankGlobal":10,"rankLanguage":10,"license":17,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":20,"hasPages":18,"topics":21,"createdAt":10,"pushedAt":10,"updatedAt":28,"readmeContent":29,"aiSummary":30,"trendingCount":15,"starSnapshotCount":15,"syncStatus":31,"lastSyncTime":32,"discoverSource":33},1880,"zero-to-ai-fullstack","yanhua1010\u002Fzero-to-ai-fullstack","yanhua1010","A Java backend engineer learning AI full-stack in public — Python · FastAPI · RAG · pgvector · Next.js","",null,"Python",151,6,1,0,2.54,"MIT License",false,"main",true,[22,23,24,25,26,27],"fastapi","langchain","learning-in-public","nextjs","python","rag","2026-06-12 02:00:34","[中文](README.zh.md) | **English**\n\n# zero-to-ai-fullstack\n\nA Java backend engineer's attempt at AI full-stack. Building a RAG knowledge base from scratch, one week at a time.\n\n![Python](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-3.11+-blue?logo=python)\n![FastAPI](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FFastAPI-0.110+-green?logo=fastapi)\n![Next.js](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNext.js-14+-black?logo=next.js)\n![PostgreSQL](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPostgreSQL-16+-blue?logo=postgresql)\n![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow)\n\n---\n\n## What I'm building\n\nA self-hostable RAG knowledge base: upload documents, ask questions, get answers with source citations.\n\n```\n┌─────────────────────────────────────────────┐\n│              Next.js Frontend                │\n│    Upload · Manage · Chat · View Sources     │\n└──────────────────┬──────────────────────────┘\n                   │ REST API \u002F SSE\n┌──────────────────┴──────────────────────────┐\n│            Python Backend (FastAPI)          │\n│   ETL Pipeline · RAG Engine · LLM Router    │\n└────┬─────────────────┬───────────────────┬──┘\n     │                 │                   │\n┌────┴─────┐   ┌───────┴──────┐   ┌────────┴───┐\n│PostgreSQL│   │   pgvector   │   │  LLM API   │\n│ metadata │   │  embeddings  │   │ Claude\u002FGPT │\n└──────────┘   └──────────────┘   └────────────┘\n```\n\nStack: Python · FastAPI · LangChain · PostgreSQL · pgvector · Next.js · Docker\n\n---\n\n## 8-Week Roadmap\n\n| Week | Focus | Status |\n|------|-------|--------|\n| 1 | Python speed run + Claude API + Prompt Engineering | ✅ Done |\n| 2 | LangChain + document processing pipeline | ✅ Done |\n| 3 | PostgreSQL + pgvector + vector search | ✅ Done |\n| 4 | Full RAG pipeline + FastAPI backend | ✅ Done |\n| 5 | RAG optimization + evaluation | ⬜ |\n| 6 | AI feature integration into production SaaS | ⬜ |\n| 7 | Docker deployment + CI\u002FCD | ⬜ |\n| 8 | Interview prep + start applying | ⬜ |\n\n---\n\n## Learning Log\n\nWeekly notes on what clicked, what didn't, and how it maps to my Java background.\n\n→ [Read the full Learning Log](LEARNING_LOG.en.md)\n\n**Recent entries:**\n\n- **Week 3** — pgvector reduces to two things: store vectors in Postgres, find nearest neighbors with `\u003C=>`. The real catch is embedding consistency — query and document vectors must come from the same instance. Found that bug myself. [Read →](LEARNING_LOG.en.md#week-3)\n\n---\n\n## Project Structure\n\n```\nzero-to-ai-fullstack\u002F\n├── backend\u002F                  # Python FastAPI service\n│   ├── etl\u002F                  # ETL pipeline\n│   │   ├── extractors\u002F       # Document loaders (PDF, MD, TXT, HTML)\n│   │   ├── transformers\u002F     # Text cleaning & chunking\n│   │   └── loaders\u002F          # Database writers\n│   ├── rag\u002F                  # RAG pipeline\n│   │   ├── embeddings\u002F       # Embedding model wrappers\n│   │   ├── retrieval\u002F        # Vector search\n│   │   └── generation\u002F       # RAG chain, LLM integration & prompts\n│   ├── api\u002F                  # FastAPI routes\n│   ├── models\u002F               # SQLAlchemy ORM models\n│   └── prompts\u002F              # Prompt templates (versioned)\n├── frontend\u002F                 # Next.js app\n├── scripts\u002F                  # Weekly learning exercises\n│   ├── week1\u002F                # Python basics + Claude API chatbot\n│   ├── week2\u002F                # LangChain + document pipeline\n│   ├── week3\u002F                # PostgreSQL + pgvector + retrieval\n│   └── week4\u002F                # RAG chain end-to-end demo\n├── sql\u002F                      # Alembic migrations\n├── docker-compose.yml\n├── .env.example\n└── LEARNING_LOG.md\n```\n\n---\n\n## Quick Start\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fyanhua1010\u002Fzero-to-ai-fullstack.git\ncd zero-to-ai-fullstack\ncp .env.example .env\n\n# Start PostgreSQL + pgvector\ndocker compose up -d\n\n# Install dependencies (requires uv)\nuv sync\n\n# Start the API — interactive docs at http:\u002F\u002Flocalhost:8000\u002Fdocs\nuv run uvicorn backend.api.main:app --reload\n\n# Run the test suite\nuv run pytest backend\u002F\n```\n\nInstall uv: `curl -LsSf https:\u002F\u002Fastral.sh\u002Fuv\u002Finstall.sh | sh`\n\nFull-stack Docker setup (backend + frontend in containers) lands in Week 7.\n\n---\n\n## About\n\n8 years as a Java backend engineer. Built distributed systems, high-concurrency services, data pipelines — all in Java\u002FSpring. Now doing the AI full-stack thing.\n\nFollowing along? Hit **Watch** for weekly updates, or open an issue if you have questions.\n\n→ [GitHub: @yanhua1010](https:\u002F\u002Fgithub.com\u002Fyanhua1010)\n\n---\n\nMIT License\n","该项目旨在构建一个从零开始的AI全栈知识库，特别适合Java后端工程师学习。它通过Python、FastAPI和Next.js等技术实现文档上传、问题回答及引用来源展示等功能。核心技术包括使用LangChain处理文档管道、PostgreSQL与pgvector进行向量存储与搜索，并支持多种语言模型如Claude或GPT。此项目适用于希望在生产环境中集成AI功能的小型团队或个人开发者，也适合那些想要深入了解如何将传统后端技能迁移到现代AI应用中的工程师。整个项目结构清晰，覆盖了从数据处理到前端展示的完整流程，并且提供了详细的开发日志，便于跟随学习。",2,"2026-06-11 02:46:35","CREATED_QUERY"]