backend-fastapi

AbdulSamad94's avatarfrom AbdulSamad94

Documentation for the FastAPI backend, endpoints, and dependency injection.

⭐1stars🔀0forks📁View on GitHub🕐Updated Dec 13, 2025

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.
nameBackend (FastAPI)
descriptionDocumentation 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 via npm run dev)
  • Port: Defaults to 8000.

Endpoints

POST /api/chat

  • Purpose: Main RAG chat endpoint.
  • Input: ChatRequest (query, history, user_context).
  • Process:
    1. Embed query.
    2. Search Qdrant (search_qdrant).
    3. Build prompt (build_rag_prompt).
    4. Generate Agent response.
  • Output: ChatResponse (answer, contexts).

POST /api/ask-selection

  • Purpose: Targeted Q&A on selected text.
  • Input: AskSelectionRequest (question, selected_text).
  • Process:
    1. Validates selection length.
    2. Builds selection-specific prompt.
    3. 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.