Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

README.md 7.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <div align="center">
  2. <a href="https://ragflow.io/">
  3. <img src="https://github.com/infiniflow/ragflow/assets/12318111/f034fb27-b3bf-401b-b213-e1dfa7448d2a" width="320" alt="ragflow logo">
  4. </a>
  5. </div>
  6. <p align="center">
  7. <a href="./README.md">English</a> |
  8. <a href="./README_zh.md">简体中文</a>
  9. </p>
  10. <p align="center">
  11. <a href="https://ragflow.io" target="_blank">
  12. <img alt="Static Badge" src="https://img.shields.io/badge/RAGFLOW-LLM-white?&labelColor=dd0af7"></a>
  13. <a href="https://hub.docker.com/r/infiniflow/ragflow" target="_blank">
  14. <img src="https://img.shields.io/badge/docker_pull-ragflow:v1.0-brightgreen"
  15. alt="docker pull ragflow:v1.0"></a>
  16. <a href="https://github.com/infiniflow/ragflow/blob/main/LICENSE">
  17. <img height="21" src="https://img.shields.io/badge/License-Apache--2.0-ffffff?style=flat-square&labelColor=d4eaf7&color=7d09f1" alt="license">
  18. </a>
  19. </p>
  20. [RagFlow](http://ragflow.io) is a knowledge management platform built on custom-build document understanding engine and LLM,
  21. with reasoned and well-founded answers to your question. Clone this repository, you can deploy your own knowledge management
  22. platform to empower your business with AI.
  23. <div align="center" style="margin-top:20px;margin-bottom:20px;">
  24. <img src="https://github.com/infiniflow/ragflow/assets/12318111/b24a7a5f-4d1d-4a30-90b1-7b0ec558b79d" width="1000"/>
  25. </div>
  26. # Key Features
  27. - **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.
  28. - For documents from different domain for different purpose, the engine applys different analyzing and search strategy.
  29. - Easily intervene and manipulate the data proccessing procedure when things goes beyond expectation.
  30. - Multi-media document understanding is supported using OCR and multi-modal LLM.
  31. - **State-of-the-art table structure and layout recognition.** Precisely extract and understand the document including table content. See [README.](./deepdoc/README.md)
  32. - For PDF files, layout and table structures including row, column and span of them are recognized.
  33. - Put the table accrossing the pages together.
  34. - Reconstruct the table structure components into html table.
  35. - **Querying database dumped data are supported.** After uploading tables from any database, you can search any data records just by asking.
  36. - Instead of using SQL to query a database, every one cat get the wanted data just by asking using natrual language.
  37. - The record number uploaded is not limited.
  38. - Some extra description of column headers should be provided.
  39. - **Reasoned and well-founded answers.** The cited document part in LLM's answer is provided and pointed out in the original document.
  40. - The answers are based on retrieved result for which we apply vector-keyword hybrids search and rerank.
  41. - The part of document cited in the answer is presented in the most expressive way.
  42. - For PDF file, the cited parts in document can be located in the original PDF.
  43. # Release Notification
  44. **Star us on GitHub, and be notified for a new releases instantly!**
  45. ![star-us](https://github.com/infiniflow/ragflow/assets/12318111/2c2fbb5e-c403-496f-a1fd-64ba0fdbf74f)
  46. # Installation
  47. ## System Requirements
  48. Be aware of the system minimum requirements before starting installation.
  49. - CPU >= 2 cores
  50. - RAM >= 8GB
  51. Then, you need to check the following command:
  52. ```bash
  53. 121:/ragflow# sysctl vm.max_map_count
  54. vm.max_map_count = 262144
  55. ```
  56. If **vm.max_map_count** is not larger than 65535, please run the following commands:
  57. ```bash
  58. 121:/ragflow# sudo sysctl -w vm.max_map_count=262144
  59. ```
  60. However, this change is not persistent and will be reset after a system reboot.
  61. To make the change permanent, you need to update the **/etc/sysctl.conf**.
  62. Add or update the following line in the file:
  63. ```bash
  64. vm.max_map_count=262144
  65. ```
  66. ## Install docker
  67. If your machine doesn't have *Docker* installed, please refer to [Install Docker Engine](https://docs.docker.com/engine/install/)
  68. ## Quick Start
  69. > If you want to change the basic setups, like port, password .etc., please refer to [.env](./docker/.env) before starting the system.
  70. > If you change anything in [.env](./docker/.env), please check [service_conf.yaml](./docker/service_conf.yaml) which is a
  71. > configuration of the back-end service and should be consistent with [.env](./docker/.env).
  72. > - In [service_conf.yaml](./docker/service_conf.yaml), configuration of *LLM* in **user_default_llm** is strongly recommended.
  73. > In **user_default_llm** of [service_conf.yaml](./docker/service_conf.yaml), you need to specify LLM factory and your own _API_KEY_.
  74. > 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.
  75. > - We have supported the flowing LLM factory, and the others is coming soon:
  76. > [OpenAI](https://platform.openai.com/login?launch), [Tongyi-Qianwen](https://dashscope.console.aliyun.com/model),
  77. > [ZHIPU-AI](https://open.bigmodel.cn/), [Moonshot](https://platform.moonshot.cn/docs/docs)
  78. ```bash
  79. 121:/# git clone https://github.com/infiniflow/ragflow.git
  80. 121:/# cd ragflow/docker
  81. 121:/ragflow/docker# docker compose up -d
  82. ```
  83. > The core image is about 15GB, please be patient for the first time
  84. After pulling all the images and running up, use the following command to check the server status. If you can have the following outputs,
  85. _**Hallelujah!**_ You have successfully launched the system.
  86. ```bash
  87. 121:/ragflow# docker logs -f ragflow-server
  88. ____ ______ __
  89. / __ \ ____ _ ____ _ / ____// /____ _ __
  90. / /_/ // __ `// __ `// /_ / // __ \| | /| / /
  91. / _, _// /_/ // /_/ // __/ / // /_/ /| |/ |/ /
  92. /_/ |_| \__,_/ \__, //_/ /_/ \____/ |__/|__/
  93. /____/
  94. * Running on all addresses (0.0.0.0)
  95. * Running on http://127.0.0.1:9380
  96. * Running on http://172.22.0.5:9380
  97. INFO:werkzeug:Press CTRL+C to quit
  98. ```
  99. Open your browser, enter the IP address of your server, _**Hallelujah**_ again!
  100. > The default serving port is 80, if you want to change that, please refer to [docker-compose.yml](./docker-compose.yaml),
  101. > and change the left part of *'80:80'*'.
  102. # Configuration
  103. If you need to change the default setting of the system when you deploy it. There several ways to configure it.
  104. Please refer to [README](./docker/README.md) and manually set the configuration.
  105. After changing something, please run *docker-compose up -d* again.
  106. # RoadMap
  107. - [ ] File manager.
  108. - [ ] Support URLs. Crawl web and extract the main content.
  109. # Contributing
  110. For those who'd like to contribute code, see our [Contribution Guide](https://github.com/infiniflow/ragflow/blob/main/CONTRIBUTING.md).
  111. # License
  112. This repository is available under the [Ragflow Open Source License](LICENSE), which is essentially Apache 2.0 with a few additional restrictions.