Directory: launch-agent-skills/skills/rag-setup/skill.md
name: FastAPI Project Setup description: Clone and set up launch-rag or launch-agentic-rag - production-ready FastAPI backends with RAG capabilities triggers: - fastapi - api setup - project structure - python api - backend setup - launch-rag - rag backend - agentic rag - agent backend
FastAPI Project Setup Skill
Purpose
Clone and set up a production-ready FastAPI backend for RAG (Retrieval-Augmented Generation):
Available Options:
1. launch-rag - Basic RAG
- Vector similarity search with Supabase
- Question answering with citations
- Simple, focused implementation
- Perfect for learning RAG fundamentals
2. launch-agentic-rag - Agentic RAG
- Everything in launch-rag PLUS:
- Agent reasoning (Retrieve → Reason → Decide → Act)
- Tool calling (schedule meetings, send emails)
- Multi-turn conversations
- Google Calendar/Gmail integration (optional)
Both include:
- Multiple AI provider support (OpenAI, Anthropic)
- Clean folder structure (core, services, models)
- Environment configuration with validation
- Health checks and API documentation
- Docker support
- Type hints and Pydantic validation
Prerequisites
- Python 3.11+
- Supabase account
- OpenAI API key
- Anthropic API key (optional)
- Google Cloud credentials (optional, for agentic-rag tools)
Instructions
Step 0: Ask User Which Repository
IMPORTANT: Ask the user which version they want to set up:
Prompt the user:
Which FastAPI backend would you like to set up?
1. launch-rag (Basic RAG - recommended for learning)
- Simple vector search + Q&A
- Faster setup, fewer dependencies
2. launch-agentic-rag (Agentic RAG - advanced features)
- Agent reasoning with tools
- Calendar/email integration
- Multi-turn conversations
Choose: [1/2]
Decision Logic:
- If user says "basic", "simple", "learning", or "1" → use launch-rag
- If user says "agentic", "agent", "tools", or "2" → use launch-agentic-rag
- If unclear, recommend launch-rag for first-time users
Set variables:
# Based on user choice
REPO_NAME="launch-rag" # or "launch-agentic-rag"
REPO_URL="https://github.com/ShenSeanChen/$REPO_NAME.git"
Step 1: Clone the Repository
IMPORTANT: Ask the user where they want to clone the repo (which directory), or use the current working directory.
# Clone the chosen repo
git clone $REPO_URL [project-name]
cd [project-name]
Replace [project-name] with the desired project folder name.
Example:
git clone https://github.com/ShenSeanChen/launch-rag.git my-rag-apigit clone https://github.com/ShenSeanChen/launch-agentic-rag.git my-agent-api
Step 2: Create Virtual Environment
python3.11 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
Step 3: Install Dependencies
pip install -r requirements.txt
Step 4: Set Up Environment Variables
Create a .env file from the template:
cp .env.example .env
IMPORTANT: The .env.example has placeholder values that MUST be replaced.
Then edit .env with your actual credentials:
# Required - Supabase (will be set by rag-database skill)
SUPABASE_URL=https://your-project-ref.supabase.co
SUPABASE_ANON_KEY=your_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
# Required - OpenAI (needed for embeddings regardless of AI provider)
OPENAI_API_KEY=sk-your_openai_key
OPENAI_EMBED_MODEL=text-embedding-3-small
OPENAI_CHAT_MODEL=gpt-4o
# AI Provider Configuration
# IMPORTANT: Set to "openai" if you only have OpenAI key
# Set to "anthropic" only if you have BOTH OpenAI (for embeddings) AND Anthropic keys
AI_PROVIDER=openai
# Optional - Anthropic (only needed if AI_PROVIDER=anthropic)
ANTHROPIC_API_KEY=your_anthropic_key
ANTHROPIC_CHAT_MODEL=claude-3-5-sonnet-20241022
Key Points:
- ✅ OpenAI key is ALWAYS required (for embeddings via text-embedding-3-small)
- ✅ Set AI_PROVIDER=openai by default (uses GPT-4o for chat)
- ✅ Only set AI_PROVIDER=anthropic if you have a valid Anthropic key
- ⚠️ Don't leave placeholder values like
your_anthropic_api_key_here- the app will fail at runtime
Step 5: Set Up Supabase Database
Run the SQL initialization script in your Supabase SQL editor:
# The sql/init.sql file contains the database schema
# Copy and run it in Supabase SQL Editor at:
# https://supabase.com/dashboard/project/[your-project]/editor
Step 6: Run the Server
uvicorn main:app --reload --port 8000
The API will be available at:
- API: http://localhost:8000
- Docs: http://localhost:8000/docs
- Health: http://localhost:8000/healthz
- Chat UI: http://localhost:8000/chat (if available)
Step 7: Test the Setup (Optional)
python test_setup.py
Step 8: Next Steps Based on Repository
If launch-rag:
- ✅ Basic setup complete!
- Run
rag-databaseskill next to configure database - Start using the RAG endpoints
If launch-agentic-rag:
- ✅ Basic setup complete!
- Run
rag-databaseskill next to configure database - (Optional) Run
rag-toolsskill to configure Google Calendar/Gmail tools - Explore agent reasoning and tool calling features
Checklist
Common steps (both repos):
- Ask user: launch-rag or launch-agentic-rag?
- Clone the chosen repository to desired location
- Create Python 3.11+ virtual environment
- Install all dependencies from requirements.txt
- Copy .env.example to .env
- Add OpenAI API key to .env (REQUIRED)
- Set AI_PROVIDER=openai by default
- (Optional) Add Anthropic API key if using Claude
For rag-database (next step):
- Add Supabase credentials to .env
- Run SQL initialization script in Supabase
- Verify database connection
For launch-agentic-rag only:
- (Optional) Set up Google Cloud service account
- (Optional) Configure Calendar/Gmail tools
What You Get
launch-rag includes:
launch-rag/
├── app/
│ ├── core/ # Configuration & database
│ ├── models/ # Pydantic schemas
│ ├── services/ # RAG logic, embeddings, AI
│ └── main.py # FastAPI app
├── sql/
│ └── init_supabase.sql # Database setup
├── static/ # Chat UI
├── test_setup.py
└── requirements.txt
launch-agentic-rag includes (everything above PLUS):
launch-agentic-rag/
├── app/
│ ├── core/ # Same as launch-rag
│ ├── models/ # Same as launch-rag
│ ├── services/
│ │ ├── rag.py # Enhanced with agent reasoning
│ │ ├── agent.py # Agent decision-making logic
│ │ └── tools/ # 🆕 Tool implementations
│ │ ├── calendar.py # Google Calendar integration
│ │ └── email.py # Gmail integration
│ └── main.py # FastAPI app with agent endpoints
├── credentials/ # 🆕 Google Cloud credentials
└── requirements.txt # Additional dependencies for tools
Example Usage
User: "Set up a FastAPI backend for my new project"
Claude should:
- Ask which repo: "Do you want basic RAG or agentic RAG?"
- Ask where to clone: Current directory or specific path?
- Clone chosen repo with user-specified project name
- Create virtual environment
- Install dependencies
- Set up .env file (with AI_PROVIDER=openai by default)
- Remind user about next steps:
- Add OpenAI API key to .env
- Run
rag-databaseskill for database - (If agentic-rag) Optionally run
rag-toolsfor Google integrations
Important Notes
- Always ask where to clone the repo before running git clone
- The repo is production-ready with RAG capabilities built-in
- Requires Supabase for vector storage (pgvector extension)
- Supports both OpenAI and Anthropic AI providers
- Includes Docker support for easy deployment
Related Skills
rag-database- Configure Supabase database and pgvector