diff --git a/README.md b/README.md index 18c66c8a00..51536d121d 100644 --- a/README.md +++ b/README.md @@ -1,348 +1,348 @@ -
- -ragflow logo - -
- -

- English | - 简体中文 | - 日本語 -

- -

- - Latest Release - - - Static Badge - - docker pull infiniflow/ragflow:v0.9.0 - - license - -

- -

- Document | - Roadmap | - Twitter | - Discord | - Demo -

- -
-📕 Table of Contents - -- 💡 [What is RAGFlow?](#-what-is-ragflow) -- 🎮 [Demo](#-demo) -- 📌 [Latest Updates](#-latest-updates) -- 🌟 [Key Features](#-key-features) -- 🔎 [System Architecture](#-system-architecture) -- 🎬 [Get Started](#-get-started) -- 🔧 [Configurations](#-configurations) -- 🛠️ [Build from source](#-build-from-source) -- 🛠️ [Launch service from source](#-launch-service-from-source) -- 📚 [Documentation](#-documentation) -- 📜 [Roadmap](#-roadmap) -- 🏄 [Community](#-community) -- 🙌 [Contributing](#-contributing) - -
- -## 💡 What is RAGFlow? - -[RAGFlow](https://ragflow.io/) 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. - -## 🎮 Demo - -Try our demo at [https://demo.ragflow.io](https://demo.ragflow.io). -
- - -
- - -## 🔥 Latest Updates - -- 2024-08-02 Supports GraphRAG inspired by [graphrag](https://github.com/microsoft/graphrag) , and mind map. - -- 2024-07-23 Supports audio file parsing. - -- 2024-07-21 Supports more LLMs (LocalAI, OpenRouter, StepFun, and Nvidia). - -- 2024-07-18 Adds more components (Wikipedia, PubMed, Baidu, and Duckduckgo) to the graph. - -- 2024-07-08 Supports workflow based on [Graph](./graph/README.md). -- 2024-06-27 Supports Markdown and Docx in the Q&A parsing method. -- 2024-06-27 Supports extracting images from Docx files. -- 2024-06-27 Supports extracting tables from Markdown files. -- 2024-06-06 Supports [Self-RAG](https://huggingface.co/papers/2310.11511), which is enabled by default in dialog settings. -- 2024-05-30 Integrates [BCE](https://github.com/netease-youdao/BCEmbedding) and [BGE](https://github.com/FlagOpen/FlagEmbedding) reranker models. -- 2024-05-23 Supports [RAPTOR](https://arxiv.org/html/2401.18059v1) for better text retrieval. -- 2024-05-15 Integrates OpenAI GPT-4o. - -## 🌟 Key Features - -### 🍭 **"Quality in, quality out"** - -- [Deep document understanding](./deepdoc/README.md)-based knowledge extraction from unstructured data with complicated formats. -- Finds "needle in a data haystack" of literally unlimited tokens. - -### 🍱 **Template-based chunking** - -- Intelligent and explainable. -- Plenty of template options to choose from. - -### 🌱 **Grounded citations with reduced hallucinations** - -- Visualization of text chunking to allow human intervention. -- Quick view of the key references and traceable citations to support grounded answers. - -### 🍔 **Compatibility with heterogeneous data sources** - -- Supports Word, slides, excel, txt, images, scanned copies, structured data, web pages, and more. - -### 🛀 **Automated and effortless RAG workflow** - -- Streamlined RAG orchestration catered to both personal and large businesses. -- Configurable LLMs as well as embedding models. -- Multiple recall paired with fused re-ranking. -- Intuitive APIs for seamless integration with business. - -## 🔎 System Architecture - -
- -
- -## 🎬 Get Started - -### 📝 Prerequisites - -- CPU >= 4 cores -- RAM >= 16 GB -- Disk >= 50 GB -- Docker >= 24.0.0 & Docker Compose >= v2.26.1 - > If you have not installed Docker on your local machine (Windows, Mac, or Linux), see [Install Docker Engine](https://docs.docker.com/engine/install/). - -### 🚀 Start up the server - -1. Ensure `vm.max_map_count` >= 262144: - - > To check the value of `vm.max_map_count`: - > - > ```bash - > $ sysctl vm.max_map_count - > ``` - > - > Reset `vm.max_map_count` to a value at least 262144 if it is not. - > - > ```bash - > # 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: - > - > ```bash - > vm.max_map_count=262144 - > ``` - -2. Clone the repo: - - ```bash - $ git clone https://github.com/infiniflow/ragflow.git - ``` - -3. Build the pre-built Docker images and start up the server: - - > Running the following commands automatically downloads the *dev* version RAGFlow Docker image. To download and run a specified Docker version, update `RAGFLOW_VERSION` in **docker/.env** to the intended version, for example `RAGFLOW_VERSION=v0.8.0`, before running the following commands. - - ```bash - $ cd ragflow/docker - $ chmod +x ./entrypoint.sh - $ docker compose up -d - ``` - - - > The core image is about 9 GB in size and may take a while to load. - -4. Check the server status after having the server up and running: - - ```bash - $ docker logs -f ragflow-server - ``` - - _The following output confirms a successful launch of the system:_ - - ```bash - ____ ______ __ - / __ \ ____ _ ____ _ / ____// /____ _ __ - / /_/ // __ `// __ `// /_ / // __ \| | /| / / - / _, _// /_/ // /_/ // __/ / // /_/ /| |/ |/ / - /_/ |_| \__,_/ \__, //_/ /_/ \____/ |__/|__/ - /____/ - - * Running on all addresses (0.0.0.0) - * Running on http://127.0.0.1:9380 - * Running on http://x.x.x.x:9380 - INFO:werkzeug:Press CTRL+C to quit - ``` - > If you skip this confirmation step and directly log in to RAGFlow, your browser may prompt a `network anomaly` error because, at that moment, your RAGFlow may not be fully initialized. - -5. In your web browser, enter the IP address of your server and log in to RAGFlow. - > With the default settings, you only need to enter `http://IP_OF_YOUR_MACHINE` (**sans** port number) as the default HTTP serving port `80` can be omitted when using the default configurations. -6. In [service_conf.yaml](./docker/service_conf.yaml), select the desired LLM factory in `user_default_llm` and update the `API_KEY` field with the corresponding API key. - - > See [llm_api_key_setup](https://ragflow.io/docs/dev/llm_api_key_setup) for more information. - - _The show is now on!_ - -## 🔧 Configurations - -When it comes to system configurations, you will need to manage the following files: - -- [.env](./docker/.env): Keeps the fundamental setups for the system, such as `SVR_HTTP_PORT`, `MYSQL_PASSWORD`, and `MINIO_PASSWORD`. -- [service_conf.yaml](./docker/service_conf.yaml): Configures the back-end services. -- [docker-compose.yml](./docker/docker-compose.yml): The system relies on [docker-compose.yml](./docker/docker-compose.yml) to start up. - -You must ensure that changes to the [.env](./docker/.env) file are in line with what are in the [service_conf.yaml](./docker/service_conf.yaml) file. - -> The [./docker/README](./docker/README.md) 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](./docker/README.md) file are aligned with the corresponding configurations in the [service_conf.yaml](./docker/service_conf.yaml) file. - -To update the default HTTP serving port (80), go to [docker-compose.yml](./docker/docker-compose.yml) and change `80:80` to `:80`. - -> Updates to all system configurations require a system reboot to take effect: -> -> ```bash -> $ docker-compose up -d -> ``` - -## 🛠️ Build from source - -To build the Docker images from source: - -```bash -$ git clone https://github.com/infiniflow/ragflow.git -$ cd ragflow/ -$ docker build -t infiniflow/ragflow:dev . -$ cd ragflow/docker -$ chmod +x ./entrypoint.sh -$ docker compose up -d -``` - -## 🛠️ Launch service from source - -To launch the service from source: - -1. Clone the repository: - - ```bash - $ git clone https://github.com/infiniflow/ragflow.git - $ cd ragflow/ - ``` - -2. Create a virtual environment, ensuring that Anaconda or Miniconda is installed: - - ```bash - $ conda create -n ragflow python=3.11.0 - $ conda activate ragflow - $ pip install -r requirements.txt - ``` - - ```bash - # If your CUDA version is higher than 12.0, run the following additional commands: - $ pip uninstall -y onnxruntime-gpu - $ pip install onnxruntime-gpu --extra-index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/onnxruntime-cuda-12/pypi/simple/ - ``` - -3. Copy the entry script and configure environment variables: - - ```bash - # Get the Python path: - $ which python - # Get the ragflow project path: - $ pwd - ``` - - ```bash - $ cp docker/entrypoint.sh . - $ vi entrypoint.sh - ``` - - ```bash - # Adjust configurations according to your actual situation (the following two export commands are newly added): - # - Assign the result of `which python` to `PY`. - # - Assign the result of `pwd` to `PYTHONPATH`. - # - Comment out `LD_LIBRARY_PATH`, if it is configured. - # - Optional: Add Hugging Face mirror. - PY=${PY} - export PYTHONPATH=${PYTHONPATH} - export HF_ENDPOINT=https://hf-mirror.com - ``` - -4. Launch the third-party services (MinIO, Elasticsearch, Redis, and MySQL): - - ```bash - $ cd docker - $ docker compose -f docker-compose-base.yml up -d - ``` - -5. Check the configuration files, ensuring that: - - - The settings in **docker/.env** match those in **conf/service_conf.yaml**. - - The IP addresses and ports for related services in **service_conf.yaml** match the local machine IP and ports exposed by the container. - -6. Launch the RAGFlow backend service: - - ```bash - $ chmod +x ./entrypoint.sh - $ bash ./entrypoint.sh - ``` - -7. Launch the frontend service: - - ```bash - $ cd web - $ npm install --registry=https://registry.npmmirror.com --force - $ vim .umirc.ts - # Update proxy.target to http://127.0.0.1:9380 - $ npm run dev - ``` - -8. Deploy the frontend service: - - ```bash - $ cd web - $ npm install --registry=https://registry.npmmirror.com --force - $ umi build - $ mkdir -p /ragflow/web - $ cp -r dist /ragflow/web - $ apt install nginx -y - $ cp ../docker/nginx/proxy.conf /etc/nginx - $ cp ../docker/nginx/nginx.conf /etc/nginx - $ cp ../docker/nginx/ragflow.conf /etc/nginx/conf.d - $ systemctl start nginx - ``` - -## 📚 Documentation - -- [Quickstart](https://ragflow.io/docs/dev/) -- [User guide](https://ragflow.io/docs/dev/category/user-guides) -- [References](https://ragflow.io/docs/dev/category/references) -- [FAQ](https://ragflow.io/docs/dev/faq) - -## 📜 Roadmap - -See the [RAGFlow Roadmap 2024](https://github.com/infiniflow/ragflow/issues/162) - -## 🏄 Community - -- [Discord](https://discord.gg/4XxujFgUN7) -- [Twitter](https://twitter.com/infiniflowai) -- [GitHub Discussions](https://github.com/orgs/infiniflow/discussions) - -## 🙌 Contributing - -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](./docs/references/CONTRIBUTING.md) first. +
+ +ragflow logo + +
+ +

+ English | + 简体中文 | + 日本語 +

+ +

+ + Latest Release + + + Static Badge + + docker pull infiniflow/ragflow:v0.9.0 + + license + +

+ +

+ Document | + Roadmap | + Twitter | + Discord | + Demo +

+ +
+📕 Table of Contents + +- 💡 [What is RAGFlow?](#-what-is-ragflow) +- 🎮 [Demo](#-demo) +- 📌 [Latest Updates](#-latest-updates) +- 🌟 [Key Features](#-key-features) +- 🔎 [System Architecture](#-system-architecture) +- 🎬 [Get Started](#-get-started) +- 🔧 [Configurations](#-configurations) +- 🛠️ [Build from source](#-build-from-source) +- 🛠️ [Launch service from source](#-launch-service-from-source) +- 📚 [Documentation](#-documentation) +- 📜 [Roadmap](#-roadmap) +- 🏄 [Community](#-community) +- 🙌 [Contributing](#-contributing) + +
+ +## 💡 What is RAGFlow? + +[RAGFlow](https://ragflow.io/) 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. + +## 🎮 Demo + +Try our demo at [https://demo.ragflow.io](https://demo.ragflow.io). +
+ + +
+ + +## 🔥 Latest Updates + +- 2024-08-02 Supports GraphRAG inspired by [graphrag](https://github.com/microsoft/graphrag) , and mind map. + +- 2024-07-23 Supports audio file parsing. + +- 2024-07-21 Supports more LLMs (LocalAI, OpenRouter, StepFun, and Nvidia). + +- 2024-07-18 Adds more components (Wikipedia, PubMed, Baidu, and Duckduckgo) to the graph. + +- 2024-07-08 Supports workflow based on [Graph](./graph/README.md). +- 2024-06-27 Supports Markdown and Docx in the Q&A parsing method. +- 2024-06-27 Supports extracting images from Docx files. +- 2024-06-27 Supports extracting tables from Markdown files. +- 2024-06-06 Supports [Self-RAG](https://huggingface.co/papers/2310.11511), which is enabled by default in dialog settings. +- 2024-05-30 Integrates [BCE](https://github.com/netease-youdao/BCEmbedding) and [BGE](https://github.com/FlagOpen/FlagEmbedding) reranker models. +- 2024-05-23 Supports [RAPTOR](https://arxiv.org/html/2401.18059v1) for better text retrieval. +- 2024-05-15 Integrates OpenAI GPT-4o. + +## 🌟 Key Features + +### 🍭 **"Quality in, quality out"** + +- [Deep document understanding](./deepdoc/README.md)-based knowledge extraction from unstructured data with complicated formats. +- Finds "needle in a data haystack" of literally unlimited tokens. + +### 🍱 **Template-based chunking** + +- Intelligent and explainable. +- Plenty of template options to choose from. + +### 🌱 **Grounded citations with reduced hallucinations** + +- Visualization of text chunking to allow human intervention. +- Quick view of the key references and traceable citations to support grounded answers. + +### 🍔 **Compatibility with heterogeneous data sources** + +- Supports Word, slides, excel, txt, images, scanned copies, structured data, web pages, and more. + +### 🛀 **Automated and effortless RAG workflow** + +- Streamlined RAG orchestration catered to both personal and large businesses. +- Configurable LLMs as well as embedding models. +- Multiple recall paired with fused re-ranking. +- Intuitive APIs for seamless integration with business. + +## 🔎 System Architecture + +
+ +
+ +## 🎬 Get Started + +### 📝 Prerequisites + +- CPU >= 4 cores +- RAM >= 16 GB +- Disk >= 50 GB +- Docker >= 24.0.0 & Docker Compose >= v2.26.1 + > If you have not installed Docker on your local machine (Windows, Mac, or Linux), see [Install Docker Engine](https://docs.docker.com/engine/install/). + +### 🚀 Start up the server + +1. Ensure `vm.max_map_count` >= 262144: + + > To check the value of `vm.max_map_count`: + > + > ```bash + > $ sysctl vm.max_map_count + > ``` + > + > Reset `vm.max_map_count` to a value at least 262144 if it is not. + > + > ```bash + > # 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: + > + > ```bash + > vm.max_map_count=262144 + > ``` + +2. Clone the repo: + + ```bash + $ git clone https://github.com/infiniflow/ragflow.git + ``` + +3. Build the pre-built Docker images and start up the server: + + > Running the following commands automatically downloads the *dev* version RAGFlow Docker image. To download and run a specified Docker version, update `RAGFLOW_VERSION` in **docker/.env** to the intended version, for example `RAGFLOW_VERSION=v0.9.0`, before running the following commands. + + ```bash + $ cd ragflow/docker + $ chmod +x ./entrypoint.sh + $ docker compose up -d + ``` + + + > The core image is about 9 GB in size and may take a while to load. + +4. Check the server status after having the server up and running: + + ```bash + $ docker logs -f ragflow-server + ``` + + _The following output confirms a successful launch of the system:_ + + ```bash + ____ ______ __ + / __ \ ____ _ ____ _ / ____// /____ _ __ + / /_/ // __ `// __ `// /_ / // __ \| | /| / / + / _, _// /_/ // /_/ // __/ / // /_/ /| |/ |/ / + /_/ |_| \__,_/ \__, //_/ /_/ \____/ |__/|__/ + /____/ + + * Running on all addresses (0.0.0.0) + * Running on http://127.0.0.1:9380 + * Running on http://x.x.x.x:9380 + INFO:werkzeug:Press CTRL+C to quit + ``` + > If you skip this confirmation step and directly log in to RAGFlow, your browser may prompt a `network anomaly` error because, at that moment, your RAGFlow may not be fully initialized. + +5. In your web browser, enter the IP address of your server and log in to RAGFlow. + > With the default settings, you only need to enter `http://IP_OF_YOUR_MACHINE` (**sans** port number) as the default HTTP serving port `80` can be omitted when using the default configurations. +6. In [service_conf.yaml](./docker/service_conf.yaml), select the desired LLM factory in `user_default_llm` and update the `API_KEY` field with the corresponding API key. + + > See [llm_api_key_setup](https://ragflow.io/docs/dev/llm_api_key_setup) for more information. + + _The show is now on!_ + +## 🔧 Configurations + +When it comes to system configurations, you will need to manage the following files: + +- [.env](./docker/.env): Keeps the fundamental setups for the system, such as `SVR_HTTP_PORT`, `MYSQL_PASSWORD`, and `MINIO_PASSWORD`. +- [service_conf.yaml](./docker/service_conf.yaml): Configures the back-end services. +- [docker-compose.yml](./docker/docker-compose.yml): The system relies on [docker-compose.yml](./docker/docker-compose.yml) to start up. + +You must ensure that changes to the [.env](./docker/.env) file are in line with what are in the [service_conf.yaml](./docker/service_conf.yaml) file. + +> The [./docker/README](./docker/README.md) 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](./docker/README.md) file are aligned with the corresponding configurations in the [service_conf.yaml](./docker/service_conf.yaml) file. + +To update the default HTTP serving port (80), go to [docker-compose.yml](./docker/docker-compose.yml) and change `80:80` to `:80`. + +> Updates to all system configurations require a system reboot to take effect: +> +> ```bash +> $ docker-compose up -d +> ``` + +## 🛠️ Build from source + +To build the Docker images from source: + +```bash +$ git clone https://github.com/infiniflow/ragflow.git +$ cd ragflow/ +$ docker build -t infiniflow/ragflow:dev . +$ cd ragflow/docker +$ chmod +x ./entrypoint.sh +$ docker compose up -d +``` + +## 🛠️ Launch service from source + +To launch the service from source: + +1. Clone the repository: + + ```bash + $ git clone https://github.com/infiniflow/ragflow.git + $ cd ragflow/ + ``` + +2. Create a virtual environment, ensuring that Anaconda or Miniconda is installed: + + ```bash + $ conda create -n ragflow python=3.11.0 + $ conda activate ragflow + $ pip install -r requirements.txt + ``` + + ```bash + # If your CUDA version is higher than 12.0, run the following additional commands: + $ pip uninstall -y onnxruntime-gpu + $ pip install onnxruntime-gpu --extra-index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/onnxruntime-cuda-12/pypi/simple/ + ``` + +3. Copy the entry script and configure environment variables: + + ```bash + # Get the Python path: + $ which python + # Get the ragflow project path: + $ pwd + ``` + + ```bash + $ cp docker/entrypoint.sh . + $ vi entrypoint.sh + ``` + + ```bash + # Adjust configurations according to your actual situation (the following two export commands are newly added): + # - Assign the result of `which python` to `PY`. + # - Assign the result of `pwd` to `PYTHONPATH`. + # - Comment out `LD_LIBRARY_PATH`, if it is configured. + # - Optional: Add Hugging Face mirror. + PY=${PY} + export PYTHONPATH=${PYTHONPATH} + export HF_ENDPOINT=https://hf-mirror.com + ``` + +4. Launch the third-party services (MinIO, Elasticsearch, Redis, and MySQL): + + ```bash + $ cd docker + $ docker compose -f docker-compose-base.yml up -d + ``` + +5. Check the configuration files, ensuring that: + + - The settings in **docker/.env** match those in **conf/service_conf.yaml**. + - The IP addresses and ports for related services in **service_conf.yaml** match the local machine IP and ports exposed by the container. + +6. Launch the RAGFlow backend service: + + ```bash + $ chmod +x ./entrypoint.sh + $ bash ./entrypoint.sh + ``` + +7. Launch the frontend service: + + ```bash + $ cd web + $ npm install --registry=https://registry.npmmirror.com --force + $ vim .umirc.ts + # Update proxy.target to http://127.0.0.1:9380 + $ npm run dev + ``` + +8. Deploy the frontend service: + + ```bash + $ cd web + $ npm install --registry=https://registry.npmmirror.com --force + $ umi build + $ mkdir -p /ragflow/web + $ cp -r dist /ragflow/web + $ apt install nginx -y + $ cp ../docker/nginx/proxy.conf /etc/nginx + $ cp ../docker/nginx/nginx.conf /etc/nginx + $ cp ../docker/nginx/ragflow.conf /etc/nginx/conf.d + $ systemctl start nginx + ``` + +## 📚 Documentation + +- [Quickstart](https://ragflow.io/docs/dev/) +- [User guide](https://ragflow.io/docs/dev/category/user-guides) +- [References](https://ragflow.io/docs/dev/category/references) +- [FAQ](https://ragflow.io/docs/dev/faq) + +## 📜 Roadmap + +See the [RAGFlow Roadmap 2024](https://github.com/infiniflow/ragflow/issues/162) + +## 🏄 Community + +- [Discord](https://discord.gg/4XxujFgUN7) +- [Twitter](https://twitter.com/infiniflowai) +- [GitHub Discussions](https://github.com/orgs/infiniflow/discussions) + +## 🙌 Contributing + +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](./docs/references/CONTRIBUTING.md) first. diff --git a/README_ja.md b/README_ja.md index bbe4023d30..f85632b3f7 100644 --- a/README_ja.md +++ b/README_ja.md @@ -1,291 +1,291 @@ -
- -ragflow logo - -
- -

- English | - 简体中文 | - 日本語 -

- -

- - Latest Release - - - Static Badge - - docker pull infiniflow/ragflow:v0.9.0 - - license - -

- -

- Document | - Roadmap | - Twitter | - Discord | - Demo -

- -## 💡 RAGFlow とは? - -[RAGFlow](https://ragflow.io/) は、深い文書理解に基づいたオープンソースの RAG (Retrieval-Augmented Generation) エンジンである。LLM(大規模言語モデル)を組み合わせることで、様々な複雑なフォーマットのデータから根拠のある引用に裏打ちされた、信頼できる質問応答機能を実現し、あらゆる規模のビジネスに適した RAG ワークフローを提供します。 - -## 🎮 Demo - -デモをお試しください:[https://demo.ragflow.io](https://demo.ragflow.io)。 -
- - -
- - -## 🔥 最新情報 - -- 2024-08-02 [graphrag](https://github.com/microsoft/graphrag) からインスピレーションを得た GraphRAG とマインド マップをサポートします。 -- 2024-07-23 音声ファイルの解析をサポートしました。 -- 2024-07-21 より多くの LLM サプライヤー (LocalAI/OpenRouter/StepFun/Nvidia) をサポートします。 -- 2024-07-18 グラフにコンポーネント(Wikipedia/PubMed/Baidu/Duckduckgo)を追加しました。 -- 2024-07-08 [Graph](./graph/README.md) ベースのワークフローをサポート -- 2024-06-27 Q&A解析方式はMarkdownファイルとDocxファイルをサポートしています。 -- 2024-06-27 Docxファイルからの画像の抽出をサポートします。 -- 2024-06-27 Markdownファイルからテーブルを抽出することをサポートします。 -- 2024-06-06 会話設定でデフォルトでチェックされている [Self-RAG](https://huggingface.co/papers/2310.11511) をサポートします。 -- 2024-05-30 [BCE](https://github.com/netease-youdao/BCEmbedding) 、[BGE](https://github.com/FlagOpen/FlagEmbedding) reranker を統合。 -- 2024-05-23 より良いテキスト検索のために [RAPTOR](https://arxiv.org/html/2401.18059v1) をサポート。 -- 2024-05-15 OpenAI GPT-4oを統合しました。 - -## 🌟 主な特徴 - -### 🍭 **"Quality in, quality out"** - -- 複雑な形式の非構造化データからの[深い文書理解](./deepdoc/README.md)ベースの知識抽出。 -- 無限のトークンから"干し草の山の中の針"を見つける。 - -### 🍱 **テンプレートベースのチャンク化** - -- 知的で解釈しやすい。 -- テンプレートオプションが豊富。 - -### 🌱 **ハルシネーションが軽減された根拠のある引用** - -- 可視化されたテキストチャンキング(text chunking)で人間の介入を可能にする。 -- 重要な参考文献のクイックビューと、追跡可能な引用によって根拠ある答えをサポートする。 - -### 🍔 **多様なデータソースとの互換性** - -- Word、スライド、Excel、txt、画像、スキャンコピー、構造化データ、Web ページなどをサポート。 - -### 🛀 **自動化された楽な RAG ワークフロー** - -- 個人から大企業まで対応できる RAG オーケストレーション(orchestration)。 -- カスタマイズ可能な LLM とエンベッディングモデル。 -- 複数の想起と融合された再ランク付け。 -- 直感的な API によってビジネスとの統合がシームレスに。 - -## 🔎 システム構成 - -
- -
- -## 🎬 初期設定 - -### 📝 必要条件 - -- CPU >= 4 cores -- RAM >= 16 GB -- Disk >= 50 GB -- Docker >= 24.0.0 & Docker Compose >= v2.26.1 - > ローカルマシン(Windows、Mac、または Linux)に Docker をインストールしていない場合は、[Docker Engine のインストール](https://docs.docker.com/engine/install/) を参照してください。 - -### 🚀 サーバーを起動 - -1. `vm.max_map_count` >= 262144 であることを確認する: - - > `vm.max_map_count` の値をチェックするには: - > - > ```bash - > $ sysctl vm.max_map_count - > ``` - > - > `vm.max_map_count` が 262144 より大きい値でなければリセットする。 - > - > ```bash - > # In this case, we set it to 262144: - > $ sudo sysctl -w vm.max_map_count=262144 - > ``` - > - > この変更はシステム再起動後にリセットされる。変更を恒久的なものにするには、**/etc/sysctl.conf** の `vm.max_map_count` 値を適宜追加または更新する: - > - > ```bash - > vm.max_map_count=262144 - > ``` - -2. リポジトリをクローンする: - - ```bash - $ git clone https://github.com/infiniflow/ragflow.git - ``` - -3. ビルド済みの Docker イメージをビルドし、サーバーを起動する: - - ```bash - $ cd ragflow/docker - $ chmod +x ./entrypoint.sh - $ docker compose up -d - ``` - - > 上記のコマンドを実行すると、RAGFlowの開発版dockerイメージが自動的にダウンロードされます。 特定のバージョンのDockerイメージをダウンロードして実行したい場合は、docker/.envファイルのRAGFLOW_VERSION変数を見つけて、対応するバージョンに変更してください。 例えば、RAGFLOW_VERSION=v0.9.0として、上記のコマンドを実行してください。 - - > コアイメージのサイズは約 9 GB で、ロードに時間がかかる場合があります。 - -4. サーバーを立ち上げた後、サーバーの状態を確認する: - - ```bash - $ docker logs -f ragflow-server - ``` - - _以下の出力は、システムが正常に起動したことを確認するものです:_ - - ```bash - ____ ______ __ - / __ \ ____ _ ____ _ / ____// /____ _ __ - / /_/ // __ `// __ `// /_ / // __ \| | /| / / - / _, _// /_/ // /_/ // __/ / // /_/ /| |/ |/ / - /_/ |_| \__,_/ \__, //_/ /_/ \____/ |__/|__/ - /____/ - - * Running on all addresses (0.0.0.0) - * Running on http://127.0.0.1:9380 - * Running on http://x.x.x.x:9380 - INFO:werkzeug:Press CTRL+C to quit - ``` - > もし確認ステップをスキップして直接 RAGFlow にログインした場合、その時点で RAGFlow が完全に初期化されていない可能性があるため、ブラウザーがネットワーク異常エラーを表示するかもしれません。 - -5. ウェブブラウザで、プロンプトに従ってサーバーの IP アドレスを入力し、RAGFlow にログインします。 - > デフォルトの設定を使用する場合、デフォルトの HTTP サービングポート `80` は省略できるので、与えられたシナリオでは、`http://IP_OF_YOUR_MACHINE`(ポート番号は省略)だけを入力すればよい。 -6. [service_conf.yaml](./docker/service_conf.yaml) で、`user_default_llm` で希望の LLM ファクトリを選択し、`API_KEY` フィールドを対応する API キーで更新する。 - - > 詳しくは [llm_api_key_setup](https://ragflow.io/docs/dev/llm_api_key_setup) を参照してください。 - - _これで初期設定完了!ショーの開幕です!_ - -## 🔧 コンフィグ - -システムコンフィグに関しては、以下のファイルを管理する必要がある: - -- [.env](./docker/.env): `SVR_HTTP_PORT`、`MYSQL_PASSWORD`、`MINIO_PASSWORD` などのシステムの基本設定を保持する。 -- [service_conf.yaml](./docker/service_conf.yaml): バックエンドのサービスを設定します。 -- [docker-compose.yml](./docker/docker-compose.yml): システムの起動は [docker-compose.yml](./docker/docker-compose.yml) に依存している。 - -[.env](./docker/.env) ファイルの変更が [service_conf.yaml](./docker/service_conf.yaml) ファイルの内容と一致していることを確認する必要があります。 - -> [./docker/README](./docker/README.md) ファイルは環境設定とサービスコンフィグの詳細な説明を提供し、[./docker/README](./docker/README.md) ファイルに記載されている全ての環境設定が [service_conf.yaml](./docker/service_conf.yaml) ファイルの対応するコンフィグと一致していることを確認することが義務付けられています。 - -デフォルトの HTTP サービングポート(80)を更新するには、[docker-compose.yml](./docker/docker-compose.yml) にアクセスして、`80:80` を `:80` に変更します。 - -> すべてのシステム設定のアップデートを有効にするには、システムの再起動が必要です: -> -> ```bash -> $ docker-compose up -d -> ``` - -## 🛠️ ソースからビルドする - -ソースからDockerイメージをビルドするには: - -```bash -$ git clone https://github.com/infiniflow/ragflow.git -$ cd ragflow/ -$ docker build -t infiniflow/ragflow:v0.8.0 . -$ cd ragflow/docker -$ chmod +x ./entrypoint.sh -$ docker compose up -d -``` - -## 🛠️ ソースコードからサービスを起動する方法 - -ソースコードからサービスを起動する場合は、以下の手順に従ってください: - -1. リポジトリをクローンします -```bash -$ git clone https://github.com/infiniflow/ragflow.git -$ cd ragflow/ -``` - -2. 仮想環境を作成します(AnacondaまたはMinicondaがインストールされていることを確認してください) -```bash -$ conda create -n ragflow python=3.11.0 -$ conda activate ragflow -$ pip install -r requirements.txt -``` -CUDAのバージョンが12.0以上の場合、以下の追加コマンドを実行してください: -```bash -$ pip uninstall -y onnxruntime-gpu -$ pip install onnxruntime-gpu --extra-index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/onnxruntime-cuda-12/pypi/simple/ -``` - -3. エントリースクリプトをコピーし、環境変数を設定します -```bash -$ cp docker/entrypoint.sh . -$ vi entrypoint.sh -``` -以下のコマンドでPythonのパスとragflowプロジェクトのパスを取得します: -```bash -$ which python -$ pwd -``` - -`which python`の出力を`PY`の値として、`pwd`の出力を`PYTHONPATH`の値として設定します。 - -`LD_LIBRARY_PATH`が既に設定されている場合は、コメントアウトできます。 - -```bash -# 実際の状況に応じて設定を調整してください。以下の二つのexportは新たに追加された設定です -PY=${PY} -export PYTHONPATH=${PYTHONPATH} -# オプション:Hugging Faceミラーを追加 -export HF_ENDPOINT=https://hf-mirror.com -``` - -4. 基本サービスを起動します -```bash -$ cd docker -$ docker compose -f docker-compose-base.yml up -d -``` - -5. 設定ファイルを確認します -**docker/.env**内の設定が**conf/service_conf.yaml**内の設定と一致していることを確認してください。**service_conf.yaml**内の関連サービスのIPアドレスとポートは、ローカルマシンのIPアドレスとコンテナが公開するポートに変更する必要があります。 - -6. サービスを起動します -```bash -$ chmod +x ./entrypoint.sh -$ bash ./entrypoint.sh -``` - -## 📚 ドキュメンテーション - -- [Quickstart](https://ragflow.io/docs/dev/) -- [User guide](https://ragflow.io/docs/dev/category/user-guides) -- [References](https://ragflow.io/docs/dev/category/references) -- [FAQ](https://ragflow.io/docs/dev/faq) - -## 📜 ロードマップ - -[RAGFlow ロードマップ 2024](https://github.com/infiniflow/ragflow/issues/162) を参照 - -## 🏄 コミュニティ - -- [Discord](https://discord.gg/4XxujFgUN7) -- [Twitter](https://twitter.com/infiniflowai) -- [GitHub Discussions](https://github.com/orgs/infiniflow/discussions) - -## 🙌 コントリビュート - -RAGFlow はオープンソースのコラボレーションによって発展してきました。この精神に基づき、私たちはコミュニティからの多様なコントリビュートを受け入れています。 参加を希望される方は、まず[コントリビューションガイド](./docs/references/CONTRIBUTING.md)をご覧ください。 +
+ +ragflow logo + +
+ +

+ English | + 简体中文 | + 日本語 +

+ +

+ + Latest Release + + + Static Badge + + docker pull infiniflow/ragflow:v0.9.0 + + license + +

+ +

+ Document | + Roadmap | + Twitter | + Discord | + Demo +

+ +## 💡 RAGFlow とは? + +[RAGFlow](https://ragflow.io/) は、深い文書理解に基づいたオープンソースの RAG (Retrieval-Augmented Generation) エンジンである。LLM(大規模言語モデル)を組み合わせることで、様々な複雑なフォーマットのデータから根拠のある引用に裏打ちされた、信頼できる質問応答機能を実現し、あらゆる規模のビジネスに適した RAG ワークフローを提供します。 + +## 🎮 Demo + +デモをお試しください:[https://demo.ragflow.io](https://demo.ragflow.io)。 +
+ + +
+ + +## 🔥 最新情報 + +- 2024-08-02 [graphrag](https://github.com/microsoft/graphrag) からインスピレーションを得た GraphRAG とマインド マップをサポートします。 +- 2024-07-23 音声ファイルの解析をサポートしました。 +- 2024-07-21 より多くの LLM サプライヤー (LocalAI/OpenRouter/StepFun/Nvidia) をサポートします。 +- 2024-07-18 グラフにコンポーネント(Wikipedia/PubMed/Baidu/Duckduckgo)を追加しました。 +- 2024-07-08 [Graph](./graph/README.md) ベースのワークフローをサポート +- 2024-06-27 Q&A解析方式はMarkdownファイルとDocxファイルをサポートしています。 +- 2024-06-27 Docxファイルからの画像の抽出をサポートします。 +- 2024-06-27 Markdownファイルからテーブルを抽出することをサポートします。 +- 2024-06-06 会話設定でデフォルトでチェックされている [Self-RAG](https://huggingface.co/papers/2310.11511) をサポートします。 +- 2024-05-30 [BCE](https://github.com/netease-youdao/BCEmbedding) 、[BGE](https://github.com/FlagOpen/FlagEmbedding) reranker を統合。 +- 2024-05-23 より良いテキスト検索のために [RAPTOR](https://arxiv.org/html/2401.18059v1) をサポート。 +- 2024-05-15 OpenAI GPT-4oを統合しました。 + +## 🌟 主な特徴 + +### 🍭 **"Quality in, quality out"** + +- 複雑な形式の非構造化データからの[深い文書理解](./deepdoc/README.md)ベースの知識抽出。 +- 無限のトークンから"干し草の山の中の針"を見つける。 + +### 🍱 **テンプレートベースのチャンク化** + +- 知的で解釈しやすい。 +- テンプレートオプションが豊富。 + +### 🌱 **ハルシネーションが軽減された根拠のある引用** + +- 可視化されたテキストチャンキング(text chunking)で人間の介入を可能にする。 +- 重要な参考文献のクイックビューと、追跡可能な引用によって根拠ある答えをサポートする。 + +### 🍔 **多様なデータソースとの互換性** + +- Word、スライド、Excel、txt、画像、スキャンコピー、構造化データ、Web ページなどをサポート。 + +### 🛀 **自動化された楽な RAG ワークフロー** + +- 個人から大企業まで対応できる RAG オーケストレーション(orchestration)。 +- カスタマイズ可能な LLM とエンベッディングモデル。 +- 複数の想起と融合された再ランク付け。 +- 直感的な API によってビジネスとの統合がシームレスに。 + +## 🔎 システム構成 + +
+ +
+ +## 🎬 初期設定 + +### 📝 必要条件 + +- CPU >= 4 cores +- RAM >= 16 GB +- Disk >= 50 GB +- Docker >= 24.0.0 & Docker Compose >= v2.26.1 + > ローカルマシン(Windows、Mac、または Linux)に Docker をインストールしていない場合は、[Docker Engine のインストール](https://docs.docker.com/engine/install/) を参照してください。 + +### 🚀 サーバーを起動 + +1. `vm.max_map_count` >= 262144 であることを確認する: + + > `vm.max_map_count` の値をチェックするには: + > + > ```bash + > $ sysctl vm.max_map_count + > ``` + > + > `vm.max_map_count` が 262144 より大きい値でなければリセットする。 + > + > ```bash + > # In this case, we set it to 262144: + > $ sudo sysctl -w vm.max_map_count=262144 + > ``` + > + > この変更はシステム再起動後にリセットされる。変更を恒久的なものにするには、**/etc/sysctl.conf** の `vm.max_map_count` 値を適宜追加または更新する: + > + > ```bash + > vm.max_map_count=262144 + > ``` + +2. リポジトリをクローンする: + + ```bash + $ git clone https://github.com/infiniflow/ragflow.git + ``` + +3. ビルド済みの Docker イメージをビルドし、サーバーを起動する: + + ```bash + $ cd ragflow/docker + $ chmod +x ./entrypoint.sh + $ docker compose up -d + ``` + + > 上記のコマンドを実行すると、RAGFlowの開発版dockerイメージが自動的にダウンロードされます。 特定のバージョンのDockerイメージをダウンロードして実行したい場合は、docker/.envファイルのRAGFLOW_VERSION変数を見つけて、対応するバージョンに変更してください。 例えば、RAGFLOW_VERSION=v0.9.0として、上記のコマンドを実行してください。 + + > コアイメージのサイズは約 9 GB で、ロードに時間がかかる場合があります。 + +4. サーバーを立ち上げた後、サーバーの状態を確認する: + + ```bash + $ docker logs -f ragflow-server + ``` + + _以下の出力は、システムが正常に起動したことを確認するものです:_ + + ```bash + ____ ______ __ + / __ \ ____ _ ____ _ / ____// /____ _ __ + / /_/ // __ `// __ `// /_ / // __ \| | /| / / + / _, _// /_/ // /_/ // __/ / // /_/ /| |/ |/ / + /_/ |_| \__,_/ \__, //_/ /_/ \____/ |__/|__/ + /____/ + + * Running on all addresses (0.0.0.0) + * Running on http://127.0.0.1:9380 + * Running on http://x.x.x.x:9380 + INFO:werkzeug:Press CTRL+C to quit + ``` + > もし確認ステップをスキップして直接 RAGFlow にログインした場合、その時点で RAGFlow が完全に初期化されていない可能性があるため、ブラウザーがネットワーク異常エラーを表示するかもしれません。 + +5. ウェブブラウザで、プロンプトに従ってサーバーの IP アドレスを入力し、RAGFlow にログインします。 + > デフォルトの設定を使用する場合、デフォルトの HTTP サービングポート `80` は省略できるので、与えられたシナリオでは、`http://IP_OF_YOUR_MACHINE`(ポート番号は省略)だけを入力すればよい。 +6. [service_conf.yaml](./docker/service_conf.yaml) で、`user_default_llm` で希望の LLM ファクトリを選択し、`API_KEY` フィールドを対応する API キーで更新する。 + + > 詳しくは [llm_api_key_setup](https://ragflow.io/docs/dev/llm_api_key_setup) を参照してください。 + + _これで初期設定完了!ショーの開幕です!_ + +## 🔧 コンフィグ + +システムコンフィグに関しては、以下のファイルを管理する必要がある: + +- [.env](./docker/.env): `SVR_HTTP_PORT`、`MYSQL_PASSWORD`、`MINIO_PASSWORD` などのシステムの基本設定を保持する。 +- [service_conf.yaml](./docker/service_conf.yaml): バックエンドのサービスを設定します。 +- [docker-compose.yml](./docker/docker-compose.yml): システムの起動は [docker-compose.yml](./docker/docker-compose.yml) に依存している。 + +[.env](./docker/.env) ファイルの変更が [service_conf.yaml](./docker/service_conf.yaml) ファイルの内容と一致していることを確認する必要があります。 + +> [./docker/README](./docker/README.md) ファイルは環境設定とサービスコンフィグの詳細な説明を提供し、[./docker/README](./docker/README.md) ファイルに記載されている全ての環境設定が [service_conf.yaml](./docker/service_conf.yaml) ファイルの対応するコンフィグと一致していることを確認することが義務付けられています。 + +デフォルトの HTTP サービングポート(80)を更新するには、[docker-compose.yml](./docker/docker-compose.yml) にアクセスして、`80:80` を `:80` に変更します。 + +> すべてのシステム設定のアップデートを有効にするには、システムの再起動が必要です: +> +> ```bash +> $ docker-compose up -d +> ``` + +## 🛠️ ソースからビルドする + +ソースからDockerイメージをビルドするには: + +```bash +$ git clone https://github.com/infiniflow/ragflow.git +$ cd ragflow/ +$ docker build -t infiniflow/ragflow:v0.9.0 . +$ cd ragflow/docker +$ chmod +x ./entrypoint.sh +$ docker compose up -d +``` + +## 🛠️ ソースコードからサービスを起動する方法 + +ソースコードからサービスを起動する場合は、以下の手順に従ってください: + +1. リポジトリをクローンします +```bash +$ git clone https://github.com/infiniflow/ragflow.git +$ cd ragflow/ +``` + +2. 仮想環境を作成します(AnacondaまたはMinicondaがインストールされていることを確認してください) +```bash +$ conda create -n ragflow python=3.11.0 +$ conda activate ragflow +$ pip install -r requirements.txt +``` +CUDAのバージョンが12.0以上の場合、以下の追加コマンドを実行してください: +```bash +$ pip uninstall -y onnxruntime-gpu +$ pip install onnxruntime-gpu --extra-index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/onnxruntime-cuda-12/pypi/simple/ +``` + +3. エントリースクリプトをコピーし、環境変数を設定します +```bash +$ cp docker/entrypoint.sh . +$ vi entrypoint.sh +``` +以下のコマンドでPythonのパスとragflowプロジェクトのパスを取得します: +```bash +$ which python +$ pwd +``` + +`which python`の出力を`PY`の値として、`pwd`の出力を`PYTHONPATH`の値として設定します。 + +`LD_LIBRARY_PATH`が既に設定されている場合は、コメントアウトできます。 + +```bash +# 実際の状況に応じて設定を調整してください。以下の二つのexportは新たに追加された設定です +PY=${PY} +export PYTHONPATH=${PYTHONPATH} +# オプション:Hugging Faceミラーを追加 +export HF_ENDPOINT=https://hf-mirror.com +``` + +4. 基本サービスを起動します +```bash +$ cd docker +$ docker compose -f docker-compose-base.yml up -d +``` + +5. 設定ファイルを確認します +**docker/.env**内の設定が**conf/service_conf.yaml**内の設定と一致していることを確認してください。**service_conf.yaml**内の関連サービスのIPアドレスとポートは、ローカルマシンのIPアドレスとコンテナが公開するポートに変更する必要があります。 + +6. サービスを起動します +```bash +$ chmod +x ./entrypoint.sh +$ bash ./entrypoint.sh +``` + +## 📚 ドキュメンテーション + +- [Quickstart](https://ragflow.io/docs/dev/) +- [User guide](https://ragflow.io/docs/dev/category/user-guides) +- [References](https://ragflow.io/docs/dev/category/references) +- [FAQ](https://ragflow.io/docs/dev/faq) + +## 📜 ロードマップ + +[RAGFlow ロードマップ 2024](https://github.com/infiniflow/ragflow/issues/162) を参照 + +## 🏄 コミュニティ + +- [Discord](https://discord.gg/4XxujFgUN7) +- [Twitter](https://twitter.com/infiniflowai) +- [GitHub Discussions](https://github.com/orgs/infiniflow/discussions) + +## 🙌 コントリビュート + +RAGFlow はオープンソースのコラボレーションによって発展してきました。この精神に基づき、私たちはコミュニティからの多様なコントリビュートを受け入れています。 参加を希望される方は、まず[コントリビューションガイド](./docs/references/CONTRIBUTING.md)をご覧ください。