File size: 9,951 Bytes
591cbef
 
 
 
 
 
 
 
 
 
 
 
 
26558c7
 
 
591cbef
 
 
c712315
587659c
591cbef
 
 
 
 
 
 
29dd00b
591cbef
 
 
 
 
 
29dd00b
591cbef
 
 
29dd00b
 
591cbef
 
 
29dd00b
 
591cbef
29dd00b
591cbef
 
 
 
 
29dd00b
 
591cbef
29dd00b
591cbef
31b7ac4
 
36a6e5a
8c14459
ba51460
31b7ac4
 
 
 
 
591cbef
 
 
 
 
 
29dd00b
591cbef
 
 
d54aa01
94f8c29
48a7cc7
1daa4bd
1cc01e0
591cbef
 
 
1cc01e0
591cbef
 
 
 
 
 
 
1cc01e0
591cbef
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
640c593
591cbef
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8f9784a
591cbef
 
01957f5
591cbef
 
8f9784a
591cbef
 
 
 
29dd00b
591cbef
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
587659c
591cbef
640c593
591cbef
 
 
31b7ac4
63df91a
31b7ac4
8f9784a
591cbef
 
 
 
 
 
b0f30f5
591cbef
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
<div align="center">
<a href="https://demo.ragflow.io/">
<img src="web/src/assets/logo-with-text.png" width="350" alt="ragflow logo">
</a>
</div>

<p align="center">
  <a href="./README.md">English</a> |
  <a href="./README_zh.md">简体中文</a> |
  <a href="./README_ja.md">日本語</a>
</p>

<p align="center">
    <a href="https://github.com/infiniflow/infinity/releases/latest">

        <img src="https://img.shields.io/github/v/release/infiniflow/ragflow?color=blue&label=Latest%20Release" alt="Latest Release">

    </a>

    <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:v0.3.0-brightgreen"

            alt="docker pull infiniflow/ragflow:v0.3.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">

  </a>

</p>


## 💡 RAGFlow とは?

[RAGFlow](https://demo.ragflow.io) は、深い文書理解に基づいたオープンソースの RAG (Retrieval-Augmented Generation) エンジンである。LLM(大規模言語モデル)を組み合わせることで、様々な複雑なフォーマットのデータから根拠のある引用に裏打ちされた、信頼できる質問応答機能を実現し、あらゆる規模のビジネスに適した RAG ワークフローを提供します。

## 🌟 主な特徴

### 🍭 **"Quality in, quality out"**

- 複雑な形式の非構造化データからの[深い文書理解](./deepdoc/README.md)ベースの知識抽出。
- 無限のトークンから"干し草の山の中の針"を見つける。

### 🍱 **テンプレートベースのチャンク化**

- 知的で解釈しやすい。
- テンプレートオプションが豊富。

### 🌱 **ハルシネーションが軽減された根拠のある引用**

- 可視化されたテキストチャンキング(text chunking)で人間の介入を可能にする。
- 重要な参考文献のクイックビューと、追跡可能な引用によって根拠ある答えをサポートする。

### 🍔 **多様なデータソースとの互換性**

- Word、スライド、Excel、txt、画像、スキャンコピー、構造化データ、Web ページなどをサポート。

### 🛀 **自動化された楽な RAG ワークフロー**

- 個人から大企業まで対応できる RAG オーケストレーション(orchestration)。
- カスタマイズ可能な LLM とエンベッディングモデル。
- 複数の想起と融合された再ランク付け。
- 直感的な API によってビジネスとの統合がシームレスに。

## 📌 最新の機能

- 2024-04-19 会話 API をサポートします ([詳細](./docs/conversation_api.md))。
- 2024-04-16 [BCEmbedding](https://github.com/netease-youdao/BCEmbedding) から埋め込みモデル「bce-embedding-base_v1」を追加します。

- 2024-04-16 [FastEmbed](https://github.com/qdrant/fastembed) は、軽量かつ高速な埋め込み用に設計されています。

- 2024-04-11 ローカル LLM デプロイメント用に [Xinference](./docs/xinference.md) をサポートします。

- 2024-04-10 メソッド「Laws」に新しいレイアウト認識モデルを追加します。

- 2024-04-08 [Ollama](./docs/ollama.md) を使用した大規模モデルのローカライズされたデプロイメントをサポートします。

- 2024-04-07 中国語インターフェースをサポートします。



## 🔎 システム構成



<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"/>

</div>



## 🎬 初期設定



### 📝 必要条件



- 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 であることを確認する【[もっと](./docs/max_map_count.md)】:



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

   ```



   > コアイメージのサイズは約 15 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 キーで更新する。

   > 詳しくは [./docs/llm_api_key_setup.md](./docs/llm_api_key_setup.md) を参照してください。

   _これで初期設定完了!ショーの開幕です!_

## 🔧 コンフィグ

システムコンフィグに関しては、以下のファイルを管理する必要がある:

- [.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``<YOUR_SERVING_PORT>:80` に変更します。

> すべてのシステム設定のアップデートを有効にするには、システムの再起動が必要です:
>

> ```bash
> $ docker-compose up -d
> ```

## 🛠️ ソースからビルドする

ソースからDockerイメージをビルドするには:

```bash

$ git clone https://github.com/infiniflow/ragflow.git

$ cd ragflow/

$ docker build -t infiniflow/ragflow:v0.3.0 .

$ cd ragflow/docker

$ chmod +x ./entrypoint.sh

$ docker compose up -d

```

## 📚 ドキュメンテーション

- [FAQ](./docs/faq.md)

## 📜 ロードマップ

[RAGFlow ロードマップ 2024](https://github.com/infiniflow/ragflow/issues/162) を参照

## 🏄 コミュニティ

- [Discord](https://discord.gg/4XxujFgUN7)
- [Twitter](https://twitter.com/infiniflowai)

## 🙌 コントリビュート

RAGFlow はオープンソースのコラボレーションによって発展してきました。この精神に基づき、私たちはコミュニティからの多様なコントリビュートを受け入れています。 参加を希望される方は、まず[コントリビューションガイド](https://github.com/infiniflow/ragflow/blob/main/docs/CONTRIBUTING.md)をご覧ください。