This file provides context, build instructions, and coding standards for the RAGFlow project.
It is structured to follow GitHub Copilot's [customization guidelines](https://docs.github.com/en/copilot/concepts/prompting/response-customization).
## 1. Project Overview
RAGFlow is an open-source RAG (Retrieval-Augmented Generation) engine based on deep document understanding. It is a full-stack application with a Python backend and a React/TypeScript frontend.
- **Backend**: Python 3.10+ (Flask/Quart)
- **Frontend**: TypeScript, React, UmiJS
- **Architecture**: Microservices based on Docker.
-`api/`: Backend API server.
-`rag/`: Core RAG logic (indexing, retrieval).
-`deepdoc/`: Document parsing and OCR.
-`web/`: Frontend application.
## 2. Directory Structure
-`api/`: Backend API server (Flask/Quart).
-`apps/`: API Blueprints (Knowledge Base, Chat, etc.).
-`db/`: Database models and services.
-`rag/`: Core RAG logic.
-`llm/`: LLM, Embedding, and Rerank model abstractions.
-`deepdoc/`: Document parsing and OCR modules.
-`agent/`: Agentic reasoning components.
-`web/`: Frontend application (React + UmiJS).
-`docker/`: Docker deployment configurations.
-`sdk/`: Python SDK.
-`test/`: Backend tests.
## 3. Build Instructions
### Backend (Python)
The project uses **uv** for dependency management.