infiniflow / ragflow
- ัะตัะฒะตัะณ, 4 ะฐะฟัะตะปั 2024โฏะณ. ะฒ 00:00:04
RAGFlow is an open-source RAG (Retrieval-Augmented Generation) engine based on deep document understanding.
RAGFlow is an open-source RAG (Retrieval-Augmented Generation) engine based on deep document understanding. It offers a streamlined RAG workflow for businesses of any scale, combining LLM (Large Language Models) to provide truthful question-answering capabilities, backed by well-founded citations from various complex formatted data.
If you have not installed Docker on your local machine (Windows, Mac, or Linux), see Install Docker Engine.
Ensure vm.max_map_count
> 65535:
To check the value of
vm.max_map_count
:$ sysctl vm.max_map_countReset
vm.max_map_count
to a value greater than 65535 if it is not.# In this case, we set it to 262144: $ sudo sysctl -w vm.max_map_count=262144
This change will be reset after a system reboot. To ensure your change remains permanent, add or update the
vm.max_map_count
value in /etc/sysctl.conf accordingly:vm.max_map_count=262144
Clone the repo:
$ git clone https://github.com/infiniflow/ragflow.git
Build the pre-built Docker images and start up the server:
$ cd ragflow/docker
$ docker compose up -d
The core image is about 15 GB in size and may take a while to load.
Check the server status after having the server up and running:
$ docker logs -f ragflow-server
The following output confirms a successful launch of the system:
____ ______ __
/ __ \ ____ _ ____ _ / ____// /____ _ __
/ /_/ // __ `// __ `// /_ / // __ \| | /| / /
/ _, _// /_/ // /_/ // __/ / // /_/ /| |/ |/ /
/_/ |_| \__,_/ \__, //_/ /_/ \____/ |__/|__/
/____/
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:9380
* Running on http://172.22.0.5:9380
INFO:werkzeug:Press CTRL+C to quit
In your web browser, enter the IP address of your server as prompted and log in to RAGFlow.
In the given scenario, you only need to enter
http://172.22.0.5
(sans port number) as the default HTTP serving port80
can be omitted when using the default configurations.
In service_conf.yaml, select the desired LLM factory in user_default_llm
and update the API_KEY
field with the corresponding API key.
See ./docs/llm_api_key_setup.md for more information.
The show is now on!
When it comes to system configurations, you will need to manage the following files:
SVR_HTTP_PORT
, MYSQL_PASSWORD
, and MINIO_PASSWORD
.You must ensure that changes to the .env file are in line with what are in the service_conf.yaml file.
The ./docker/README file provides a detailed description of the environment settings and service configurations, and you are REQUIRED to ensure that all environment settings listed in the ./docker/README file are aligned with the corresponding configurations in the service_conf.yaml file.
To update the default HTTP serving port (80), go to docker-compose.yml and change 80:80
to <YOUR_SERVING_PORT>:80
.
Updates to all system configurations require a system reboot to take effect:
$ docker-compose up -d
To build the Docker images from source:
$ git clone https://github.com/infiniflow/ragflow.git
$ cd ragflow/
$ docker build -t infiniflow/ragflow:v1.0 .
$ cd ragflow/docker
$ docker compose up -d
See the RAGFlow Roadmap 2024
RAGFlow flourishes via open-source collaboration. In this spirit, we embrace diverse contributions from the community. If you would like to be a part, review our Contribution Guidelines first.