| 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.