Quickstart¶
Contents¶
RAGFlow Docs
- Quickstart
- Search
- Files
- What is Retrieval-Augmented-Generation (RAG)?
- What is Agent context engine?
- Configure model API key
- Start AI chat
- Implement deep research
- Set variables
- Configure dataset
- Run retrieval test
- Use tag set
- Enable Excel2HTML
- Set page rank
- Set metadata
- Manage metadata
- Configure child chunking strategy
- Set context window size
- Select PDF parser
- Construct knowledge graph
- Enable RAPTOR
- Extract table of contents
- Auto-extract metadata
- Add Google Drive as data source
- Introduction
- Embed Agent into webpage
- Accelerate answering
- Build Ecommerce customer support agent
- Ingestion pipeline quickstart
- Sandbox quickstart
- Begin component
- Title chunker component
- Token chunker component
- Docs Generator component
- Execute SQL tool
- HTTP request component
- Indexer component
- Message component
- Parser component
- Transformer component
- Configuration
- Backup & migration
- Admin Service
- Admin UI
- RAGFlow CLI
- Use memory
- Manage team members
- Join or leave a team
- Share dataset
- Share chat assistant
- Share Agent
- Share models
- Share memory
RAGFlow is an open-source RAG (Retrieval-Augmented Generation) engine based on deep document understanding. When integrated with LLMs, it is capable of providing truthful question-answering capabilities, backed by well-founded citations from various complex formatted data.
This quick start guide describes a general process from:
Starting up a local RAGFlow server,
Creating a dataset,
Intervening with file parsing, to
Establishing an AI chat based on your datasets.
:::danger IMPORTANT We officially support x86 CPU and Nvidia GPU, and this document offers instructions on deploying RAGFlow using Docker on x86 platforms. While we also test RAGFlow on ARM64 platforms, we do not maintain RAGFlow Docker images for ARM.
If you are on an ARM platform, follow this guide to build a RAGFlow Docker image. :::
Prerequisites¶
CPU >= 4 cores (x86);
RAM >= 16 GB;
Disk >= 50 GB;
Docker >= 24.0.0 & Docker Compose >= v2.26.1.
gVisor: Required only if you intend to use the code executor (sandbox) feature of RAGFlow.
:::tip NOTE If you have not installed Docker on your local machine (Windows, Mac, or Linux), see Install Docker Engine. :::
Start up the server¶
This section provides instructions on setting up the RAGFlow server on Linux. If you are on a different operating system, no worries. Most steps are alike.
Ensure
vm.max_map_count>= 262144.vm.max_map_countsets the maximum number of memory map areas a process may have. Its default value is 65530. RAGFlow v0.24.0 uses Elasticsearch or Infinity for multiple recall. Setting this value correctly is crucial to the proper functioning of the Elasticsearch component.Linux:
# Check current value: sysctl vm.max_map_count # Set to 262144: sudo sysctl -w vm.max_map_count=262144 # Make permanent — add to /etc/sysctl.conf: vm.max_map_count=262144
macOS (Docker Desktop):
docker run --rm --privileged --pid=host alpine sysctl -w vm.max_map_count=262144Windows (Docker Desktop WSL 2):
wsl -d docker-desktop -u root sysctl -w vm.max_map_count=262144
To make it permanent on Windows, update
%USERPROFILE%\.wslconfig:[wsl2] kernelCommandLine = "sysctl.vm.max_map_count=262144"
Clone the repo:
git clone https://github.com/infiniflow/ragflow.git cd ragflow/docker
Switch to the current version:
git checkout -f v0.24.0Use the pre-built Docker images and start up the server:
# Use CPU for DeepDoc tasks: docker compose -f docker-compose.yml up -d
RAGFlow image tag
Image size (GB)
Stable?
v0.24.0
~2
Stable release
nightly
~2
Unstable nightly build
:::tip NOTE The image size shown refers to the size of the downloaded Docker image, which is compressed. When Docker runs the image, it unpacks it, resulting in significantly greater disk usage. A Docker image will expand to around 7 GB once unpacked. :::
Check the server status after having the server up and running:
docker logs -f docker-ragflow-cpu-1The following output confirms a successful launch of the system:
____ ___ ______ ______ __ / __ \ / | / ____// ____// /____ _ __ / /_/ // /| | / / __ / /_ / // __ \| | /| / / / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ / /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/ * Running on all addresses (0.0.0.0)
:::danger IMPORTANT If you skip this confirmation step and directly log in to RAGFlow, your browser may prompt a
network anomalyerror because, at that moment, your RAGFlow may not be fully initialized. :::In your web browser, enter the IP address of your server and log in to RAGFlow.
:::caution WARNING With the default settings, you only need to enter
http://IP_OF_YOUR_MACHINE(sans port number) as the default HTTP serving port80can be omitted when using the default configurations. :::
Configure LLMs¶
RAGFlow is a RAG engine and needs to work with an LLM to offer grounded, hallucination-free question-answering capabilities. RAGFlow supports most mainstream LLMs. For a complete list of supported models, please refer to Supported Models.
:::note RAGFlow also supports deploying LLMs locally using Ollama, Xinference, or LocalAI, but this part is not covered in this quick start guide. :::
To add and configure an LLM:
Click on your logo on the top right of the page > Model providers.
Click on the desired LLM and update the API key accordingly.
Click System Model Settings to select the default models:
Chat model,
Embedding model,
Image-to-text model,
and more.
Some models, such as the image-to-text model qwen-vl-max, are subsidiary to a specific LLM. And you may need to update your API key to access these models.
Create your first dataset¶
You are allowed to upload files to a dataset in RAGFlow and parse them into datasets. A dataset is virtually a collection of datasets. Question answering in RAGFlow can be based on a particular dataset or multiple datasets. File formats that RAGFlow supports include documents (PDF, DOC, DOCX, TXT, MD, MDX), tables (CSV, XLSX, XLS), pictures (JPEG, JPG, PNG, TIF, GIF), and slides (PPT, PPTX).
To create your first dataset:
Click the Dataset tab in the top middle of the page > Create dataset.
Input the name of your dataset and click OK to confirm your changes.
You are taken to the Configuration page of your dataset.

RAGFlow offers multiple chunk templates that cater to different document layouts and file formats. Select the embedding model and chunking method (template) for your dataset.
:::danger IMPORTANT Once you have selected an embedding model and used it to parse a file, you are no longer allowed to change it. The obvious reason is that we must ensure that all files in a specific dataset are parsed using the same embedding model (ensure that they are being compared in the same embedding space). :::
You are taken to the Dataset page of your dataset.
Click + Add file > Local files to start uploading a particular file to the dataset.
In the uploaded file entry, click the play button to start file parsing:

Intervene with file parsing¶
RAGFlow features visibility and explainability, allowing you to view the chunking results and intervene where necessary. To do so:
Click on the file that completes file parsing to view the chunking results:
You are taken to the Chunk page:

Hover over each snapshot for a quick view of each chunk.
Double click the chunked texts to add keywords or make manual changes where necessary:

:::caution NOTE You can add keywords or questions to a file chunk to improve its ranking for queries containing those keywords. This action increases its keyword weight and can improve its position in search list. :::
In Retrieval testing, ask a quick question in Test text to double check if your configurations work:
As you can tell from the following, RAGFlow responds with truthful citations.

Set up an AI chat¶
Conversations in RAGFlow are based on a particular dataset or multiple datasets. Once you have created your dataset and finished file parsing, you can go ahead and start an AI conversation.
Click the Chat tab in the middle top of the page > Create chat to create a chat assistant.
Click the created chat app to enter its configuration page.
RAGFlow offer the flexibility of choosing a different chat model for each dialogue, while allowing you to set the default models in System Model Settings.
Update Chat setting on the right of the configuration page:
Name your assistant and specify your datasets.
Empty response:
If you wish to confine RAGFlow’s answers to your datasets, leave a response here. Then when it doesn’t retrieve an answer, it uniformly responds with what you set here.
If you wish RAGFlow to improvise when it doesn’t retrieve an answer from your datasets, leave it blank, which may give rise to hallucinations.
Update System prompt or leave it as is for the beginning.
Select a chat model in the Model dropdown list.
Now, let’s start the show:

:::tip NOTE RAGFlow also offers HTTP and Python APIs for you to integrate RAGFlow’s capabilities into your applications. Read the following documents for more information: