Automated summary
Clones and sets up a production-ready FastAPI backend with RAG capabilities from two template repositories.
Strengths
- Two options tailored to user skill level: basic and agentic.
- Complete development environment with environment variable validation.
- Multi-AI provider support (OpenAI, Anthropic) out of the box.
Limitations
- Requires a Supabase account and proper keys.
- Google integrations (calendar/email) are optional but add complexity.
- Does not cover vector database creation.
Best for quickly scaffolding a FastAPI backend with RAG, whether for learning or advanced agentic tooling.
When you have an existing project, need a different backend framework (Django, Flask), or require immediate serverless deployment.
Security analysis
SafeThe skill instructs cloning and setting up known public repositories using standard development tools (git, pip, venv, uvicorn) for legitimate purposes. There are no destructive, exfiltrating, or obfuscated commands.
No concerns found
How this analysis is madeExamples
Set up a FastAPI RAG backend using launch-rag for learning purposes.Clone launch-agentic-rag and configure it with OpenAI and Google Calendar integration.I need a new FastAPI project with RAG capabilities, please set it up using the launch-rag template.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
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/fastapi-project-setup-with-rag-mm5t8bmg/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/fastapi-project-setup-with-rag-mm5t8bmg' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/fastapi-project-setup-with-rag-mm5t8bmg/download' --output '.skill-downloads/fastapi-project-setup-with-rag-mm5t8bmg/SKILL.md.part' && mv '.skill-downloads/fastapi-project-setup-with-rag-mm5t8bmg/SKILL.md.part' '.skill-downloads/fastapi-project-setup-with-rag-mm5t8bmg/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
Original excerpt: Prerequisites
- Python 3.11+
- Supabase account
- OpenAI API key
- Anthropic API key (optional)
- Google Cloud credentials (optional, for agentic-rag tools)
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
This file does not provide a usable name/description header for this native procedure. It remains available to download and inspect; use the manual method below.
Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/fastapi-project-setup-with-rag-mm5t8bmg/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
React Hook Form Best Practices
Development
Master React Hook Form: avoid anti-patterns, manage subscriptions, and handle reset, dirty state, and controlled inputs correctly.
Emotion to Mantine Migration
Development
Migrate Emotion styled-components to Mantine components with style props and CSS modules. Use when converting .styled.tsx files or removing @emotion imports.
Scope Creep Detector
Development
Analyzes git diffs against a stated intent to detect scope creep, unrelated files, broad PRs, and oversized changes, then suggests keep, split, or justify actions.