mirror of
https://github.com/infiniflow/ragflow.git
synced 2025-12-08 20:42:30 +08:00
Restructured guides (#5555)
### What problem does this PR solve? ### Type of change - [x] Documentation Update
This commit is contained in:
8
docs/develop/_category_.json
Normal file
8
docs/develop/_category_.json
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"label": "Developer guides",
|
||||
"position": 4,
|
||||
"link": {
|
||||
"type": "generated-index",
|
||||
"description": "Guides for Hardcore Developers"
|
||||
}
|
||||
}
|
||||
18
docs/develop/acquire_ragflow_api_key.md
Normal file
18
docs/develop/acquire_ragflow_api_key.md
Normal file
@ -0,0 +1,18 @@
|
||||
---
|
||||
sidebar_position: 3
|
||||
slug: /acquire_ragflow_api_key
|
||||
---
|
||||
|
||||
# Acquire a RAGFlow API key
|
||||
|
||||
A key is required for the RAGFlow server to authenticate your requests via HTTP or a Python API. This documents provides instructions on obtaining a RAGFlow API key.
|
||||
|
||||
1. Click your avatar in the top right corner of the RAGFlow UI to access the configuration page.
|
||||
2. Click **API** to switch to the **API** page.
|
||||
3. Obtain a RAGFlow API key:
|
||||
|
||||

|
||||
|
||||
:::tip NOTE
|
||||
See the [RAGFlow HTTP API reference](../../references/http_api_reference.md) or the [RAGFlow Python API reference](../../references/python_api_reference.md) for a complete reference of RAGFlow's HTTP or Python APIs.
|
||||
:::
|
||||
101
docs/develop/build_docker_image.mdx
Normal file
101
docs/develop/build_docker_image.mdx
Normal file
@ -0,0 +1,101 @@
|
||||
---
|
||||
sidebar_position: 1
|
||||
slug: /build_docker_image
|
||||
---
|
||||
|
||||
# Build a RAGFlow Docker Image
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
A guide explaining how to build a RAGFlow Docker image from its source code. By following this guide, you'll be able to create a local Docker image that can be used for development, debugging, or testing purposes.
|
||||
|
||||
## Target Audience
|
||||
|
||||
- Developers who have added new features or modified the existing code and require a Docker image to view and debug their changes.
|
||||
- Developers seeking to build a RAGFlow Docker image for an ARM64 platform.
|
||||
- Testers aiming to explore the latest features of RAGFlow in a Docker image.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- CPU ≥ 4 cores
|
||||
- RAM ≥ 16 GB
|
||||
- Disk ≥ 50 GB
|
||||
- Docker ≥ 24.0.0 & Docker Compose ≥ v2.26.1
|
||||
|
||||
## Build a Docker image
|
||||
|
||||
<Tabs
|
||||
defaultValue="without"
|
||||
values={[
|
||||
{label: 'Build a Docker image without embedding models', value: 'without'},
|
||||
{label: 'Build a Docker image including embedding models', value: 'including'}
|
||||
]}>
|
||||
<TabItem value="without">
|
||||
|
||||
This image is approximately 2 GB in size and relies on external LLM and embedding services.
|
||||
|
||||
:::danger IMPORTANT
|
||||
- While we also test RAGFlow on ARM64 platforms, we do not maintain RAGFlow Docker images for ARM. However, you can build an image yourself on a `linux/arm64` or `darwin/arm64` host machine as well.
|
||||
- For ARM64 platforms, please upgrade the `xgboost` version in **pyproject.toml** to `1.6.0` and ensure **unixODBC** is properly installed.
|
||||
:::
|
||||
|
||||
```bash
|
||||
git clone https://github.com/infiniflow/ragflow.git
|
||||
cd ragflow/
|
||||
uv run download_deps.py
|
||||
docker build -f Dockerfile.deps -t infiniflow/ragflow_deps .
|
||||
docker build --build-arg LIGHTEN=1 -f Dockerfile -t infiniflow/ragflow:nightly-slim .
|
||||
```
|
||||
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="including">
|
||||
|
||||
This image is approximately 9 GB in size. As it includes embedding models, it relies on external LLM services only.
|
||||
|
||||
:::danger IMPORTANT
|
||||
- While we also test RAGFlow on ARM64 platforms, we do not maintain RAGFlow Docker images for ARM. However, you can build an image yourself on a `linux/arm64` or `darwin/arm64` host machine as well.
|
||||
- For ARM64 platforms, please upgrade the `xgboost` version in **pyproject.toml** to `1.6.0` and ensure **unixODBC** is properly installed.
|
||||
:::
|
||||
|
||||
```bash
|
||||
git clone https://github.com/infiniflow/ragflow.git
|
||||
cd ragflow/
|
||||
uv run download_deps.py
|
||||
docker build -f Dockerfile.deps -t infiniflow/ragflow_deps .
|
||||
docker build -f Dockerfile -t infiniflow/ragflow:nightly .
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
## Launch a RAGFlow Service from Docker for MacOS
|
||||
|
||||
After building the infiniflow/ragflow:nightly-slim image, you are ready to launch a fully-functional RAGFlow service with all the required components, such as Elasticsearch, MySQL, MinIO, Redis, and more.
|
||||
|
||||
## Example: Apple M2 Pro (Sequoia)
|
||||
|
||||
1. Edit Docker Compose Configuration
|
||||
|
||||
Open the `docker/docker-compose-base.yml` file. Find the `infinity.image` setting and change the image reference from `infiniflow/infinity:v0.6.0-dev3` to `infiniflow/ragflow:nightly-slim` to use the pre-built image.
|
||||
|
||||
```yaml
|
||||
infinity:
|
||||
container_name: ragflow-infinity
|
||||
image: infiniflow/ragflow:nightly-slim # here
|
||||
volumes:
|
||||
- ...
|
||||
- ...
|
||||
...
|
||||
```
|
||||
|
||||
2. Launch the Service
|
||||
|
||||
```bash
|
||||
cd docker
|
||||
$ docker compose -f docker-compose-macos.yml up -d
|
||||
```
|
||||
|
||||
3. Access the RAGFlow Service
|
||||
|
||||
Once the setup is complete, open your web browser and navigate to http://127.0.0.1 or your server's \<IP_ADDRESS\>; (the default port is \<PORT\> = 80). You will be directed to the RAGFlow welcome page. Enjoy!🍻
|
||||
139
docs/develop/launch_ragflow_from_source.md
Normal file
139
docs/develop/launch_ragflow_from_source.md
Normal file
@ -0,0 +1,139 @@
|
||||
---
|
||||
sidebar_position: 2
|
||||
slug: /launch_ragflow_from_source
|
||||
---
|
||||
|
||||
# Launch a RAGFlow Service from Source
|
||||
|
||||
A guide explaining how to set up a RAGFlow service from its source code. By following this guide, you'll be able to debug using the source code.
|
||||
|
||||
## Target Audience
|
||||
|
||||
Developers who have added new features or modified existing code and wish to debug using the source code, *provided that* their machine has the target deployment environment set up.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- CPU ≥ 4 cores
|
||||
- RAM ≥ 16 GB
|
||||
- Disk ≥ 50 GB
|
||||
- Docker ≥ 24.0.0 & Docker Compose ≥ v2.26.1
|
||||
|
||||
:::tip NOTE
|
||||
If you have not installed Docker on your local machine (Windows, Mac, or Linux), see the [Install Docker Engine](https://docs.docker.com/engine/install/) guide.
|
||||
:::
|
||||
|
||||
## Launch the Service from Source
|
||||
|
||||
To launch the RAGFlow service from source code:
|
||||
|
||||
### Clone the RAGFlow Repository
|
||||
|
||||
```bash
|
||||
git clone https://github.com/infiniflow/ragflow.git
|
||||
cd ragflow/
|
||||
```
|
||||
|
||||
### Install Python dependencies
|
||||
|
||||
1. Install uv:
|
||||
|
||||
```bash
|
||||
pipx install uv
|
||||
```
|
||||
|
||||
2. Install Python dependencies:
|
||||
- slim:
|
||||
```bash
|
||||
uv sync --python 3.10 # install RAGFlow dependent python modules
|
||||
```
|
||||
- full:
|
||||
```bash
|
||||
uv sync --python 3.10 --all-extras # install RAGFlow dependent python modules
|
||||
```
|
||||
*A virtual environment named `.venv` is created, and all Python dependencies are installed into the new environment.*
|
||||
|
||||
### Launch Third-party Services
|
||||
|
||||
The following command launches the 'base' services (MinIO, Elasticsearch, Redis, and MySQL) using Docker Compose:
|
||||
|
||||
```bash
|
||||
docker compose -f docker/docker-compose-base.yml up -d
|
||||
```
|
||||
|
||||
### Update `host` and `port` Settings for Third-party Services
|
||||
|
||||
1. Add the following line to `/etc/hosts` to resolve all hosts specified in **docker/service_conf.yaml.template** to `127.0.0.1`:
|
||||
|
||||
```
|
||||
127.0.0.1 es01 infinity mysql minio redis
|
||||
```
|
||||
|
||||
2. In **docker/service_conf.yaml.template**, update mysql port to `5455` and es port to `1200`, as specified in **docker/.env**.
|
||||
|
||||
### Launch the RAGFlow Backend Service
|
||||
|
||||
1. Comment out the `nginx` line in **docker/entrypoint.sh**.
|
||||
|
||||
```
|
||||
# /usr/sbin/nginx
|
||||
```
|
||||
|
||||
2. Activate the Python virtual environment:
|
||||
|
||||
```bash
|
||||
source .venv/bin/activate
|
||||
export PYTHONPATH=$(pwd)
|
||||
```
|
||||
|
||||
3. **Optional:** If you cannot access HuggingFace, set the HF_ENDPOINT environment variable to use a mirror site:
|
||||
|
||||
```bash
|
||||
export HF_ENDPOINT=https://hf-mirror.com
|
||||
```
|
||||
|
||||
4. Run the **entrypoint.sh** script to launch the backend service:
|
||||
|
||||
```
|
||||
bash docker/entrypoint.sh
|
||||
```
|
||||
|
||||
### Launch the RAGFlow frontend service
|
||||
|
||||
1. Navigate to the `web` directory and install the frontend dependencies:
|
||||
|
||||
```bash
|
||||
cd web
|
||||
npm install
|
||||
```
|
||||
|
||||
2. Update `proxy.target` in **.umirc.ts** to `http://127.0.0.1:9380`:
|
||||
|
||||
```bash
|
||||
vim .umirc.ts
|
||||
```
|
||||
|
||||
3. Start up the RAGFlow frontend service:
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
*The following message appears, showing the IP address and port number of your frontend service:*
|
||||
|
||||

|
||||
|
||||
### Access the RAGFlow service
|
||||
|
||||
In your web browser, enter `http://127.0.0.1:<PORT>/`, ensuring the port number matches that shown in the screenshot above.
|
||||
|
||||
### Stop the RAGFlow service when the development is done
|
||||
|
||||
1. Stop the RAGFlow frontend service:
|
||||
```bash
|
||||
pkill npm
|
||||
```
|
||||
|
||||
2. Stop the RAGFlow backend service:
|
||||
```bash
|
||||
pkill -f "docker/entrypoint.sh"
|
||||
```
|
||||
Reference in New Issue
Block a user