<a href="https://demo.ragflow.io" target="_blank">
<img alt="Static Badge" src="https://img.shields.io/badge/RAGFLOW-LLM-white?&labelColor=dd0af7"></a>
<a href="https://hub.docker.com/r/infiniflow/ragflow" target="_blank">
<img src="https://img.shields.io/badge/docker_pull-ragflow:v1.0-brightgreen"
alt="docker pull ragflow:v1.0"></a>
<a href="https://github.com/infiniflow/ragflow/blob/main/LICENSE">
<img height="21" src="https://img.shields.io/badge/License-Apache--2.0-ffffff?style=flat-square&labelColor=d4eaf7&color=7d09f1" alt="license">
RagFlow is a knowledge management platform built on custom-build document understanding engine and LLM, with reasoned and well-founded answers to your question. Clone this repository, you can deploy your own knowledge management platform to empower your business with AI.
| Feature | RagFlow | Langchain-Chatchat | Assistants API | QAnythig | LangChain |
|---|---|---|---|---|---|
| Well-Founded Answer | :white_check_mark: | :x: | :x: | :x: | :x: |
| Trackable Chunking | :white_check_mark: | :x: | :x: | :x: | :x: |
| Chunking Method | Rich Variety | Naive | Naive | Naive | Naive |
| Table Structure Recognition | :white_check_mark: | :x: | :x: | :x: | :x: |
| Structured Data Lookup | :white_check_mark: | :x: | :x: | :x: | :x: |
| Programming Approach | API-oriented | API-oriented | API-oriented | API-oriented | Python Code-oriented |
| RAG Engine | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :x: |
| Prompt IDE | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :x: |
| Supported LLMs | Rich Variety | Rich Variety | OpenAI-only | QwenLLM | Rich Variety |
| Local Deployment | :white_check_mark: | :white_check_mark: | :x: | :x: | :x: |
| Ecosystem Strategy | Open Source | Open Source | Close Source | Open Source | Open Source |
vm.max_map_count > 65535To check the value of
vm.max_map_count:> $ sysctl vm.max_map_count > ``` > > Reset `vm.max_map_count` to a value greater than 65535 if it is not. In this case, we set it to 262144: > > ```bash > $ 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 following line in **/etc/sysctl.conf** accordingly: > > ```bash > vm.max_map_count=262144 > ``` ### Start up the RagFlow server 1. Clone the repo ```bash $ git clone https://github.com/infiniflow/ragflow.git
- In service_conf.yaml, configuration of LLM in user_default_llm is strongly recommended. In user_default_llm of service_conf.yaml, you need to specify LLM factory and your own _APIKEY. If you do not have _APIKEY at the moment, you can specify it in Settings the next time you log in to the system.
- RagFlow supports the flowing LLM factory, with more coming in the pipeline: OpenAI, Tongyi-Qianwen, ZHIPU-AI, Moonshot ```bash
$ cd ragflow/docker $ docker compose up -d ```
OR
$ git clone https://github.com/infiniflow/ragflow.git
$ cd ragflow/
$ docker build -t infiniflow/ragflow:v1.0 .
$ 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 pulling all images and having Docker up and running:
$ docker logs -f ragflow-server
The following output confirms the 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 browser, enter the IP address of your server.
The default serving port is 80, if you want to change that, refer to the docker-compose.yml and change the left part of
80:80, say66:80.
If you need to change the default setting of the system when you deploy it. There several ways to configure it. Please refer to this README to manually update the configuration. Updates to system configurations require a system reboot to take effect docker-compose up -d again.
If you want to change the basic setups, like port, password .etc., please refer to .env before starting up the system.
If you change anything in .env, please check service_conf.yaml which is a configuration of the back-end service and should be consistent with .env.
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.