Skip to content
Snippets Groups Projects
Unverified Commit be2b904d authored by writinwaters's avatar writinwaters Committed by GitHub
Browse files

0328 restructure readme (#165)

* Added emojis

* Miscellaneous editorial updates
parent b6837d4c
No related branches found
No related tags found
No related merge requests found
...@@ -20,70 +20,66 @@ ...@@ -20,70 +20,66 @@
<img height="21" src="https://img.shields.io/badge/License-Apache--2.0-ffffff?style=flat-square&labelColor=d4eaf7&color=7d09f1" alt="license"> <img height="21" src="https://img.shields.io/badge/License-Apache--2.0-ffffff?style=flat-square&labelColor=d4eaf7&color=7d09f1" alt="license">
</a> </a>
</p> </p>
[RagFlow](http://demo.ragflow.io) 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.
[RagFlow](http://demo.ragflow.io) 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.
<div align="center" style="margin-top:20px;margin-bottom:20px;"> <div align="center" style="margin-top:20px;margin-bottom:20px;">
<img src="https://github.com/infiniflow/ragflow/assets/12318111/b24a7a5f-4d1d-4a30-90b1-7b0ec558b79d" width="1000"/> <img src="https://github.com/infiniflow/ragflow/assets/12318111/b24a7a5f-4d1d-4a30-90b1-7b0ec558b79d" width="1000"/>
</div> </div>
# Key Features ## 🌟Key Features
- **Custom-build document understanding engine.** Our deep learning engine is made according to the needs of analyzing and searching various type of documents in different domain. - 🍭**Custom-build document understanding engine.** Our deep learning engine is made according to the needs of analyzing and searching various type of documents in different domain.
- For documents from different domain for different purpose, the engine applys different analyzing and search strategy. - For documents from different domain for different purpose, the engine applys different analyzing and search strategy.
- Easily intervene and manipulate the data proccessing procedure when things goes beyond expectation. - Easily intervene and manipulate the data proccessing procedure when things goes beyond expectation.
- Multi-media document understanding is supported using OCR and multi-modal LLM. - Multi-media document understanding is supported using OCR and multi-modal LLM.
- **State-of-the-art table structure and layout recognition.** Precisely extract and understand the document including table content. See [README.](./deepdoc/README.md) - 🍭**State-of-the-art table structure and layout recognition.** Precisely extract and understand the document including table content. See [README.](./deepdoc/README.md)
- For PDF files, layout and table structures including row, column and span of them are recognized. - For PDF files, layout and table structures including row, column and span of them are recognized.
- Put the table accrossing the pages together. - Put the table accrossing the pages together.
- Reconstruct the table structure components into html table. - Reconstruct the table structure components into html table.
- **Querying database dumped data are supported.** After uploading tables from any database, you can search any data records just by asking. - **Querying database dumped data are supported.** After uploading tables from any database, you can search any data records just by asking.
- Instead of using SQL to query a database, every one cat get the wanted data just by asking using natrual language. - You can now query a database using natural language instead of using SQL.
- The record number uploaded is not limited. - The record number uploaded is not limited.
- Some extra description of column headers should be provided.
- **Reasoned and well-founded answers.** The cited document part in LLM's answer is provided and pointed out in the original document. - **Reasoned and well-founded answers.** The cited document part in LLM's answer is provided and pointed out in the original document.
- The answers are based on retrieved result for which we apply vector-keyword hybrids search and rerank. - The answers are based on retrieved result for which we apply vector-keyword hybrids search and re-rank.
- The part of document cited in the answer is presented in the most expressive way. - The part of document cited in the answer is presented in the most expressive way.
- For PDF file, the cited parts in document can be located in the original PDF. - For PDF file, the cited parts in document can be located in the original PDF.
# Release Notification ## 🤺RagFlow vs. other RAG applications
**Star us on GitHub, and be notified for a new releases instantly!**
![star-us](https://github.com/infiniflow/ragflow/assets/12318111/2c2fbb5e-c403-496f-a1fd-64ba0fdbf74f)
## 🎬 Get Started
# Installation ### 📝Prerequisites
## System Requirements
Be aware of the system minimum requirements before starting installation.
- CPU >= 2 cores - CPU >= 2 cores
- RAM >= 8GB - RAM >= 8 GB
Then, you need to check the following command: Then, you need to check the following command:
```bash ```bash
121:/ragflow# sysctl vm.max_map_count 121:/ragflow# sysctl vm.max_map_count
vm.max_map_count = 262144 vm.max_map_count = 262144
``` ```
If **vm.max_map_count** is not larger than 65535, please run the following commands: If **vm.max_map_count** is not greater than 65535:
```bash ```bash
121:/ragflow# sudo sysctl -w vm.max_map_count=262144 121:/ragflow# sudo sysctl -w vm.max_map_count=262144
``` ```
However, this change is not persistent and will be reset after a system reboot. Note that this change is reset after a system reboot. To render your change permanent, add or update the following line in **/etc/sysctl.conf**:
To make the change permanent, you need to update the **/etc/sysctl.conf**.
Add or update the following line in the file:
```bash ```bash
vm.max_map_count=262144 vm.max_map_count=262144
``` ```
## Install docker ### Install docker
If your machine doesn't have *Docker* installed, please refer to [Install Docker Engine](https://docs.docker.com/engine/install/) If you have not installed *Docker* on your local machine, see [Install Docker Engine](https://docs.docker.com/engine/install/)
## Quick Start ### Quick Start
> - In [service_conf.yaml](./docker/service_conf.yaml), configuration of *LLM* in **user_default_llm** is strongly recommended. > - In [service_conf.yaml](./docker/service_conf.yaml), configuration of *LLM* in **user_default_llm** is strongly recommended.
> In **user_default_llm** of [service_conf.yaml](./docker/service_conf.yaml), you need to specify LLM factory and your own _API_KEY_. > In **user_default_llm** of [service_conf.yaml](./docker/service_conf.yaml), you need to specify LLM factory and your own _API_KEY_.
> It's O.K if you don't have _API_KEY_ at the moment, you can specify it later at the setting part after starting and logging in the system. > If you do not have _API_KEY_ at the moment, you can specify it in
> - We have supported the flowing LLM factory, and the others is coming soon: Settings the next time you log in to the system.
> - RagFlow supports the flowing LLM factory, with more coming in the pipeline:
> [OpenAI](https://platform.openai.com/login?launch), [Tongyi-Qianwen](https://dashscope.console.aliyun.com/model), > [OpenAI](https://platform.openai.com/login?launch), [Tongyi-Qianwen](https://dashscope.console.aliyun.com/model),
> [ZHIPU-AI](https://open.bigmodel.cn/), [Moonshot](https://platform.moonshot.cn/docs/docs) > [ZHIPU-AI](https://open.bigmodel.cn/), [Moonshot](https://platform.moonshot.cn/docs/docs)
```bash ```bash
...@@ -100,13 +96,15 @@ $ docker build -t infiniflow/ragflow:v1.0 . ...@@ -100,13 +96,15 @@ $ docker build -t infiniflow/ragflow:v1.0 .
$ cd ragflow/docker $ cd ragflow/docker
$ docker compose up -d $ docker compose up -d
``` ```
> The core image is about 15GB, please be patient for the first time > The core image is about 15 GB in size and may take a while to load.
After pulling all the images and running up, use the following command to check the server status. If you can have the following outputs, Check the server status after pulling all images and running up:
_**Hallelujah!**_ You have successfully launched the system.
```bash ```bash
$ docker logs -f ragflow-server $ docker logs -f ragflow-server
```
*Hallelujah! The following outputs indicates that you have successfully launched the system:*
```bash
____ ______ __ ____ ______ __
/ __ \ ____ _ ____ _ / ____// /____ _ __ / __ \ ____ _ ____ _ / ____// /____ _ __
/ /_/ // __ `// __ `// /_ / // __ \| | /| / / / /_/ // __ `// __ `// /_ / // __ \| | /| / /
...@@ -121,35 +119,36 @@ INFO:werkzeug:Press CTRL+C to quit ...@@ -121,35 +119,36 @@ INFO:werkzeug:Press CTRL+C to quit
``` ```
Open your browser, enter the IP address of your server, _**Hallelujah**_ again! Open your browser, enter the IP address of your server, _**Hallelujah**_ again!
> The default serving port is 80, if you want to change that, please refer to [docker-compose.yml](./docker-compose.yaml), > The default serving port is 80, if you want to change that, refer to the [docker-compose.yml](./docker-compose.yaml) and change the left part of *'80:80'*'.
> and change the left part of *'80:80'*'.
# System Architecture Diagram ## 🔎System Architecture
<div align="center" style="margin-top:20px;margin-bottom:20px;"> <div align="center" style="margin-top:20px;margin-bottom:20px;">
<img src="https://github.com/infiniflow/ragflow/assets/12318111/d6ac5664-c237-4200-a7c2-a4a00691b485" width="1000"/> <img src="https://github.com/infiniflow/ragflow/assets/12318111/d6ac5664-c237-4200-a7c2-a4a00691b485" width="1000"/>
</div> </div>
## 🔧 Configurations
# Configuration
If you need to change the default setting of the system when you deploy it. There several ways to configure it. If you need to change the default setting of the system when you deploy it. There several ways to configure it.
Please refer to [README](./docker/README.md) and manually set the configuration. Please refer to this [README](./docker/README.md) to manually update the configuration.
After changing something, please run *docker-compose up -d* again. After changing something, please run *docker-compose up -d* again.
> If you want to change the basic setups, like port, password .etc., please refer to [.env](./docker/.env) before starting the system. > If you want to change the basic setups, like port, password .etc., please refer to [.env](./docker/.env) before starting up the system.
> If you change anything in [.env](./docker/.env), please check [service_conf.yaml](./docker/service_conf.yaml) which is a > If you change anything in [.env](./docker/.env), please check [service_conf.yaml](./docker/service_conf.yaml) which is a configuration of the back-end service and should be consistent with [.env](./docker/.env).
> configuration of the back-end service and should be consistent with [.env](./docker/.env).
# RoadMap ## 📜 Roadmap
- [ ] File manager. See the [RagFlow Roadmap 2024](https://github.com/infiniflow/ragflow/issues/162)
- [ ] Support URLs. Crawl web and extract the main content.
## 🏄Community
# Contributing - [Discord](https://discord.gg/uqQ4YMDf)
- X
- [GitHub Discussions]()
- YouTube
- WeChat
For those who'd like to contribute code, see our [Contribution Guide](https://github.com/infiniflow/ragflow/blob/main/CONTRIBUTING.md).
# License ## 🙌 Contributing
This repository is available under the [Ragflow Open Source License](LICENSE), which is essentially Apache 2.0 with a few additional restrictions. For those who'd like to contribute code, see our [Contribution Guide](https://github.com/infiniflow/ragflow/blob/main/CONTRIBUTING.md).
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment