backend-fastapi
Documentation for the FastAPI backend, endpoints, and dependency injection.
When & Why to Use This Skill
This Claude skill provides comprehensive documentation and architectural guidance for a FastAPI-based backend, specifically designed for RAG (Retrieval-Augmented Generation) applications. It details core endpoints, dependency injection patterns, and integration workflows with vector databases like Qdrant and LLM providers, serving as a technical blueprint for developers building AI-powered chat systems.
Use Cases
- Backend Architecture Reference: Quickly understand the FastAPI project structure, entry points, and dependency injection logic for efficient development.
- API Implementation & Debugging: Utilize detailed specifications for the /api/chat and /api/ask-selection endpoints to implement or troubleshoot RAG-based communication flows.
- RAG Workflow Integration: Follow the documented process for query embedding, Qdrant vector search, and prompt construction to optimize retrieval-augmented responses.
- Environment & DevOps Setup: Streamline the configuration of environment variables (GEMINI_API_KEY, QDRANT_URL) and server deployment using Uvicorn.
| name | Backend (FastAPI) |
|---|---|
| description | Documentation for the FastAPI backend, endpoints, and dependency injection. |
Backend Architecture (FastAPI)
Overview
The backend is a FastAPI application located in backend/. It powers the chatbot and RAG functionality.
Entry Point
- File:
backend/main.py - Run:
uvicorn backend.main:app --reload(or vianpm run dev) - Port: Defaults to
8000.
Endpoints
POST /api/chat
- Purpose: Main RAG chat endpoint.
- Input:
ChatRequest(query, history, user_context). - Process:
- Embed query.
- Search Qdrant (
search_qdrant). - Build prompt (
build_rag_prompt). - Generate Agent response.
- Output:
ChatResponse(answer, contexts).
POST /api/ask-selection
- Purpose: Targeted Q&A on selected text.
- Input:
AskSelectionRequest(question, selected_text). - Process:
- Validates selection length.
- Builds selection-specific prompt.
- specific Agent instructions.
Dependencies & Utils
backend/utils/config.py: Qdrant initialization.backend/utils/helpers.py: Embedding and Prompt building logic.backend/models.py: OpenAI/Gemini client setup.
Environment Variables
GEMINI_API_KEY: For LLM and Embeddings.QDRANT_URL,QDRANT_API_KEY: Vector DB connection.