Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
KevinHuSh 38e5737067
add base url for OpenAI (#166)
1 рік тому
.github add PR MD (#4) 1 рік тому
api add base url for OpenAI (#166) 1 рік тому
conf rm some sensitive info (#157) 1 рік тому
deepdoc add base url for OpenAI (#166) 1 рік тому
docker rm some sensitive info (#157) 1 рік тому
rag add base url for OpenAI (#166) 1 рік тому
web feat: add corresponding icons to files (#164) 1 рік тому
.gitignore change callback strategy, add timezone to docker (#96) 1 рік тому
Dockerfile resolve table issues (#125) 1 рік тому
Dockerfile.cuda resolve table issues (#125) 1 рік тому
LICENSE Initial commit 1 рік тому
README.md add base url for OpenAI (#166) 1 рік тому
README_zh.md add dockerfile and fix trival bugs (#78) 1 рік тому
requirements.txt refine page ranges (#147) 1 рік тому

README.md

English | 简体中文

<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.

🌟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.
    • 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.
    • 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.
    • For PDF files, layout and table structures including row, column and span of them are recognized.
    • Put the table accrossing the pages together.
    • 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.
    • You can now query a database using natural language instead of using SQL.
    • The record number uploaded is not limited.
  • 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 re-rank.
    • 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.

🤺RagFlow vs. other RAG applications

🎬 Get Started

📝Prerequisites

  • CPU >= 2 cores
  • RAM >= 8 GB

Then, you need to check the following command:

$ sysctl vm.max_map_count
vm.max_map_count = 262144

If vm.max_map_count is not greater than 65535:

$ sudo sysctl -w vm.max_map_count=262144

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:

vm.max_map_count=262144

Install docker

If you have not installed Docker on your local machine, see Install Docker Engine

Quick Start

  • 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

    $ git clone https://github.com/infiniflow/ragflow.git
    $ 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 running up:

$ docker logs -f  ragflow-server

Hallelujah! The following outputs indicates that you have successfully launched 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

Open your browser, enter the IP address of your server, Hallelujah again!

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’’.

🔎System Architecture

🔧 Configurations

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. 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 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.

📜 Roadmap

See the RagFlow Roadmap 2024

🏄Community

  • Discord
  • X
  • [GitHub Discussions]()
  • YouTube
  • WeChat

🙌 Contributing

For those who’d like to contribute code, see our Contribution Guide.