Henrique commited on
Commit
838e578
·
1 Parent(s): 6a82296

Add language portugese br (#4550)

Browse files

### What problem does this PR solve?

Add language Portugese from Brazil

### Type of change

- [X] New Feature (non-breaking change which adds functionality)

README.md CHANGED
@@ -9,7 +9,8 @@
9
  <a href="./README_zh.md">简体中文</a> |
10
  <a href="./README_ja.md">日本語</a> |
11
  <a href="./README_ko.md">한국어</a> |
12
- <a href="./README_id.md">Bahasa Indonesia</a>
 
13
  </p>
14
 
15
  <p align="center">
@@ -68,6 +69,7 @@ data.
68
  ## 🎮 Demo
69
 
70
  Try our demo at [https://demo.ragflow.io](https://demo.ragflow.io).
 
71
  <div align="center" style="margin-top:20px;margin-bottom:20px;">
72
  <img src="https://github.com/infiniflow/ragflow/assets/7248/2f6baa3e-1092-4f11-866d-36f6a9d075e5" width="1200"/>
73
  <img src="https://github.com/user-attachments/assets/504bbbf1-c9f7-4d83-8cc5-e9cb63c26db6" width="1200"/>
@@ -86,6 +88,7 @@ Try our demo at [https://demo.ragflow.io](https://demo.ragflow.io).
86
 
87
  ⭐️ Star our repository to stay up-to-date with exciting new features and improvements! Get instant notifications for new
88
  releases! 🌟
 
89
  <div align="center" style="margin-top:20px;margin-bottom:20px;">
90
  <img src="https://github.com/user-attachments/assets/18c9707e-b8aa-4caf-a154-037089c105ba" width="1200"/>
91
  </div>
@@ -134,7 +137,7 @@ releases! 🌟
134
  - Disk >= 50 GB
135
  - Docker >= 24.0.0 & Docker Compose >= v2.26.1
136
  > If you have not installed Docker on your local machine (Windows, Mac, or Linux),
137
- see [Install Docker Engine](https://docs.docker.com/engine/install/).
138
 
139
  ### 🚀 Start up the server
140
 
@@ -154,7 +157,7 @@ releases! 🌟
154
  > ```
155
  >
156
  > This change will be reset after a system reboot. To ensure your change remains permanent, add or update the
157
- `vm.max_map_count` value in **/etc/sysctl.conf** accordingly:
158
  >
159
  > ```bash
160
  > vm.max_map_count=262144
@@ -179,8 +182,8 @@ releases! 🌟
179
  | ----------------- | --------------- | --------------------- | ------------------------ |
180
  | v0.15.1 | &approx;9 | :heavy_check_mark: | Stable release |
181
  | v0.15.1-slim | &approx;2 | ❌ | Stable release |
182
- | nightly | &approx;9 | :heavy_check_mark: | *Unstable* nightly build |
183
- | nightly-slim | &approx;2 | ❌ | *Unstable* nightly build |
184
 
185
  4. Check the server status after having the server up and running:
186
 
@@ -192,23 +195,24 @@ releases! 🌟
192
 
193
  ```bash
194
 
195
- ____ ___ ______ ______ __
196
  / __ \ / | / ____// ____// /____ _ __
197
  / /_/ // /| | / / __ / /_ / // __ \| | /| / /
198
- / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ /
199
- /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/
200
 
201
  * Running on all addresses (0.0.0.0)
202
  * Running on http://127.0.0.1:9380
203
  * Running on http://x.x.x.x:9380
204
  INFO:werkzeug:Press CTRL+C to quit
205
  ```
 
206
  > If you skip this confirmation step and directly log in to RAGFlow, your browser may prompt a `network anormal`
207
- error because, at that moment, your RAGFlow may not be fully initialized.
208
 
209
  5. In your web browser, enter the IP address of your server and log in to RAGFlow.
210
  > With the default settings, you only need to enter `http://IP_OF_YOUR_MACHINE` (**sans** port number) as the default
211
- HTTP serving port `80` can be omitted when using the default configurations.
212
  6. In [service_conf.yaml.template](./docker/service_conf.yaml.template), select the desired LLM factory in `user_default_llm` and update
213
  the `API_KEY` field with the corresponding API key.
214
 
@@ -255,7 +259,7 @@ RAGFlow uses Elasticsearch by default for storing full text and vectors. To swit
255
  $ docker compose -f docker/docker-compose.yml up -d
256
  ```
257
 
258
- > [!WARNING]
259
  > Switching to Infinity on a Linux/arm64 machine is not yet officially supported.
260
 
261
  ## 🔧 Build a Docker image without embedding models
@@ -281,11 +285,13 @@ docker build -f Dockerfile -t infiniflow/ragflow:nightly .
281
  ## 🔨 Launch service from source for development
282
 
283
  1. Install uv, or skip this step if it is already installed:
 
284
  ```bash
285
  pipx install uv
286
  ```
287
 
288
  2. Clone the source code and install Python dependencies:
 
289
  ```bash
290
  git clone https://github.com/infiniflow/ragflow.git
291
  cd ragflow/
@@ -293,14 +299,16 @@ docker build -f Dockerfile -t infiniflow/ragflow:nightly .
293
  ```
294
 
295
  3. Launch the dependent services (MinIO, Elasticsearch, Redis, and MySQL) using Docker Compose:
 
296
  ```bash
297
  docker compose -f docker/docker-compose-base.yml up -d
298
  ```
299
 
300
  Add the following line to `/etc/hosts` to resolve all hosts specified in **docker/.env** to `127.0.0.1`:
 
301
  ```
302
  127.0.0.1 es01 infinity mysql minio redis
303
- ```
304
 
305
  4. If you cannot access HuggingFace, set the `HF_ENDPOINT` environment variable to use a mirror site:
306
 
@@ -309,6 +317,7 @@ docker build -f Dockerfile -t infiniflow/ragflow:nightly .
309
  ```
310
 
311
  5. Launch backend service:
 
312
  ```bash
313
  source .venv/bin/activate
314
  export PYTHONPATH=$(pwd)
@@ -319,11 +328,12 @@ docker build -f Dockerfile -t infiniflow/ragflow:nightly .
319
  ```bash
320
  cd web
321
  npm install
322
- ```
323
  7. Launch frontend service:
 
324
  ```bash
325
- npm run dev
326
- ```
327
 
328
  _The following output confirms a successful launch of the system:_
329
 
 
9
  <a href="./README_zh.md">简体中文</a> |
10
  <a href="./README_ja.md">日本語</a> |
11
  <a href="./README_ko.md">한국어</a> |
12
+ <a href="./README_id.md">Bahasa Indonesia</a> |
13
+ <a href="/README_pt_br.md">Português (Brasil)</a>
14
  </p>
15
 
16
  <p align="center">
 
69
  ## 🎮 Demo
70
 
71
  Try our demo at [https://demo.ragflow.io](https://demo.ragflow.io).
72
+
73
  <div align="center" style="margin-top:20px;margin-bottom:20px;">
74
  <img src="https://github.com/infiniflow/ragflow/assets/7248/2f6baa3e-1092-4f11-866d-36f6a9d075e5" width="1200"/>
75
  <img src="https://github.com/user-attachments/assets/504bbbf1-c9f7-4d83-8cc5-e9cb63c26db6" width="1200"/>
 
88
 
89
  ⭐️ Star our repository to stay up-to-date with exciting new features and improvements! Get instant notifications for new
90
  releases! 🌟
91
+
92
  <div align="center" style="margin-top:20px;margin-bottom:20px;">
93
  <img src="https://github.com/user-attachments/assets/18c9707e-b8aa-4caf-a154-037089c105ba" width="1200"/>
94
  </div>
 
137
  - Disk >= 50 GB
138
  - Docker >= 24.0.0 & Docker Compose >= v2.26.1
139
  > If you have not installed Docker on your local machine (Windows, Mac, or Linux),
140
+ > see [Install Docker Engine](https://docs.docker.com/engine/install/).
141
 
142
  ### 🚀 Start up the server
143
 
 
157
  > ```
158
  >
159
  > This change will be reset after a system reboot. To ensure your change remains permanent, add or update the
160
+ > `vm.max_map_count` value in **/etc/sysctl.conf** accordingly:
161
  >
162
  > ```bash
163
  > vm.max_map_count=262144
 
182
  | ----------------- | --------------- | --------------------- | ------------------------ |
183
  | v0.15.1 | &approx;9 | :heavy_check_mark: | Stable release |
184
  | v0.15.1-slim | &approx;2 | ❌ | Stable release |
185
+ | nightly | &approx;9 | :heavy_check_mark: | _Unstable_ nightly build |
186
+ | nightly-slim | &approx;2 | ❌ | _Unstable_ nightly build |
187
 
188
  4. Check the server status after having the server up and running:
189
 
 
195
 
196
  ```bash
197
 
198
+ ____ ___ ______ ______ __
199
  / __ \ / | / ____// ____// /____ _ __
200
  / /_/ // /| | / / __ / /_ / // __ \| | /| / /
201
+ / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ /
202
+ /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/
203
 
204
  * Running on all addresses (0.0.0.0)
205
  * Running on http://127.0.0.1:9380
206
  * Running on http://x.x.x.x:9380
207
  INFO:werkzeug:Press CTRL+C to quit
208
  ```
209
+
210
  > If you skip this confirmation step and directly log in to RAGFlow, your browser may prompt a `network anormal`
211
+ > error because, at that moment, your RAGFlow may not be fully initialized.
212
 
213
  5. In your web browser, enter the IP address of your server and log in to RAGFlow.
214
  > With the default settings, you only need to enter `http://IP_OF_YOUR_MACHINE` (**sans** port number) as the default
215
+ > HTTP serving port `80` can be omitted when using the default configurations.
216
  6. In [service_conf.yaml.template](./docker/service_conf.yaml.template), select the desired LLM factory in `user_default_llm` and update
217
  the `API_KEY` field with the corresponding API key.
218
 
 
259
  $ docker compose -f docker/docker-compose.yml up -d
260
  ```
261
 
262
+ > [!WARNING]
263
  > Switching to Infinity on a Linux/arm64 machine is not yet officially supported.
264
 
265
  ## 🔧 Build a Docker image without embedding models
 
285
  ## 🔨 Launch service from source for development
286
 
287
  1. Install uv, or skip this step if it is already installed:
288
+
289
  ```bash
290
  pipx install uv
291
  ```
292
 
293
  2. Clone the source code and install Python dependencies:
294
+
295
  ```bash
296
  git clone https://github.com/infiniflow/ragflow.git
297
  cd ragflow/
 
299
  ```
300
 
301
  3. Launch the dependent services (MinIO, Elasticsearch, Redis, and MySQL) using Docker Compose:
302
+
303
  ```bash
304
  docker compose -f docker/docker-compose-base.yml up -d
305
  ```
306
 
307
  Add the following line to `/etc/hosts` to resolve all hosts specified in **docker/.env** to `127.0.0.1`:
308
+
309
  ```
310
  127.0.0.1 es01 infinity mysql minio redis
311
+ ```
312
 
313
  4. If you cannot access HuggingFace, set the `HF_ENDPOINT` environment variable to use a mirror site:
314
 
 
317
  ```
318
 
319
  5. Launch backend service:
320
+
321
  ```bash
322
  source .venv/bin/activate
323
  export PYTHONPATH=$(pwd)
 
328
  ```bash
329
  cd web
330
  npm install
331
+ ```
332
  7. Launch frontend service:
333
+
334
  ```bash
335
+ npm run dev
336
+ ```
337
 
338
  _The following output confirms a successful launch of the system:_
339
 
README_id.md CHANGED
@@ -9,7 +9,8 @@
9
  <a href="./README_zh.md">简体中文</a> |
10
  <a href="./README_ja.md">日本語</a> |
11
  <a href="./README_ko.md">한국어</a> |
12
- <a href="./README_id.md">Bahasa Indonesia</a>
 
13
  </p>
14
 
15
  <p align="center">
@@ -65,6 +66,7 @@
65
  ## 🎮 Demo
66
 
67
  Coba demo kami di [https://demo.ragflow.io](https://demo.ragflow.io).
 
68
  <div align="center" style="margin-top:20px;margin-bottom:20px;">
69
  <img src="https://github.com/infiniflow/ragflow/assets/7248/2f6baa3e-1092-4f11-866d-36f6a9d075e5" width="1200"/>
70
  <img src="https://github.com/user-attachments/assets/504bbbf1-c9f7-4d83-8cc5-e9cb63c26db6" width="1200"/>
@@ -82,6 +84,7 @@ Coba demo kami di [https://demo.ragflow.io](https://demo.ragflow.io).
82
  ## 🎉 Tetap Terkini
83
 
84
  ⭐️ Star repositori kami untuk tetap mendapat informasi tentang fitur baru dan peningkatan menarik! 🌟
 
85
  <div align="center" style="margin-top:20px;margin-bottom:20px;">
86
  <img src="https://github.com/user-attachments/assets/18c9707e-b8aa-4caf-a154-037089c105ba" width="1200"/>
87
  </div>
@@ -147,7 +150,7 @@ Coba demo kami di [https://demo.ragflow.io](https://demo.ragflow.io).
147
  > ```
148
  >
149
  > Perubahan ini akan hilang setelah sistem direboot. Untuk membuat perubahan ini permanen, tambahkan atau perbarui nilai
150
- `vm.max_map_count` di **/etc/sysctl.conf**:
151
  >
152
  > ```bash
153
  > vm.max_map_count=262144
@@ -172,8 +175,8 @@ Coba demo kami di [https://demo.ragflow.io](https://demo.ragflow.io).
172
  | ----------------- | --------------- | --------------------- | ------------------------ |
173
  | v0.15.1 | &approx;9 | :heavy_check_mark: | Stable release |
174
  | v0.15.1-slim | &approx;2 | ❌ | Stable release |
175
- | nightly | &approx;9 | :heavy_check_mark: | *Unstable* nightly build |
176
- | nightly-slim | &approx;2 | ❌ | *Unstable* nightly build |
177
 
178
  4. Periksa status server setelah server aktif dan berjalan:
179
 
@@ -185,23 +188,24 @@ Coba demo kami di [https://demo.ragflow.io](https://demo.ragflow.io).
185
 
186
  ```bash
187
 
188
- ____ ___ ______ ______ __
189
  / __ \ / | / ____// ____// /____ _ __
190
  / /_/ // /| | / / __ / /_ / // __ \| | /| / /
191
- / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ /
192
- /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/
193
 
194
  * Running on all addresses (0.0.0.0)
195
  * Running on http://127.0.0.1:9380
196
  * Running on http://x.x.x.x:9380
197
  INFO:werkzeug:Press CTRL+C to quit
198
  ```
 
199
  > Jika Anda melewatkan langkah ini dan langsung login ke RAGFlow, browser Anda mungkin menampilkan error `network anormal`
200
- karena RAGFlow mungkin belum sepenuhnya siap.
201
 
202
  5. Buka browser web Anda, masukkan alamat IP server Anda, dan login ke RAGFlow.
203
- > Dengan pengaturan default, Anda hanya perlu memasukkan `http://IP_DEVICE_ANDA` (**tanpa** nomor port) karena
204
- port HTTP default `80` bisa dihilangkan saat menggunakan konfigurasi default.
205
  6. Dalam [service_conf.yaml.template](./docker/service_conf.yaml.template), pilih LLM factory yang diinginkan di `user_default_llm` dan perbarui
206
  bidang `API_KEY` dengan kunci API yang sesuai.
207
 
@@ -250,11 +254,13 @@ docker build -f Dockerfile -t infiniflow/ragflow:nightly .
250
  ## 🔨 Menjalankan Aplikasi dari untuk Pengembangan
251
 
252
  1. Instal uv, atau lewati langkah ini jika sudah terinstal:
 
253
  ```bash
254
  pipx install uv
255
  ```
256
 
257
  2. Clone kode sumber dan instal dependensi Python:
 
258
  ```bash
259
  git clone https://github.com/infiniflow/ragflow.git
260
  cd ragflow/
@@ -262,14 +268,16 @@ docker build -f Dockerfile -t infiniflow/ragflow:nightly .
262
  ```
263
 
264
  3. Jalankan aplikasi yang diperlukan (MinIO, Elasticsearch, Redis, dan MySQL) menggunakan Docker Compose:
 
265
  ```bash
266
  docker compose -f docker/docker-compose-base.yml up -d
267
  ```
268
 
269
  Tambahkan baris berikut ke `/etc/hosts` untuk memetakan semua host yang ditentukan di **conf/service_conf.yaml** ke `127.0.0.1`:
 
270
  ```
271
  127.0.0.1 es01 infinity mysql minio redis
272
- ```
273
 
274
  4. Jika Anda tidak dapat mengakses HuggingFace, atur variabel lingkungan `HF_ENDPOINT` untuk menggunakan situs mirror:
275
 
@@ -278,6 +286,7 @@ docker build -f Dockerfile -t infiniflow/ragflow:nightly .
278
  ```
279
 
280
  5. Jalankan aplikasi backend:
 
281
  ```bash
282
  source .venv/bin/activate
283
  export PYTHONPATH=$(pwd)
@@ -290,9 +299,10 @@ docker build -f Dockerfile -t infiniflow/ragflow:nightly .
290
  npm install
291
  ```
292
  7. Jalankan aplikasi frontend:
 
293
  ```bash
294
- npm run dev
295
- ```
296
 
297
  _Output berikut menandakan bahwa sistem berhasil diluncurkan:_
298
 
@@ -318,4 +328,4 @@ Lihat [Roadmap RAGFlow 2025](https://github.com/infiniflow/ragflow/issues/4214)
318
  ## 🙌 Kontribusi
319
 
320
  RAGFlow berkembang melalui kolaborasi open-source. Dalam semangat ini, kami menerima kontribusi dari komunitas.
321
- Jika Anda ingin berpartisipasi, tinjau terlebih dahulu [Panduan Kontribusi](./CONTRIBUTING.md).
 
9
  <a href="./README_zh.md">简体中文</a> |
10
  <a href="./README_ja.md">日本語</a> |
11
  <a href="./README_ko.md">한국어</a> |
12
+ <a href="./README_id.md">Bahasa Indonesia</a> |
13
+ <a href="/README_pt_br.md">Português (Brasil)</a>
14
  </p>
15
 
16
  <p align="center">
 
66
  ## 🎮 Demo
67
 
68
  Coba demo kami di [https://demo.ragflow.io](https://demo.ragflow.io).
69
+
70
  <div align="center" style="margin-top:20px;margin-bottom:20px;">
71
  <img src="https://github.com/infiniflow/ragflow/assets/7248/2f6baa3e-1092-4f11-866d-36f6a9d075e5" width="1200"/>
72
  <img src="https://github.com/user-attachments/assets/504bbbf1-c9f7-4d83-8cc5-e9cb63c26db6" width="1200"/>
 
84
  ## 🎉 Tetap Terkini
85
 
86
  ⭐️ Star repositori kami untuk tetap mendapat informasi tentang fitur baru dan peningkatan menarik! 🌟
87
+
88
  <div align="center" style="margin-top:20px;margin-bottom:20px;">
89
  <img src="https://github.com/user-attachments/assets/18c9707e-b8aa-4caf-a154-037089c105ba" width="1200"/>
90
  </div>
 
150
  > ```
151
  >
152
  > Perubahan ini akan hilang setelah sistem direboot. Untuk membuat perubahan ini permanen, tambahkan atau perbarui nilai
153
+ > `vm.max_map_count` di **/etc/sysctl.conf**:
154
  >
155
  > ```bash
156
  > vm.max_map_count=262144
 
175
  | ----------------- | --------------- | --------------------- | ------------------------ |
176
  | v0.15.1 | &approx;9 | :heavy_check_mark: | Stable release |
177
  | v0.15.1-slim | &approx;2 | ❌ | Stable release |
178
+ | nightly | &approx;9 | :heavy_check_mark: | _Unstable_ nightly build |
179
+ | nightly-slim | &approx;2 | ❌ | _Unstable_ nightly build |
180
 
181
  4. Periksa status server setelah server aktif dan berjalan:
182
 
 
188
 
189
  ```bash
190
 
191
+ ____ ___ ______ ______ __
192
  / __ \ / | / ____// ____// /____ _ __
193
  / /_/ // /| | / / __ / /_ / // __ \| | /| / /
194
+ / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ /
195
+ /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/
196
 
197
  * Running on all addresses (0.0.0.0)
198
  * Running on http://127.0.0.1:9380
199
  * Running on http://x.x.x.x:9380
200
  INFO:werkzeug:Press CTRL+C to quit
201
  ```
202
+
203
  > Jika Anda melewatkan langkah ini dan langsung login ke RAGFlow, browser Anda mungkin menampilkan error `network anormal`
204
+ > karena RAGFlow mungkin belum sepenuhnya siap.
205
 
206
  5. Buka browser web Anda, masukkan alamat IP server Anda, dan login ke RAGFlow.
207
+ > Dengan pengaturan default, Anda hanya perlu memasukkan `http://IP_DEVICE_ANDA` (**tanpa** nomor port) karena
208
+ > port HTTP default `80` bisa dihilangkan saat menggunakan konfigurasi default.
209
  6. Dalam [service_conf.yaml.template](./docker/service_conf.yaml.template), pilih LLM factory yang diinginkan di `user_default_llm` dan perbarui
210
  bidang `API_KEY` dengan kunci API yang sesuai.
211
 
 
254
  ## 🔨 Menjalankan Aplikasi dari untuk Pengembangan
255
 
256
  1. Instal uv, atau lewati langkah ini jika sudah terinstal:
257
+
258
  ```bash
259
  pipx install uv
260
  ```
261
 
262
  2. Clone kode sumber dan instal dependensi Python:
263
+
264
  ```bash
265
  git clone https://github.com/infiniflow/ragflow.git
266
  cd ragflow/
 
268
  ```
269
 
270
  3. Jalankan aplikasi yang diperlukan (MinIO, Elasticsearch, Redis, dan MySQL) menggunakan Docker Compose:
271
+
272
  ```bash
273
  docker compose -f docker/docker-compose-base.yml up -d
274
  ```
275
 
276
  Tambahkan baris berikut ke `/etc/hosts` untuk memetakan semua host yang ditentukan di **conf/service_conf.yaml** ke `127.0.0.1`:
277
+
278
  ```
279
  127.0.0.1 es01 infinity mysql minio redis
280
+ ```
281
 
282
  4. Jika Anda tidak dapat mengakses HuggingFace, atur variabel lingkungan `HF_ENDPOINT` untuk menggunakan situs mirror:
283
 
 
286
  ```
287
 
288
  5. Jalankan aplikasi backend:
289
+
290
  ```bash
291
  source .venv/bin/activate
292
  export PYTHONPATH=$(pwd)
 
299
  npm install
300
  ```
301
  7. Jalankan aplikasi frontend:
302
+
303
  ```bash
304
+ npm run dev
305
+ ```
306
 
307
  _Output berikut menandakan bahwa sistem berhasil diluncurkan:_
308
 
 
328
  ## 🙌 Kontribusi
329
 
330
  RAGFlow berkembang melalui kolaborasi open-source. Dalam semangat ini, kami menerima kontribusi dari komunitas.
331
+ Jika Anda ingin berpartisipasi, tinjau terlebih dahulu [Panduan Kontribusi](./CONTRIBUTING.md).
README_ja.md CHANGED
@@ -9,7 +9,8 @@
9
  <a href="./README_zh.md">简体中文</a> |
10
  <a href="./README_ja.md">日本語</a> |
11
  <a href="./README_ko.md">한국어</a> |
12
- <a href="./README_id.md">Bahasa Indonesia</a>
 
13
  </p>
14
 
15
  <p align="center">
@@ -30,7 +31,6 @@
30
  </a>
31
  </p>
32
 
33
-
34
  <h4 align="center">
35
  <a href="https://ragflow.io/docs/dev/">Document</a> |
36
  <a href="https://github.com/infiniflow/ragflow/issues/4214">Roadmap</a> |
@@ -46,12 +46,12 @@
46
  ## 🎮 Demo
47
 
48
  デモをお試しください:[https://demo.ragflow.io](https://demo.ragflow.io)。
 
49
  <div align="center" style="margin-top:20px;margin-bottom:20px;">
50
  <img src="https://github.com/infiniflow/ragflow/assets/7248/2f6baa3e-1092-4f11-866d-36f6a9d075e5" width="1200"/>
51
  <img src="https://github.com/user-attachments/assets/504bbbf1-c9f7-4d83-8cc5-e9cb63c26db6" width="1200"/>
52
  </div>
53
 
54
-
55
  ## 🔥 最新情報
56
 
57
  - 2024-12-18 Deepdoc のドキュメント レイアウト分析モデルをアップグレードします。
@@ -62,7 +62,9 @@
62
  - 2024-08-02 [graphrag](https://github.com/microsoft/graphrag) からインスピレーションを得た GraphRAG とマインド マップをサポートします。
63
 
64
  ## 🎉 続きを楽しみに
 
65
  ⭐️ リポジトリをスター登録して、エキサイティングな新機能やアップデートを最新の状態に保ちましょう!すべての新しいリリースに関する即時通知を受け取れます! 🌟
 
66
  <div align="center" style="margin-top:20px;margin-bottom:20px;">
67
  <img src="https://github.com/user-attachments/assets/18c9707e-b8aa-4caf-a154-037089c105ba" width="1200"/>
68
  </div>
@@ -142,7 +144,7 @@
142
 
143
  3. ビルド済みの Docker イメージをビルドし、サーバーを起動する:
144
 
145
- > 以下のコマンドは、RAGFlow Dockerイメージの v0.15.1-slim エディションをダウンロードします。異なる RAGFlow エディションの説明については、以下の表を参照してください。v0.15.1-slim とは異なるエディションをダウンロードするには、docker/.env ファイルの RAGFLOW_IMAGE 変数を適宜更新し、docker compose を使用してサーバーを起動してください。例えば、完全版 v0.15.1 をダウンロードするには、RAGFLOW_IMAGE=infiniflow/ragflow:v0.15.1 と設定します。
146
 
147
  ```bash
148
  $ cd ragflow
@@ -151,10 +153,10 @@
151
 
152
  | RAGFlow image tag | Image size (GB) | Has embedding models? | Stable? |
153
  | ----------------- | --------------- | --------------------- | ------------------------ |
154
- | v0.15.1 | &approx;9 | :heavy_check_mark: | Stable release |
155
  | v0.15.1-slim | &approx;2 | ❌ | Stable release |
156
- | nightly | &approx;9 | :heavy_check_mark: | *Unstable* nightly build |
157
- | nightly-slim | &approx;2 | ❌ | *Unstable* nightly build |
158
 
159
  4. サーバーを立ち上げた後、サーバーの状態を確認する:
160
 
@@ -165,17 +167,18 @@
165
  _以下の出力は、システムが正常に起動したことを確認するものです:_
166
 
167
  ```bash
168
- ____ ___ ______ ______ __
169
  / __ \ / | / ____// ____// /____ _ __
170
  / /_/ // /| | / / __ / /_ / // __ \| | /| / /
171
- / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ /
172
- /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/
173
 
174
  * Running on all addresses (0.0.0.0)
175
  * Running on http://127.0.0.1:9380
176
  * Running on http://x.x.x.x:9380
177
  INFO:werkzeug:Press CTRL+C to quit
178
  ```
 
179
  > もし確認ステップをスキップして直接 RAGFlow にログインした場合、その時点で RAGFlow が完全に初期化されていない可能性があるため、ブラウザーがネットワーク異常エラーを表示するかもしれません。
180
 
181
  5. ウェブブラウザで、プロンプトに従ってサーバーの IP アドレスを入力し、RAGFlow にログインします。
@@ -214,16 +217,16 @@ RAGFlow はデフォルトで Elasticsearch を使用して全文とベクトル
214
  ```bash
215
  $ docker compose -f docker/docker-compose.yml down -v
216
  ```
217
- 2. **docker/.env** の「DOC _ ENGINE」を「infinity」に設定します。
218
 
219
  3. 起動コンテナ:
220
  ```bash
221
  $ docker compose -f docker/docker-compose.yml up -d
222
  ```
223
- > [!WARNING]
224
- > Linux/arm64 マシンでの Infinity への切り替えは正式にサポートされていません。
225
 
226
- ## 🔧 ソースコードでDockerイメージを作成(埋め込みモデルなし)
227
 
228
  この Docker イメージのサイズは約 1GB で、外部の大モデルと埋め込みサービスに依存しています。
229
 
@@ -233,7 +236,7 @@ cd ragflow/
233
  docker build --build-arg LIGHTEN=1 -f Dockerfile -t infiniflow/ragflow:nightly-slim .
234
  ```
235
 
236
- ## 🔧 ソースコードをコンパイルしたDockerイメージ(埋め込みモデルを含む)
237
 
238
  この Docker のサイズは約 9GB で、埋め込みモデルを含むため、外部の大モデルサービスのみが必要です。
239
 
@@ -246,11 +249,13 @@ docker build -f Dockerfile -t infiniflow/ragflow:nightly .
246
  ## 🔨 ソースコードからサービスを起動する方法
247
 
248
  1. uv をインストールする。すでにインストールされている場合は、このステップをスキップしてください:
 
249
  ```bash
250
  pipx install uv
251
  ```
252
 
253
  2. ソースコードをクローンし、Python の依存関係をインストールする:
 
254
  ```bash
255
  git clone https://github.com/infiniflow/ragflow.git
256
  cd ragflow/
@@ -258,39 +263,43 @@ docker build -f Dockerfile -t infiniflow/ragflow:nightly .
258
  ```
259
 
260
  3. Docker Compose を使用して依存サービス(MinIO、Elasticsearch、Redis、MySQL)を起動する:
 
261
  ```bash
262
  docker compose -f docker/docker-compose-base.yml up -d
263
  ```
264
 
265
- `/etc/hosts` に以下の行を追加して、**conf/service_conf.yaml** に指定されたすべてのホストを `127.0.0.1` に解決します:
 
266
  ```
267
  127.0.0.1 es01 infinity mysql minio redis
268
- ```
269
 
270
  4. HuggingFace にアクセスできない場合は、`HF_ENDPOINT` 環境変数を設定してミラーサイトを使用してください:
271
-
272
  ```bash
273
  export HF_ENDPOINT=https://hf-mirror.com
274
  ```
275
 
276
  5. バックエンドサービスを起動する:
 
277
  ```bash
278
  source .venv/bin/activate
279
  export PYTHONPATH=$(pwd)
280
  bash docker/launch_backend_service.sh
281
  ```
282
 
283
- 6. フロントエンドの依存関係をインストールする:
284
  ```bash
285
  cd web
286
  npm install
287
- ```
288
- 7. フロントエンドサービスを起動する:
 
289
  ```bash
290
- npm run dev
291
  ```
292
 
293
- _以下の画面で、システムが正常に起動したことを示します:_
294
 
295
  ![](https://github.com/user-attachments/assets/0daf462c-a24d-4496-a66f-92533534e187)
296
 
 
9
  <a href="./README_zh.md">简体中文</a> |
10
  <a href="./README_ja.md">日本語</a> |
11
  <a href="./README_ko.md">한국어</a> |
12
+ <a href="./README_id.md">Bahasa Indonesia</a> |
13
+ <a href="/README_pt_br.md">Português (Brasil)</a>
14
  </p>
15
 
16
  <p align="center">
 
31
  </a>
32
  </p>
33
 
 
34
  <h4 align="center">
35
  <a href="https://ragflow.io/docs/dev/">Document</a> |
36
  <a href="https://github.com/infiniflow/ragflow/issues/4214">Roadmap</a> |
 
46
  ## 🎮 Demo
47
 
48
  デモをお試しください:[https://demo.ragflow.io](https://demo.ragflow.io)。
49
+
50
  <div align="center" style="margin-top:20px;margin-bottom:20px;">
51
  <img src="https://github.com/infiniflow/ragflow/assets/7248/2f6baa3e-1092-4f11-866d-36f6a9d075e5" width="1200"/>
52
  <img src="https://github.com/user-attachments/assets/504bbbf1-c9f7-4d83-8cc5-e9cb63c26db6" width="1200"/>
53
  </div>
54
 
 
55
  ## 🔥 最新情報
56
 
57
  - 2024-12-18 Deepdoc のドキュメント レイアウト分析モデルをアップグレードします。
 
62
  - 2024-08-02 [graphrag](https://github.com/microsoft/graphrag) からインスピレーションを得た GraphRAG とマインド マップをサポートします。
63
 
64
  ## 🎉 続きを楽しみに
65
+
66
  ⭐️ リポジトリをスター登録して、エキサイティングな新機能やアップデートを最新の状態に保ちましょう!すべての新しいリリースに関する即時通知を受け取れます! 🌟
67
+
68
  <div align="center" style="margin-top:20px;margin-bottom:20px;">
69
  <img src="https://github.com/user-attachments/assets/18c9707e-b8aa-4caf-a154-037089c105ba" width="1200"/>
70
  </div>
 
144
 
145
  3. ビルド済みの Docker イメージをビルドし、サーバーを起動する:
146
 
147
+ > 以下のコマンドは、RAGFlow Docker イメージの v0.15.1-slim エディションをダウンロードします。異なる RAGFlow エディションの説明については、以下の表を参照してください。v0.15.1-slim とは異なるエディションをダウンロードするには、docker/.env ファイルの RAGFLOW_IMAGE 変数を適宜更新し、docker compose を使用してサーバーを起動してください。例えば、完全版 v0.15.1 をダウンロードするには、RAGFLOW_IMAGE=infiniflow/ragflow:v0.15.1 と設定します。
148
 
149
  ```bash
150
  $ cd ragflow
 
153
 
154
  | RAGFlow image tag | Image size (GB) | Has embedding models? | Stable? |
155
  | ----------------- | --------------- | --------------------- | ------------------------ |
156
+ | v0.15.1 | &approx;9 | :heavy_check_mark: | Stable release |
157
  | v0.15.1-slim | &approx;2 | ❌ | Stable release |
158
+ | nightly | &approx;9 | :heavy_check_mark: | _Unstable_ nightly build |
159
+ | nightly-slim | &approx;2 | ❌ | _Unstable_ nightly build |
160
 
161
  4. サーバーを立ち上げた後、サーバーの状態を確認する:
162
 
 
167
  _以下の出力は、システムが正常に起動したことを確認するものです:_
168
 
169
  ```bash
170
+ ____ ___ ______ ______ __
171
  / __ \ / | / ____// ____// /____ _ __
172
  / /_/ // /| | / / __ / /_ / // __ \| | /| / /
173
+ / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ /
174
+ /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/
175
 
176
  * Running on all addresses (0.0.0.0)
177
  * Running on http://127.0.0.1:9380
178
  * Running on http://x.x.x.x:9380
179
  INFO:werkzeug:Press CTRL+C to quit
180
  ```
181
+
182
  > もし確認ステップをスキップして直接 RAGFlow にログインした場合、その時点で RAGFlow が完全に初期化されていない可能性があるため、ブラウザーがネットワーク異常エラーを表示するかもしれません。
183
 
184
  5. ウェブブラウザで、プロンプトに従ってサーバーの IP アドレスを入力し、RAGFlow にログインします。
 
217
  ```bash
218
  $ docker compose -f docker/docker-compose.yml down -v
219
  ```
220
+ 2. **docker/.env** の「DOC \_ ENGINE」を「infinity」に設定します。
221
 
222
  3. 起動コンテナ:
223
  ```bash
224
  $ docker compose -f docker/docker-compose.yml up -d
225
  ```
226
+ > [!WARNING]
227
+ > Linux/arm64 マシンでの Infinity への切り替えは正式にサポートされていません。
228
 
229
+ ## 🔧 ソースコードで Docker イメージを作成(埋め込みモデルなし)
230
 
231
  この Docker イメージのサイズは約 1GB で、外部の大モデルと埋め込みサービスに依存しています。
232
 
 
236
  docker build --build-arg LIGHTEN=1 -f Dockerfile -t infiniflow/ragflow:nightly-slim .
237
  ```
238
 
239
+ ## 🔧 ソースコードをコンパイルした Docker イメージ(埋め込みモデルを含む)
240
 
241
  この Docker のサイズは約 9GB で、埋め込みモデルを含むため、外部の大モデルサービスのみが必要です。
242
 
 
249
  ## 🔨 ソースコードからサービスを起動する方法
250
 
251
  1. uv をインストールする。すでにインストールされている場合は、このステップをスキップしてください:
252
+
253
  ```bash
254
  pipx install uv
255
  ```
256
 
257
  2. ソースコードをクローンし、Python の依存関係をインストールする:
258
+
259
  ```bash
260
  git clone https://github.com/infiniflow/ragflow.git
261
  cd ragflow/
 
263
  ```
264
 
265
  3. Docker Compose を使用して依存サービス(MinIO、Elasticsearch、Redis、MySQL)を起動する:
266
+
267
  ```bash
268
  docker compose -f docker/docker-compose-base.yml up -d
269
  ```
270
 
271
+ `/etc/hosts` に以下の行を追加して、**conf/service_conf.yaml** に指定されたすべてのホストを `127.0.0.1` に解決します:
272
+
273
  ```
274
  127.0.0.1 es01 infinity mysql minio redis
275
+ ```
276
 
277
  4. HuggingFace にアクセスできない場合は、`HF_ENDPOINT` 環境変数を設定してミラーサイトを使用してください:
278
+
279
  ```bash
280
  export HF_ENDPOINT=https://hf-mirror.com
281
  ```
282
 
283
  5. バックエンドサービスを起動する:
284
+
285
  ```bash
286
  source .venv/bin/activate
287
  export PYTHONPATH=$(pwd)
288
  bash docker/launch_backend_service.sh
289
  ```
290
 
291
+ 6. フロントエンドの依存関係をインストールする:
292
  ```bash
293
  cd web
294
  npm install
295
+ ```
296
+ 7. フロントエンドサービスを起動する:
297
+
298
  ```bash
299
+ npm run dev
300
  ```
301
 
302
+ _以下の画面で、システムが正常に起動したことを示します:_
303
 
304
  ![](https://github.com/user-attachments/assets/0daf462c-a24d-4496-a66f-92533534e187)
305
 
README_ko.md CHANGED
@@ -9,7 +9,8 @@
9
  <a href="./README_zh.md">简体中文</a> |
10
  <a href="./README_ja.md">日本語</a> |
11
  <a href="./README_ko.md">한국어</a> |
12
- <a href="./README_id.md">Bahasa Indonesia</a>
 
13
  </p>
14
 
15
  <p align="center">
@@ -30,7 +31,6 @@
30
  </a>
31
  </p>
32
 
33
-
34
  <h4 align="center">
35
  <a href="https://ragflow.io/docs/dev/">Document</a> |
36
  <a href="https://github.com/infiniflow/ragflow/issues/4214">Roadmap</a> |
@@ -39,69 +39,65 @@
39
  <a href="https://demo.ragflow.io">Demo</a>
40
  </h4>
41
 
42
-
43
  ## 💡 RAGFlow란?
44
 
45
  [RAGFlow](https://ragflow.io/)는 심층 문서 이해에 기반한 오픈소스 RAG (Retrieval-Augmented Generation) 엔진입니다. 이 엔진은 대규모 언어 모델(LLM)과 결합하여 정확한 질문 응답 기능을 제공하며, 다양한 복잡한 형식의 데이터에서 신뢰할 수 있는 출처를 바탕으로 한 인용을 통해 이를 뒷받침합니다. RAGFlow는 규모에 상관없이 모든 기업에 최적화된 RAG 워크플로우를 제공합니다.
46
 
47
-
48
-
49
  ## 🎮 데모
 
50
  데모를 [https://demo.ragflow.io](https://demo.ragflow.io)에서 실행해 보세요.
 
51
  <div align="center" style="margin-top:20px;margin-bottom:20px;">
52
  <img src="https://github.com/infiniflow/ragflow/assets/7248/2f6baa3e-1092-4f11-866d-36f6a9d075e5" width="1200"/>
53
  <img src="https://github.com/user-attachments/assets/504bbbf1-c9f7-4d83-8cc5-e9cb63c26db6" width="1200"/>
54
  </div>
55
 
56
-
57
  ## 🔥 업데이트
58
 
59
  - 2024-12-18 Deepdoc의 문서 레이아웃 분석 모델 업그레이드.
60
-
61
  - 2024-12-04 지식베이스에 대한 페이지랭크 점수를 지원합니다.
62
 
63
  - 2024-11-22 에이전트의 변수 정의 및 사용을 개선했습니다.
64
-
65
  - 2024-11-01 파싱된 청크에 키워드 추출 및 관련 질문 생성을 추가하여 재현율을 향상시킵니다.
66
-
67
  - 2024-08-22 RAG를 통해 SQL 문에 텍스트를 지원합니다.
68
-
69
  - 2024-08-02: [graphrag](https://github.com/microsoft/graphrag)와 마인드맵에서 영감을 받은 GraphRAG를 지원합니다.
70
 
71
-
72
  ## 🎉 계속 지켜봐 주세요
 
73
  ⭐️우리의 저장소를 즐겨찾기에 등록하여 흥미로운 새로운 기능과 업데이트를 최신 상태로 유지하세요! 모든 새로운 릴리스에 대한 즉시 알림을 받으세요! 🌟
 
74
  <div align="center" style="margin-top:20px;margin-bottom:20px;">
75
  <img src="https://github.com/user-attachments/assets/18c9707e-b8aa-4caf-a154-037089c105ba" width="1200"/>
76
  </div>
77
 
78
-
79
  ## 🌟 주요 기능
80
 
81
  ### 🍭 **"Quality in, quality out"**
 
82
  - [심층 문서 이해](./deepdoc/README.md)를 기반으로 복잡한 형식의 비정형 데이터에서 지식을 추출합니다.
83
  - 문자 그대로 무한한 토큰에서 "데이터 속의 바늘"을 찾아냅니다.
84
 
85
  ### 🍱 **템플릿 기반의 chunking**
 
86
  - 똑똑하고 설명 가능한 방식.
87
  - 다양한 템플릿 옵션을 제공합니다.
88
 
89
-
90
  ### 🌱 **할루시네이션을 줄인 신뢰할 수 있는 인용**
 
91
  - 텍스트 청킹을 시각화하여 사용자가 개입할 수 있도록 합니다.
92
  - 중요한 참고 자료와 추적 가능한 인용을 빠르게 확인하여 신뢰할 수 있는 답변을 지원합니다.
93
 
94
-
95
  ### 🍔 **다른 종류의 데이터 소스와의 호환성**
 
96
  - 워드, 슬라이드, 엑셀, 텍스트 파일, 이미지, 스캔본, 구조화된 데이터, 웹 페이지 등을 지원합니다.
97
 
98
  ### 🛀 **자동화되고 손쉬운 RAG 워크플로우**
 
99
  - 개인 및 대규모 비즈니스에 맞춘 효율적인 RAG 오케스트레이션.
100
  - 구성 가능한 LLM 및 임베딩 모델.
101
  - 다중 검색과 결합된 re-ranking.
102
  - 비즈니스와 원활하게 통합할 수 있는 직관적인 API.
103
 
104
-
105
  ## 🔎 시스템 아키텍처
106
 
107
  <div align="center" style="margin-top:20px;margin-bottom:20px;">
@@ -109,17 +105,19 @@
109
  </div>
110
 
111
  ## 🎬 시작하기
 
112
  ### 📝 사전 준비 사항
 
113
  - CPU >= 4 cores
114
  - RAM >= 16 GB
115
  - Disk >= 50 GB
116
  - Docker >= 24.0.0 & Docker Compose >= v2.26.1
117
- > 로컬 머신(Windows, Mac, Linux)에 Docker가 설치되지 않은 경우, [Docker 엔진 설치]((https://docs.docker.com/engine/install/))를 참조하세요.
118
-
119
 
120
  ### 🚀 서버 시작하기
121
 
122
  1. `vm.max_map_count`가 262144 이상인지 확인하세요:
 
123
  > `vm.max_map_count`의 값을 아래 명령어를 통해 확인하세요:
124
  >
125
  > ```bash
@@ -158,8 +156,8 @@
158
  | ----------------- | --------------- | --------------------- | ------------------------ |
159
  | v0.15.1 | &approx;9 | :heavy_check_mark: | Stable release |
160
  | v0.15.1-slim | &approx;2 | ❌ | Stable release |
161
- | nightly | &approx;9 | :heavy_check_mark: | *Unstable* nightly build |
162
- | nightly-slim | &approx;2 | ❌ | *Unstable* nightly build |
163
 
164
  4. 서버가 시작된 후 서버 상태를 확인하세요:
165
 
@@ -170,22 +168,24 @@
170
  _다음 출력 결과로 시스템이 성공적으로 시작되었음을 확인합니다:_
171
 
172
  ```bash
173
- ____ ___ ______ ______ __
174
  / __ \ / | / ____// ____// /____ _ __
175
  / /_/ // /| | / / __ / /_ / // __ \| | /| / /
176
- / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ /
177
- /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/
178
 
179
  * Running on all addresses (0.0.0.0)
180
  * Running on http://127.0.0.1:9380
181
  * Running on http://x.x.x.x:9380
182
  INFO:werkzeug:Press CTRL+C to quit
183
  ```
 
184
  > 만약 확인 단계를 건너뛰고 바로 RAGFlow에 로그인하면, RAGFlow가 완전히 초기화되지 않았기 때문에 브라우저에서 `network anormal` 오류가 발생할 수 있습니다.
185
 
186
  5. 웹 브라우저에 서버의 IP 주소를 입력하고 RAGFlow에 로그인하세요.
187
  > 기본 설정을 사용할 경우, `http://IP_OF_YOUR_MACHINE`만 입력하면 됩니다 (포트 번호는 제외). 기본 HTTP 서비스 포트 `80`은 기본 구성으로 사용할 때 생략할 수 있습니다.
188
  6. [service_conf.yaml.template](./docker/service_conf.yaml.template) 파일에서 원하는 LLM 팩토리를 `user_default_llm`에 선택하고, `API_KEY` 필드를 해당 API 키로 업데이트하세요.
 
189
  > 자세한 내용은 [llm_api_key_setup](https://ragflow.io/docs/dev/llm_api_key_setup)를 참조하세요.
190
 
191
  _이제 쇼가 시작됩니다!_
@@ -213,6 +213,7 @@
213
  ### Elasticsearch 에서 Infinity 로 문서 엔진 전환
214
 
215
  RAGFlow 는 기본적으로 Elasticsearch 를 사용하여 전체 텍스트 및 벡터를 저장합니다. [Infinity]로 전환(https://github.com/infiniflow/infinity/), 다음 절차를 따르십시오.
 
216
  1. 실행 중인 모든 컨테이너를 중지합니다.
217
  ```bash
218
  $docker compose-f docker/docker-compose.yml down -v
@@ -221,10 +222,10 @@ RAGFlow 는 기본적으로 Elasticsearch 를 사용하여 전체 텍스트 및
221
  3. 컨테이너 부팅:
222
  ```bash
223
  $docker compose-f docker/docker-compose.yml up -d
224
- ```
225
- > [!WARNING]
226
- > Linux/arm64 시스템에서 Infinity로 전환하는 것은 공식적으로 지원되지 않습니다.
227
-
228
  ## 🔧 소스 코드로 Docker 이미지를 컴파일합니다(임베딩 모델 포함하지 않음)
229
 
230
  이 Docker 이미지의 크기는 약 1GB이며, 외부 대형 모델과 임베딩 서비스에 의존합니다.
@@ -248,11 +249,13 @@ docker build -f Dockerfile -t infiniflow/ragflow:nightly .
248
  ## 🔨 소스 코드로 서비스를 시작합니다.
249
 
250
  1. uv를 설치하거나 이미 설치된 경우 이 단계를 건너뜁니다:
 
251
  ```bash
252
  pipx install uv
253
  ```
254
 
255
  2. 소스 코드를 클론하고 Python 의존성을 설치합니다:
 
256
  ```bash
257
  git clone https://github.com/infiniflow/ragflow.git
258
  cd ragflow/
@@ -260,39 +263,43 @@ docker build -f Dockerfile -t infiniflow/ragflow:nightly .
260
  ```
261
 
262
  3. Docker Compose를 사용하여 의존 서비스(MinIO, Elasticsearch, Redis 및 MySQL)를 시작합니다:
 
263
  ```bash
264
  docker compose -f docker/docker-compose-base.yml up -d
265
  ```
266
 
267
- `/etc/hosts` 에 다음 줄을 추가하여 **conf/service_conf.yaml** 에 지정된 모든 호스트를 `127.0.0.1` 로 해결합니다:
 
268
  ```
269
  127.0.0.1 es01 infinity mysql minio redis
270
- ```
271
 
272
  4. HuggingFace에 접근할 수 없는 경우, `HF_ENDPOINT` 환경 변수를 설정하여 미러 사이트를 사용하세요:
273
-
274
  ```bash
275
  export HF_ENDPOINT=https://hf-mirror.com
276
  ```
277
 
278
  5. 백엔드 서비스를 시작합니다:
 
279
  ```bash
280
  source .venv/bin/activate
281
  export PYTHONPATH=$(pwd)
282
  bash docker/launch_backend_service.sh
283
  ```
284
 
285
- 6. 프론트엔드 의존성을 설치합니다:
286
  ```bash
287
  cd web
288
  npm install
289
- ```
290
- 7. 프론트엔드 서비스를 시작합니다:
 
291
  ```bash
292
- npm run dev
293
  ```
294
 
295
- _다음 인터페이스는 시스템이 성공적으로 시작되었음을 나타냅니다:_
296
 
297
  ![](https://github.com/user-attachments/assets/0daf462c-a24d-4496-a66f-92533534e187)
298
 
 
9
  <a href="./README_zh.md">简体中文</a> |
10
  <a href="./README_ja.md">日本語</a> |
11
  <a href="./README_ko.md">한국어</a> |
12
+ <a href="./README_id.md">Bahasa Indonesia</a> |
13
+ <a href="/README_pt_br.md">Português (Brasil)</a>
14
  </p>
15
 
16
  <p align="center">
 
31
  </a>
32
  </p>
33
 
 
34
  <h4 align="center">
35
  <a href="https://ragflow.io/docs/dev/">Document</a> |
36
  <a href="https://github.com/infiniflow/ragflow/issues/4214">Roadmap</a> |
 
39
  <a href="https://demo.ragflow.io">Demo</a>
40
  </h4>
41
 
 
42
  ## 💡 RAGFlow란?
43
 
44
  [RAGFlow](https://ragflow.io/)는 심층 문서 이해에 기반한 오픈소스 RAG (Retrieval-Augmented Generation) 엔진입니다. 이 엔진은 대규모 언어 모델(LLM)과 결합하여 정확한 질문 응답 기능을 제공하며, 다양한 복잡한 형식의 데이터에서 신뢰할 수 있는 출처를 바탕으로 한 인용을 통해 이를 뒷받침합니다. RAGFlow는 규모에 상관없이 모든 기업에 최적화된 RAG 워크플로우를 제공합니다.
45
 
 
 
46
  ## 🎮 데모
47
+
48
  데모를 [https://demo.ragflow.io](https://demo.ragflow.io)에서 실행해 보세요.
49
+
50
  <div align="center" style="margin-top:20px;margin-bottom:20px;">
51
  <img src="https://github.com/infiniflow/ragflow/assets/7248/2f6baa3e-1092-4f11-866d-36f6a9d075e5" width="1200"/>
52
  <img src="https://github.com/user-attachments/assets/504bbbf1-c9f7-4d83-8cc5-e9cb63c26db6" width="1200"/>
53
  </div>
54
 
 
55
  ## 🔥 업데이트
56
 
57
  - 2024-12-18 Deepdoc의 문서 레이아웃 분석 모델 업그레이드.
 
58
  - 2024-12-04 지식베이스에 대한 페이지랭크 점수를 지원합니다.
59
 
60
  - 2024-11-22 에이전트의 변수 정의 및 사용을 개선했습니다.
 
61
  - 2024-11-01 파싱된 청크에 키워드 추출 및 관련 질문 생성을 추가하여 재현율을 향상시킵니다.
 
62
  - 2024-08-22 RAG를 통해 SQL 문에 텍스트를 지원합니다.
 
63
  - 2024-08-02: [graphrag](https://github.com/microsoft/graphrag)와 마인드맵에서 영감을 받은 GraphRAG를 지원합니다.
64
 
 
65
  ## 🎉 계속 지켜봐 주세요
66
+
67
  ⭐️우리의 저장소를 즐겨찾기에 등록하여 흥미로운 새로운 기능과 업데이트를 최신 상태로 유지하세요! 모든 새로운 릴리스에 대한 즉시 알림을 받으세요! 🌟
68
+
69
  <div align="center" style="margin-top:20px;margin-bottom:20px;">
70
  <img src="https://github.com/user-attachments/assets/18c9707e-b8aa-4caf-a154-037089c105ba" width="1200"/>
71
  </div>
72
 
 
73
  ## 🌟 주요 기능
74
 
75
  ### 🍭 **"Quality in, quality out"**
76
+
77
  - [심층 문서 이해](./deepdoc/README.md)를 기반으로 복잡한 형식의 비정형 데이터에서 지식을 추출합니다.
78
  - 문자 그대로 무한한 토큰에서 "데이터 속의 바늘"을 찾아냅니다.
79
 
80
  ### 🍱 **템플릿 기반의 chunking**
81
+
82
  - 똑똑하고 설명 가능한 방식.
83
  - 다양한 템플릿 옵션을 제공합니다.
84
 
 
85
  ### 🌱 **할루시네이션을 줄인 신뢰할 수 있는 인용**
86
+
87
  - 텍스트 청킹을 시각화하여 사용자가 개입할 수 있도록 합니다.
88
  - 중요한 참고 자료와 추적 가능한 인용을 빠르게 확인하여 신뢰할 수 있는 답변을 지원합니다.
89
 
 
90
  ### 🍔 **다른 종류의 데이터 소스와의 호환성**
91
+
92
  - 워드, 슬라이드, 엑셀, 텍스트 파일, 이미지, 스캔본, 구조화된 데이터, 웹 페이지 등을 지원합니다.
93
 
94
  ### 🛀 **자동화되고 손쉬운 RAG 워크플로우**
95
+
96
  - 개인 및 대규모 비즈니스에 맞춘 효율적인 RAG 오케스트레이션.
97
  - 구성 가능한 LLM 및 임베딩 모델.
98
  - 다중 검색과 결합된 re-ranking.
99
  - 비즈니스와 원활하게 통합할 수 있는 직관적인 API.
100
 
 
101
  ## 🔎 시스템 아키텍처
102
 
103
  <div align="center" style="margin-top:20px;margin-bottom:20px;">
 
105
  </div>
106
 
107
  ## 🎬 시작하기
108
+
109
  ### 📝 사전 준비 사항
110
+
111
  - CPU >= 4 cores
112
  - RAM >= 16 GB
113
  - Disk >= 50 GB
114
  - Docker >= 24.0.0 & Docker Compose >= v2.26.1
115
+ > 로컬 머신(Windows, Mac, Linux)에 Docker가 설치되지 않은 경우, [Docker 엔진 설치](<(https://docs.docker.com/engine/install/)>)를 참조하세요.
 
116
 
117
  ### 🚀 서버 시작하기
118
 
119
  1. `vm.max_map_count`가 262144 이상인지 확인하세요:
120
+
121
  > `vm.max_map_count`의 값을 아래 명령어를 통해 확인하세요:
122
  >
123
  > ```bash
 
156
  | ----------------- | --------------- | --------------------- | ------------------------ |
157
  | v0.15.1 | &approx;9 | :heavy_check_mark: | Stable release |
158
  | v0.15.1-slim | &approx;2 | ❌ | Stable release |
159
+ | nightly | &approx;9 | :heavy_check_mark: | _Unstable_ nightly build |
160
+ | nightly-slim | &approx;2 | ❌ | _Unstable_ nightly build |
161
 
162
  4. 서버가 시작된 후 서버 상태를 확인하세요:
163
 
 
168
  _다음 출력 결과로 시스템이 성공적으로 시작되었음을 확인합니다:_
169
 
170
  ```bash
171
+ ____ ___ ______ ______ __
172
  / __ \ / | / ____// ____// /____ _ __
173
  / /_/ // /| | / / __ / /_ / // __ \| | /| / /
174
+ / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ /
175
+ /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/
176
 
177
  * Running on all addresses (0.0.0.0)
178
  * Running on http://127.0.0.1:9380
179
  * Running on http://x.x.x.x:9380
180
  INFO:werkzeug:Press CTRL+C to quit
181
  ```
182
+
183
  > 만약 확인 단계를 건너뛰고 바로 RAGFlow에 로그인하면, RAGFlow가 완전히 초기화되지 않았기 때문에 브라우저에서 `network anormal` 오류가 발생할 수 있습니다.
184
 
185
  5. 웹 브라우저에 서버의 IP 주소를 입력하고 RAGFlow에 로그인하세요.
186
  > 기본 설정을 사용할 경우, `http://IP_OF_YOUR_MACHINE`만 입력하면 됩니다 (포트 번호는 제외). 기본 HTTP 서비스 포트 `80`은 기본 구성으로 사용할 때 생략할 수 있습니다.
187
  6. [service_conf.yaml.template](./docker/service_conf.yaml.template) 파일에서 원하는 LLM 팩토리를 `user_default_llm`에 선택하고, `API_KEY` 필드를 해당 API 키로 업데이트하세요.
188
+
189
  > 자세한 내용은 [llm_api_key_setup](https://ragflow.io/docs/dev/llm_api_key_setup)를 참조하세요.
190
 
191
  _이제 쇼가 시작됩니다!_
 
213
  ### Elasticsearch 에서 Infinity 로 문서 엔진 전환
214
 
215
  RAGFlow 는 기본적으로 Elasticsearch 를 사용하여 전체 텍스트 및 벡터를 저장합니다. [Infinity]로 전환(https://github.com/infiniflow/infinity/), 다음 절차를 따르십시오.
216
+
217
  1. 실행 중인 모든 컨테이너를 중지합니다.
218
  ```bash
219
  $docker compose-f docker/docker-compose.yml down -v
 
222
  3. 컨테이너 부팅:
223
  ```bash
224
  $docker compose-f docker/docker-compose.yml up -d
225
+ ```
226
+ > [!WARNING]
227
+ > Linux/arm64 시스템에서 Infinity로 전환하는 것은 공식적으로 지원되지 않습니다.
228
+
229
  ## 🔧 소스 코드로 Docker 이미지를 컴파일합니다(임베딩 모델 포함하지 않음)
230
 
231
  이 Docker 이미지의 크기는 약 1GB이며, 외부 대형 모델과 임베딩 서비스에 의존합니다.
 
249
  ## 🔨 소스 코드로 서비스를 시작합니다.
250
 
251
  1. uv를 설치하거나 이미 설치된 경우 이 단계를 건너뜁니다:
252
+
253
  ```bash
254
  pipx install uv
255
  ```
256
 
257
  2. 소스 코드를 클론하고 Python 의존성을 설치합니다:
258
+
259
  ```bash
260
  git clone https://github.com/infiniflow/ragflow.git
261
  cd ragflow/
 
263
  ```
264
 
265
  3. Docker Compose를 사용하여 의존 서비스(MinIO, Elasticsearch, Redis 및 MySQL)를 시작합니다:
266
+
267
  ```bash
268
  docker compose -f docker/docker-compose-base.yml up -d
269
  ```
270
 
271
+ `/etc/hosts` 에 다음 줄을 추가하여 **conf/service_conf.yaml** 에 지정된 모든 호스트를 `127.0.0.1` 로 해결합니다:
272
+
273
  ```
274
  127.0.0.1 es01 infinity mysql minio redis
275
+ ```
276
 
277
  4. HuggingFace에 접근할 수 없는 경우, `HF_ENDPOINT` 환경 변수를 설정하여 미러 사이트를 사용하세요:
278
+
279
  ```bash
280
  export HF_ENDPOINT=https://hf-mirror.com
281
  ```
282
 
283
  5. 백엔드 서비스를 시작합니다:
284
+
285
  ```bash
286
  source .venv/bin/activate
287
  export PYTHONPATH=$(pwd)
288
  bash docker/launch_backend_service.sh
289
  ```
290
 
291
+ 6. 프론트엔드 의존성을 설치합니다:
292
  ```bash
293
  cd web
294
  npm install
295
+ ```
296
+ 7. 프론트엔드 서비스를 시작합니다:
297
+
298
  ```bash
299
+ npm run dev
300
  ```
301
 
302
+ _다음 인터페이스는 시스템이 성공적으로 시작되었음을 나타냅니다:_
303
 
304
  ![](https://github.com/user-attachments/assets/0daf462c-a24d-4496-a66f-92533534e187)
305
 
README_pt_br.md ADDED
@@ -0,0 +1,352 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div align="center">
2
+ <a href="https://demo.ragflow.io/">
3
+ <img src="web/src/assets/logo-with-text.png" width="520" alt="ragflow logo">
4
+ </a>
5
+ </div>
6
+
7
+ <p align="center">
8
+ <a href="./README.md">English</a> |
9
+ <a href="./README_zh.md">简体中文</a> |
10
+ <a href="./README_ja.md">日本語</a> |
11
+ <a href="./README_ko.md">한국어</a> |
12
+ <a href="./README_id.md">Bahasa Indonesia</a> |
13
+ <a href="/README_pt_br.md">Português (Brasil)</a>
14
+ </p>
15
+
16
+ <p align="center">
17
+ <a href="https://x.com/intent/follow?screen_name=infiniflowai" target="_blank">
18
+ <img src="https://img.shields.io/twitter/follow/infiniflow?logo=X&color=%20%23f5f5f5" alt="seguir no X(Twitter)">
19
+ </a>
20
+ <a href="https://demo.ragflow.io" target="_blank">
21
+ <img alt="Badge Estático" src="https://img.shields.io/badge/Online-Demo-4e6b99">
22
+ </a>
23
+ <a href="https://hub.docker.com/r/infiniflow/ragflow" target="_blank">
24
+ <img src="https://img.shields.io/badge/docker_pull-ragflow:v0.15.1-brightgreen" alt="docker pull infiniflow/ragflow:v0.15.1">
25
+ </a>
26
+ <a href="https://github.com/infiniflow/ragflow/releases/latest">
27
+ <img src="https://img.shields.io/github/v/release/infiniflow/ragflow?color=blue&label=Última%20Versão" alt="Última Versão">
28
+ </a>
29
+ <a href="https://github.com/infiniflow/ragflow/blob/main/LICENSE">
30
+ <img height="21" src="https://img.shields.io/badge/License-Apache--2.0-ffffff?labelColor=d4eaf7&color=2e6cc4" alt="licença">
31
+ </a>
32
+ </p>
33
+
34
+ <h4 align="center">
35
+ <a href="https://ragflow.io/docs/dev/">Documentação</a> |
36
+ <a href="https://github.com/infiniflow/ragflow/issues/4214">Roadmap</a> |
37
+ <a href="https://twitter.com/infiniflowai">Twitter</a> |
38
+ <a href="https://discord.gg/4XxujFgUN7">Discord</a> |
39
+ <a href="https://demo.ragflow.io">Demo</a>
40
+ </h4>
41
+
42
+ <details open>
43
+ <summary></b>📕 Índice</b></summary>
44
+
45
+ - 💡 [O que é o RAGFlow?](#-o-que-é-o-ragflow)
46
+ - 🎮 [Demo](#-demo)
47
+ - 📌 [Últimas Atualizações](#-últimas-atualizações)
48
+ - 🌟 [Principais Funcionalidades](#-principais-funcionalidades)
49
+ - 🔎 [Arquitetura do Sistema](#-arquitetura-do-sistema)
50
+ - 🎬 [Primeiros Passos](#-primeiros-passos)
51
+ - 🔧 [Configurações](#-configurações)
52
+ - 🔧 [Construir uma imagem docker sem incorporar modelos](#-construir-uma-imagem-docker-sem-incorporar-modelos)
53
+ - 🔧 [Construir uma imagem docker incluindo modelos](#-construir-uma-imagem-docker-incluindo-modelos)
54
+ - 🔨 [Lançar serviço a partir do código-fonte para desenvolvimento](#-lançar-serviço-a-partir-do-código-fonte-para-desenvolvimento)
55
+ - 📚 [Documentação](#-documentação)
56
+ - 📜 [Roadmap](#-roadmap)
57
+ - 🏄 [Comunidade](#-comunidade)
58
+ - 🙌 [Contribuindo](#-contribuindo)
59
+
60
+ </details>
61
+
62
+ ## 💡 O que é o RAGFlow?
63
+
64
+ [RAGFlow](https://ragflow.io/) é um mecanismo RAG (Geração Aumentada por Recuperação) de código aberto baseado em entendimento profundo de documentos. Ele oferece um fluxo de trabalho RAG simplificado para empresas de qualquer porte, combinando LLMs (Modelos de Linguagem de Grande Escala) para fornecer capacidades de perguntas e respostas verídicas, respaldadas por citações bem fundamentadas de diversos dados complexos formatados.
65
+
66
+ ## 🎮 Demo
67
+
68
+ Experimente nossa demo em [https://demo.ragflow.io](https://demo.ragflow.io).
69
+
70
+ <div align="center" style="margin-top:20px;margin-bottom:20px;">
71
+ <img src="https://github.com/infiniflow/ragflow/assets/7248/2f6baa3e-1092-4f11-866d-36f6a9d075e5" width="1200"/>
72
+ <img src="https://github.com/user-attachments/assets/504bbbf1-c9f7-4d83-8cc5-e9cb63c26db6" width="1200"/>
73
+ </div>
74
+
75
+ ## 🔥 Últimas Atualizações
76
+
77
+ - 18-12-2024 Atualiza o modelo de Análise de Layout de Documentos no Deepdoc.
78
+ - 04-12-2024 Adiciona suporte para pontuação de pagerank na base de conhecimento.
79
+ - 22-11-2024 Adiciona mais variáveis para o Agente.
80
+ - 01-11-2024 Adiciona extração de palavras-chave e geração de perguntas relacionadas aos blocos analisados para melhorar a precisão da recuperação.
81
+ - 22-08-2024 Suporta conversão de texto para comandos SQL via RAG.
82
+ - 02-08-2024 Suporta GraphRAG inspirado pelo [graphrag](https://github.com/microsoft/graphrag) e mapa mental.
83
+
84
+ ## 🎉 Fique Ligado
85
+
86
+ ⭐️ Dê uma estrela no nosso repositório para se manter atualizado com novas funcionalidades e melhorias empolgantes! Receba notificações instantâneas sobre novos lançamentos! 🌟
87
+
88
+ <div align="center" style="margin-top:20px;margin-bottom:20px;">
89
+ <img src="https://github.com/user-attachments/assets/18c9707e-b8aa-4caf-a154-037089c105ba" width="1200"/>
90
+ </div>
91
+
92
+ ## 🌟 Principais Funcionalidades
93
+
94
+ ### 🍭 **"Qualidade entra, qualidade sai"**
95
+
96
+ - Extração de conhecimento baseada em [entendimento profundo de documentos](./deepdoc/README.md) a partir de dados não estruturados com formatos complicados.
97
+ - Encontra a "agulha no palheiro de dados" de literalmente tokens ilimitados.
98
+
99
+ ### 🍱 **Fragmentação baseada em templates**
100
+
101
+ - Inteligente e explicável.
102
+ - Muitas opções de templates para escolher.
103
+
104
+ ### 🌱 **Citações fundamentadas com menos alucinações**
105
+
106
+ - Visualização da fragmentação de texto para permitir intervenção humana.
107
+ - Visualização rápida das referências chave e citações rastreáveis para apoiar respostas fundamentadas.
108
+
109
+ ### 🍔 **Compatibilidade com fontes de dados heterogêneas**
110
+
111
+ - Suporta Word, apresentações, excel, txt, imagens, cópias digitalizadas, dados estruturados, páginas da web e mais.
112
+
113
+ ### 🛀 **Fluxo de trabalho RAG automatizado e sem esforço**
114
+
115
+ - Orquestração RAG simplificada voltada tanto para negócios pessoais quanto grandes empresas.
116
+ - Modelos LLM e de incorporação configuráveis.
117
+ - Múltiplas recuperações emparelhadas com reclassificação fundida.
118
+ - APIs intuitivas para integração sem problemas com os negócios.
119
+
120
+ ## 🔎 Arquitetura do Sistema
121
+
122
+ <div align="center" style="margin-top:20px;margin-bottom:20px;">
123
+ <img src="https://github.com/infiniflow/ragflow/assets/12318111/d6ac5664-c237-4200-a7c2-a4a00691b485" width="1000"/>
124
+ </div>
125
+
126
+ ## 🎬 Primeiros Passos
127
+
128
+ ### 📝 Pré-requisitos
129
+
130
+ - CPU >= 4 núcleos
131
+ - RAM >= 16 GB
132
+ - Disco >= 50 GB
133
+ - Docker >= 24.0.0 & Docker Compose >= v2.26.1
134
+ > Se você não instalou o Docker na sua máquina local (Windows, Mac ou Linux), veja [Instalar Docker Engine](https://docs.docker.com/engine/install/).
135
+
136
+ ### 🚀 Iniciar o servidor
137
+
138
+ 1. Certifique-se de que `vm.max_map_count` >= 262144:
139
+
140
+ > Para verificar o valor de `vm.max_map_count`:
141
+ >
142
+ > ```bash
143
+ > $ sysctl vm.max_map_count
144
+ > ```
145
+ >
146
+ > Se necessário, redefina `vm.max_map_count` para um valor de pelo menos 262144:
147
+ >
148
+ > ```bash
149
+ > # Neste caso, defina para 262144:
150
+ > $ sudo sysctl -w vm.max_map_count=262144
151
+ > ```
152
+ >
153
+ > Essa mudança será resetada após a reinicialização do sistema. Para garantir que a alteração permaneça permanente, adicione ou atualize o valor de `vm.max_map_count` em **/etc/sysctl.conf**:
154
+ >
155
+ > ```bash
156
+ > vm.max_map_count=262144
157
+ > ```
158
+
159
+ 2. Clone o repositório:
160
+
161
+ ```bash
162
+ $ git clone https://github.com/infiniflow/ragflow.git
163
+ ```
164
+
165
+ 3. Inicie o servidor usando as imagens Docker pré-compiladas:
166
+
167
+ > O comando abaixo baixa a edição `v0.15.1-slim` da imagem Docker do RAGFlow. Consulte a tabela a seguir para descrições de diferentes edições do RAGFlow. Para baixar uma edição do RAGFlow diferente da `v0.15.1-slim`, atualize a variável `RAGFLOW_IMAGE` conforme necessário no **docker/.env** antes de usar `docker compose` para iniciar o servidor. Por exemplo: defina `RAGFLOW_IMAGE=infiniflow/ragflow:v0.15.1` para a edição completa `v0.15.1`.
168
+
169
+ ```bash
170
+ $ cd ragflow
171
+ $ docker compose -f docker/docker-compose.yml up -d
172
+ ```
173
+
174
+ | Tag da imagem RAGFlow | Tamanho da imagem (GB) | Possui modelos de incorporação? | Estável? |
175
+ | --------------------- | ---------------------- | ------------------------------- | ------------------------ |
176
+ | v0.15.1 | ~9 | :heavy_check_mark: | Lançamento estável |
177
+ | v0.15.1-slim | ~2 | ❌ | Lançamento estável |
178
+ | nightly | ~9 | :heavy_check_mark: | _Instável_ build noturno |
179
+ | nightly-slim | ~2 | ❌ | _Instável_ build noturno |
180
+
181
+ 4. Verifique o status do servidor após tê-lo iniciado:
182
+
183
+ ```bash
184
+ $ docker logs -f ragflow-server
185
+ ```
186
+
187
+ _O seguinte resultado confirma o lançamento bem-sucedido do sistema:_
188
+
189
+ ```bash
190
+ ____ ___ ______ ______ __
191
+ / __ \ / | / ____// ____// /____ _ __
192
+ / /_/ // /| | / / __ / /_ / // __ \| | /| / /
193
+ / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ /
194
+ /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/
195
+
196
+ * Rodando em todos os endereços (0.0.0.0)
197
+ * Rodando em http://127.0.0.1:9380
198
+ * Rodando em http://x.x.x.x:9380
199
+ INFO:werkzeug:Pressione CTRL+C para sair
200
+ ```
201
+
202
+ > Se você pular essa etapa de confirmação e acessar diretamente o RAGFlow, seu navegador pode exibir um erro `network anormal`, pois, nesse momento, seu RAGFlow pode não estar totalmente inicializado.
203
+
204
+ 5. No seu navegador, insira o endereço IP do seu servidor e faça login no RAGFlow.
205
+
206
+ > Com as configurações padrão, você só precisa digitar `http://IP_DO_SEU_MÁQUINA` (**sem** o número da porta), pois a porta HTTP padrão `80` pode ser omitida ao usar as configurações padrão.
207
+
208
+ 6. Em [service_conf.yaml.template](./docker/service_conf.yaml.template), selecione a fábrica LLM desejada em `user_default_llm` e atualize o campo `API_KEY` com a chave de API correspondente.
209
+
210
+ > Consulte [llm_api_key_setup](https://ragflow.io/docs/dev/llm_api_key_setup) para mais informações.
211
+
212
+ _O show está no ar!_
213
+
214
+ ## 🔧 Configurações
215
+
216
+ Quando se trata de configurações do sistema, você precisará gerenciar os seguintes arquivos:
217
+
218
+ - [.env](./docker/.env): Contém as configurações fundamentais para o sistema, como `SVR_HTTP_PORT`, `MYSQL_PASSWORD` e `MINIO_PASSWORD`.
219
+ - [service_conf.yaml.template](./docker/service_conf.yaml.template): Configura os serviços de back-end. As variáveis de ambiente neste arquivo serão automaticamente preenchidas quando o contêiner Docker for iniciado. Quaisquer variáveis de ambiente definidas dentro do contêiner Docker estarão disponíveis para uso, permitindo personalizar o comportamento do serviço com base no ambiente de implantação.
220
+ - [docker-compose.yml](./docker/docker-compose.yml): O sistema depende do [docker-compose.yml](./docker/docker-compose.yml) para iniciar.
221
+
222
+ > O arquivo [./docker/README](./docker/README.md) fornece uma descrição detalhada das configurações do ambiente e dos serviços, que podem ser usadas como `${ENV_VARS}` no arquivo [service_conf.yaml.template](./docker/service_conf.yaml.template).
223
+
224
+ Para atualizar a porta HTTP de serviço padrão (80), vá até [docker-compose.yml](./docker/docker-compose.yml) e altere `80:80` para `<SUA_PORTA_DE_SERVIÇO>:80`.
225
+
226
+ Atualizações nas configurações acima exigem um reinício de todos os contêineres para que tenham efeito:
227
+
228
+ > ```bash
229
+ > $ docker compose -f docker/docker-compose.yml up -d
230
+ > ```
231
+
232
+ ### Mudar o mecanismo de documentos de Elasticsearch para Infinity
233
+
234
+ O RAGFlow usa o Elasticsearch por padrão para armazenar texto completo e vetores. Para mudar para o [Infinity](https://github.com/infiniflow/infinity/), siga estas etapas:
235
+
236
+ 1. Pare todos os contêineres em execução:
237
+
238
+ ```bash
239
+ $ docker compose -f docker/docker-compose.yml down -v
240
+ ```
241
+
242
+ 2. Defina `DOC_ENGINE` no **docker/.env** para `infinity`.
243
+
244
+ 3. Inicie os contêineres:
245
+
246
+ ```bash
247
+ $ docker compose -f docker/docker-compose.yml up -d
248
+ ```
249
+
250
+ > [!ATENÇÃO]
251
+ > A mudança para o Infinity em uma máquina Linux/arm64 ainda não é oficialmente suportada.
252
+
253
+ ## 🔧 Criar uma imagem Docker sem modelos de incorporação
254
+
255
+ Esta imagem tem cerca de 2 GB de tamanho e depende de serviços externos de LLM e incorporação.
256
+
257
+ ```bash
258
+ git clone https://github.com/infiniflow/ragflow.git
259
+ cd ragflow/
260
+ docker build --build-arg LIGHTEN=1 -f Dockerfile -t infiniflow/ragflow:nightly-slim .
261
+ ```
262
+
263
+ ## 🔧 Criar uma imagem Docker incluindo modelos de incorporação
264
+
265
+ Esta imagem tem cerca de 9 GB de tamanho. Como inclui modelos de incorporação, depende apenas de serviços externos de LLM.
266
+
267
+ ```bash
268
+ git clone https://github.com/infiniflow/ragflow.git
269
+ cd ragflow/
270
+ docker build -f Dockerfile -t infiniflow/ragflow:nightly .
271
+ ```
272
+
273
+ ## 🔨 Lançar o serviço a partir do código-fonte para desenvolvimento
274
+
275
+ 1. Instale o `uv`, ou pule esta etapa se ele já estiver instalado:
276
+
277
+ ```bash
278
+ pipx install uv
279
+ ```
280
+
281
+ 2. Clone o código-fonte e instale as dependências Python:
282
+
283
+ ```bash
284
+ git clone https://github.com/infiniflow/ragflow.git
285
+ cd ragflow/
286
+ uv sync --python 3.10 --all-extras # instala os módulos Python dependentes do RAGFlow
287
+ ```
288
+
289
+ 3. Inicie os serviços dependentes (MinIO, Elasticsearch, Redis e MySQL) usando Docker Compose:
290
+
291
+ ```bash
292
+ docker compose -f docker/docker-compose-base.yml up -d
293
+ ```
294
+
295
+ Adicione a seguinte linha ao arquivo `/etc/hosts` para resolver todos os hosts especificados em **docker/.env** para `127.0.0.1`:
296
+
297
+ ```
298
+ 127.0.0.1 es01 infinity mysql minio redis
299
+ ```
300
+
301
+ 4. Se não conseguir acessar o HuggingFace, defina a variável de ambiente `HF_ENDPOINT` para usar um site espelho:
302
+
303
+ ```bash
304
+ export HF_ENDPOINT=https://hf-mirror.com
305
+ ```
306
+
307
+ 5. Lance o serviço de back-end:
308
+
309
+ ```bash
310
+ source .venv/bin/activate
311
+ export PYTHONPATH=$(pwd)
312
+ bash docker/launch_backend_service.sh
313
+ ```
314
+
315
+ 6. Instale as dependências do front-end:
316
+
317
+ ```bash
318
+ cd web
319
+ npm install
320
+ ```
321
+
322
+ 7. Lance o serviço de front-end:
323
+
324
+ ```bash
325
+ npm run dev
326
+ ```
327
+
328
+ _O seguinte resultado confirma o lançamento bem-sucedido do sistema:_
329
+
330
+ ![](https://github.com/user-attachments/assets/0daf462c-a24d-4496-a66f-92533534e187)
331
+
332
+ ## 📚 Documentação
333
+
334
+ - [Início rápido](https://ragflow.io/docs/dev/)
335
+ - [Guia do usuário](https://ragflow.io/docs/dev/category/guides)
336
+ - [Referências](https://ragflow.io/docs/dev/category/references)
337
+ - [FAQ](https://ragflow.io/docs/dev/faq)
338
+
339
+ ## 📜 Roadmap
340
+
341
+ Veja o [RAGFlow Roadmap 2025](https://github.com/infiniflow/ragflow/issues/4214)
342
+
343
+ ## 🏄 Comunidade
344
+
345
+ - [Discord](https://discord.gg/4XxujFgUN7)
346
+ - [Twitter](https://twitter.com/infiniflowai)
347
+ - [GitHub Discussions](https://github.com/orgs/infiniflow/discussions)
348
+
349
+ ## 🙌 Contribuindo
350
+
351
+ O RAGFlow prospera por meio da colaboração de código aberto. Com esse espírito, abraçamos contribuições diversas da comunidade.
352
+ Se você deseja fazer parte, primeiro revise nossas [Diretrizes de Contribuição](./CONTRIBUTING.md).
README_tzh.md CHANGED
@@ -9,7 +9,8 @@
9
  <a href="./README_zh.md">简体中文</a> |
10
  <a href="./README_ja.md">日本語</a> |
11
  <a href="./README_ko.md">한국어</a> |
12
- <a href="./README_id.md">Bahasa Indonesia</a>
 
13
  </p>
14
 
15
  <p align="center">
@@ -30,7 +31,6 @@
30
  </a>
31
  </p>
32
 
33
-
34
  <h4 align="center">
35
  <a href="https://ragflow.io/docs/dev/">Document</a> |
36
  <a href="https://github.com/infiniflow/ragflow/issues/4214">Roadmap</a> |
@@ -45,13 +45,13 @@
45
 
46
  ## 🎮 Demo 試用
47
 
48
- 請登入網址 [https://demo.ragflow.io](https://demo.ragflow.io) 試用 demo。
 
49
  <div align="center" style="margin-top:20px;margin-bottom:20px;">
50
  <img src="https://github.com/infiniflow/ragflow/assets/7248/2f6baa3e-1092-4f11-866d-36f6a9d075e5" width="1200"/>
51
  <img src="https://github.com/user-attachments/assets/504bbbf1-c9f7-4d83-8cc5-e9cb63c26db6" width="1200"/>
52
  </div>
53
 
54
-
55
  ## 🔥 近期更新
56
 
57
  - 2024-12-18 升級了 Deepdoc 的文檔佈局分析模型。
@@ -62,12 +62,13 @@
62
  - 2024-08-02 支持 GraphRAG 啟發於 [graphrag](https://github.com/microsoft/graphrag) 和心智圖。
63
 
64
  ## 🎉 關注項目
65
- ⭐️點擊右上角的 Star 追蹤RAGFlow,可以取得最新發布的即時通知 !🌟
 
 
66
  <div align="center" style="margin-top:20px;margin-bottom:20px;">
67
  <img src="https://github.com/user-attachments/assets/18c9707e-b8aa-4caf-a154-037089c105ba" width="1200"/>
68
  </div>
69
 
70
-
71
  ## 🌟 主要功能
72
 
73
  ### 🍭 **"Quality in, quality out"**
@@ -102,7 +103,7 @@
102
  <img src="https://github.com/infiniflow/ragflow/assets/12318111/d6ac5664-c237-4200-a7c2-a4a00691b485" width="1000"/>
103
  </div>
104
 
105
- ## 🎬快速開始
106
 
107
  ### 📝 前提條件
108
 
@@ -144,6 +145,7 @@
144
  3. 進入 **docker** 資料夾,利用事先編譯好的 Docker 映像啟動伺服器:
145
 
146
  > 執行以下指令會自動下載 RAGFlow slim Docker 映像 `v0.15.1-slim`。請參考下表查看不同 Docker 發行版的說明。如需下載不同於 `v0.15.1-slim` 的 Docker 映像,請在執行 `docker compose` 啟動服務之前先更新 **docker/.env** 檔案內的 `RAGFLOW_IMAGE` 變數。例如,你可以透過設定 `RAGFLOW_IMAGE=infiniflow/ragflow:v0.15.1` 來下載 RAGFlow 鏡像的 `v0.15.1` 完整發行版。
 
147
  ```bash
148
  $ cd ragflow
149
  $ docker compose -f docker/docker-compose.yml up -d
@@ -153,11 +155,12 @@
153
  | ----------------- | --------------- | --------------------- | ------------------------ |
154
  | v0.15.1 | &approx;9 | :heavy_check_mark: | Stable release |
155
  | v0.15.1-slim | &approx;2 | ❌ | Stable release |
156
- | nightly | &approx;9 | :heavy_check_mark: | *Unstable* nightly build |
157
- | nightly-slim | &approx;2 | ❌ | *Unstable* nightly build |
158
 
159
- > [!TIP]
160
  > 如果你遇到 Docker 映像檔拉不下來的問題,可以在 **docker/.env** 檔案內根據變數 `RAGFLOW_IMAGE` 的註解提示選擇華為雲或阿里雲的對應映像。
 
161
  > - 華為雲鏡像名:`swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow`
162
  > - 阿里雲鏡像名:`registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow`
163
 
@@ -170,17 +173,18 @@
170
  _出現以下介面提示說明伺服器啟動成功:_
171
 
172
  ```bash
173
- ____ ___ ______ ______ __
174
  / __ \ / | / ____// ____// /____ _ __
175
  / /_/ // /| | / / __ / /_ / // __ \| | /| / /
176
- / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ /
177
- /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/
178
 
179
  * Running on all addresses (0.0.0.0)
180
  * Running on http://127.0.0.1:9380
181
  * Running on http://x.x.x.x:9380
182
  INFO:werkzeug:Press CTRL+C to quit
183
  ```
 
184
  > 如果您跳過這一步驟系統確認步驟就登入 RAGFlow,你的瀏覽器有可能會提示 `network anormal` 或 `網路異常`,因為 RAGFlow 可能並未完全啟動成功。
185
 
186
  5. 在你的瀏覽器中輸入你的伺服器對應的 IP 位址並登入 RAGFlow。
@@ -205,7 +209,7 @@
205
 
206
  > [./docker/README](./docker/README.md) 解釋了 [service_conf.yaml.template](./docker/service_conf.yaml.template) 用到的環境變數設定和服務配置。
207
 
208
- 如需更新預設的HTTP 服務連接埠(80), 可以在[docker-compose.yml](./docker/docker-compose.yml) 檔案中將配置`80:80` 改為`<YOUR_SERVING_PORT>:80` 。
209
 
210
  > 所有系統配置都需要透過系統重新啟動生效:
211
  >
@@ -234,7 +238,6 @@ RAGFlow 預設使用 Elasticsearch 儲存文字和向量資料. 如果要切換
234
  > [!WARNING]
235
  > Infinity 目前官方並未正式支援在 Linux/arm64 架構下的機器上運行.
236
 
237
-
238
  ## 🔧 原始碼編譯 Docker 映像(不含 embedding 模型)
239
 
240
  本 Docker 映像大小約 2 GB 左右並且依賴外部的大模型和 embedding 服務。
@@ -258,12 +261,14 @@ docker build --build-arg NEED_MIRROR=1 -f Dockerfile -t infiniflow/ragflow:night
258
  ## 🔨 以原始碼啟動服務
259
 
260
  1. 安裝 uv。如已安裝,可跳過此步驟:
 
261
  ```bash
262
  pipx install uv
263
  export UV_INDEX=https://pypi.tuna.tsinghua.edu.cn/simple
264
  ```
265
 
266
  2. 下載原始碼並安裝 Python 依賴:
 
267
  ```bash
268
  git clone https://github.com/infiniflow/ragflow.git
269
  cd ragflow/
@@ -271,41 +276,47 @@ docker build --build-arg NEED_MIRROR=1 -f Dockerfile -t infiniflow/ragflow:night
271
  ```
272
 
273
  3. 透過 Docker Compose 啟動依賴的服務(MinIO, Elasticsearch, Redis, and MySQL):
 
274
  ```bash
275
  docker compose -f docker/docker-compose-base.yml up -d
276
  ```
277
 
278
  在 `/etc/hosts` 中加入以下程式碼,將 **conf/service_conf.yaml** 檔案中的所有 host 位址都解析為 `127.0.0.1`:
 
279
  ```
280
  127.0.0.1 es01 infinity mysql minio redis
281
  ```
282
 
283
- 4. 如果無法存取 HuggingFace,可以把環境變數 `HF_ENDPOINT` 設為對應的鏡像網站:
284
-
285
  ```bash
286
  export HF_ENDPOINT=https://hf-mirror.com
287
  ```
288
 
289
  5.啟動後端服務:
290
- 『`bash
291
- source .venv/bin/activate
292
- export PYTHONPATH=$(pwd)
293
- bash docker/launch_backend_service.sh
294
- ```
 
295
 
296
  6. 安裝前端依賴:
297
- 『`bash
298
- cd web
299
- npm install
300
- ```
 
301
  7. 啟動前端服務:
302
  『`bash
303
  npm run dev
 
304
  ```
305
 
306
  以下界面說明系統已成功啟動:_
307
 
308
  ![](https://github.com/user-attachments/assets/0daf462c-a24d-4496-a66f-92533534e187)
 
309
 
310
  ## 📚 技術文檔
311
 
@@ -339,4 +350,3 @@ RAGFlow 只有透過開源協作才能蓬勃發展。秉持這項精神,我們
339
  <p align="center">
340
  <img src="https://github.com/infiniflow/ragflow/assets/7248/bccf284f-46f2-4445-9809-8f1030fb7585" width=50% height=50%>
341
  </p>
342
-
 
9
  <a href="./README_zh.md">简体中文</a> |
10
  <a href="./README_ja.md">日本語</a> |
11
  <a href="./README_ko.md">한국어</a> |
12
+ <a href="./README_id.md">Bahasa Indonesia</a> |
13
+ <a href="/README_pt_br.md">Português (Brasil)</a>
14
  </p>
15
 
16
  <p align="center">
 
31
  </a>
32
  </p>
33
 
 
34
  <h4 align="center">
35
  <a href="https://ragflow.io/docs/dev/">Document</a> |
36
  <a href="https://github.com/infiniflow/ragflow/issues/4214">Roadmap</a> |
 
45
 
46
  ## 🎮 Demo 試用
47
 
48
+ 請登入網址 [https://demo.ragflow.io](https://demo.ragflow.io) 試用 demo。
49
+
50
  <div align="center" style="margin-top:20px;margin-bottom:20px;">
51
  <img src="https://github.com/infiniflow/ragflow/assets/7248/2f6baa3e-1092-4f11-866d-36f6a9d075e5" width="1200"/>
52
  <img src="https://github.com/user-attachments/assets/504bbbf1-c9f7-4d83-8cc5-e9cb63c26db6" width="1200"/>
53
  </div>
54
 
 
55
  ## 🔥 近期更新
56
 
57
  - 2024-12-18 升級了 Deepdoc 的文檔佈局分析模型。
 
62
  - 2024-08-02 支持 GraphRAG 啟發於 [graphrag](https://github.com/microsoft/graphrag) 和心智圖。
63
 
64
  ## 🎉 關注項目
65
+
66
+ ⭐️ 點擊右上角的 Star 追蹤 RAGFlow,可以取得最新發布的即時通知 !🌟
67
+
68
  <div align="center" style="margin-top:20px;margin-bottom:20px;">
69
  <img src="https://github.com/user-attachments/assets/18c9707e-b8aa-4caf-a154-037089c105ba" width="1200"/>
70
  </div>
71
 
 
72
  ## 🌟 主要功能
73
 
74
  ### 🍭 **"Quality in, quality out"**
 
103
  <img src="https://github.com/infiniflow/ragflow/assets/12318111/d6ac5664-c237-4200-a7c2-a4a00691b485" width="1000"/>
104
  </div>
105
 
106
+ ## 🎬 快速開始
107
 
108
  ### 📝 前提條件
109
 
 
145
  3. 進入 **docker** 資料夾,利用事先編譯好的 Docker 映像啟動伺服器:
146
 
147
  > 執行以下指令會自動下載 RAGFlow slim Docker 映像 `v0.15.1-slim`。請參考下表查看不同 Docker 發行版的說明。如需下載不同於 `v0.15.1-slim` 的 Docker 映像,請在執行 `docker compose` 啟動服務之前先更新 **docker/.env** 檔案內的 `RAGFLOW_IMAGE` 變數。例如,你可以透過設定 `RAGFLOW_IMAGE=infiniflow/ragflow:v0.15.1` 來下載 RAGFlow 鏡像的 `v0.15.1` 完整發行版。
148
+
149
  ```bash
150
  $ cd ragflow
151
  $ docker compose -f docker/docker-compose.yml up -d
 
155
  | ----------------- | --------------- | --------------------- | ------------------------ |
156
  | v0.15.1 | &approx;9 | :heavy_check_mark: | Stable release |
157
  | v0.15.1-slim | &approx;2 | ❌ | Stable release |
158
+ | nightly | &approx;9 | :heavy_check_mark: | _Unstable_ nightly build |
159
+ | nightly-slim | &approx;2 | ❌ | _Unstable_ nightly build |
160
 
161
+ > [!TIP]
162
  > 如果你遇到 Docker 映像檔拉不下來的問題,可以在 **docker/.env** 檔案內根據變數 `RAGFLOW_IMAGE` 的註解提示選擇華為雲或阿里雲的對應映像。
163
+ >
164
  > - 華為雲鏡像名:`swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow`
165
  > - 阿里雲鏡像名:`registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow`
166
 
 
173
  _出現以下介面提示說明伺服器啟動成功:_
174
 
175
  ```bash
176
+ ____ ___ ______ ______ __
177
  / __ \ / | / ____// ____// /____ _ __
178
  / /_/ // /| | / / __ / /_ / // __ \| | /| / /
179
+ / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ /
180
+ /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/
181
 
182
  * Running on all addresses (0.0.0.0)
183
  * Running on http://127.0.0.1:9380
184
  * Running on http://x.x.x.x:9380
185
  INFO:werkzeug:Press CTRL+C to quit
186
  ```
187
+
188
  > 如果您跳過這一步驟系統確認步驟就登入 RAGFlow,你的瀏覽器有可能會提示 `network anormal` 或 `網路異常`,因為 RAGFlow 可能並未完全啟動成功。
189
 
190
  5. 在你的瀏覽器中輸入你的伺服器對應的 IP 位址並登入 RAGFlow。
 
209
 
210
  > [./docker/README](./docker/README.md) 解釋了 [service_conf.yaml.template](./docker/service_conf.yaml.template) 用到的環境變數設定和服務配置。
211
 
212
+ 如需更新預設的 HTTP 服務連接埠(80), 可以在[docker-compose.yml](./docker/docker-compose.yml) 檔案中將配置`80:80` 改為`<YOUR_SERVING_PORT>:80` 。
213
 
214
  > 所有系統配置都需要透過系統重新啟動生效:
215
  >
 
238
  > [!WARNING]
239
  > Infinity 目前官方並未正式支援在 Linux/arm64 架構下的機器上運行.
240
 
 
241
  ## 🔧 原始碼編譯 Docker 映像(不含 embedding 模型)
242
 
243
  本 Docker 映像大小約 2 GB 左右並且依賴外部的大模型和 embedding 服務。
 
261
  ## 🔨 以原始碼啟動服務
262
 
263
  1. 安裝 uv。如已安裝,可跳過此步驟:
264
+
265
  ```bash
266
  pipx install uv
267
  export UV_INDEX=https://pypi.tuna.tsinghua.edu.cn/simple
268
  ```
269
 
270
  2. 下載原始碼並安裝 Python 依賴:
271
+
272
  ```bash
273
  git clone https://github.com/infiniflow/ragflow.git
274
  cd ragflow/
 
276
  ```
277
 
278
  3. 透過 Docker Compose 啟動依賴的服務(MinIO, Elasticsearch, Redis, and MySQL):
279
+
280
  ```bash
281
  docker compose -f docker/docker-compose-base.yml up -d
282
  ```
283
 
284
  在 `/etc/hosts` 中加入以下程式碼,將 **conf/service_conf.yaml** 檔案中的所有 host 位址都解析為 `127.0.0.1`:
285
+
286
  ```
287
  127.0.0.1 es01 infinity mysql minio redis
288
  ```
289
 
290
+ 4. 如果無法存取 HuggingFace,可以把環境變數 `HF_ENDPOINT` 設為對應的鏡像網站:
291
+
292
  ```bash
293
  export HF_ENDPOINT=https://hf-mirror.com
294
  ```
295
 
296
  5.啟動後端服務:
297
+ 『`bash
298
+ source .venv/bin/activate
299
+ export PYTHONPATH=$(pwd)
300
+ bash docker/launch_backend_service.sh
301
+
302
+ ```
303
 
304
  6. 安裝前端依賴:
305
+ 『`bash
306
+ cd web
307
+ npm install
308
+ ```
309
+
310
  7. 啟動前端服務:
311
  『`bash
312
  npm run dev
313
+
314
  ```
315
 
316
  以下界面說明系統已成功啟動:_
317
 
318
  ![](https://github.com/user-attachments/assets/0daf462c-a24d-4496-a66f-92533534e187)
319
+ ```
320
 
321
  ## 📚 技術文檔
322
 
 
350
  <p align="center">
351
  <img src="https://github.com/infiniflow/ragflow/assets/7248/bccf284f-46f2-4445-9809-8f1030fb7585" width=50% height=50%>
352
  </p>
 
README_zh.md CHANGED
@@ -9,7 +9,8 @@
9
  <a href="./README_zh.md">简体中文</a> |
10
  <a href="./README_ja.md">日本語</a> |
11
  <a href="./README_ko.md">한국어</a> |
12
- <a href="./README_id.md">Bahasa Indonesia</a>
 
13
  </p>
14
 
15
  <p align="center">
@@ -30,7 +31,6 @@
30
  </a>
31
  </p>
32
 
33
-
34
  <h4 align="center">
35
  <a href="https://ragflow.io/docs/dev/">Document</a> |
36
  <a href="https://github.com/infiniflow/ragflow/issues/4214">Roadmap</a> |
@@ -46,12 +46,12 @@
46
  ## 🎮 Demo 试用
47
 
48
  请登录网址 [https://demo.ragflow.io](https://demo.ragflow.io) 试用 demo。
 
49
  <div align="center" style="margin-top:20px;margin-bottom:20px;">
50
  <img src="https://github.com/infiniflow/ragflow/assets/7248/2f6baa3e-1092-4f11-866d-36f6a9d075e5" width="1200"/>
51
  <img src="https://github.com/user-attachments/assets/504bbbf1-c9f7-4d83-8cc5-e9cb63c26db6" width="1200"/>
52
  </div>
53
 
54
-
55
  ## 🔥 近期更新
56
 
57
  - 2024-12-18 升级了 Deepdoc 的文档布局分析模型。
@@ -62,12 +62,13 @@
62
  - 2024-08-02 支持 GraphRAG 启发于 [graphrag](https://github.com/microsoft/graphrag) 和思维导图。
63
 
64
  ## 🎉 关注项目
65
- ⭐️点击右上角的 Star 关注RAGFlow,可以获取最新发布的实时通知 !🌟
 
 
66
  <div align="center" style="margin-top:20px;margin-bottom:20px;">
67
  <img src="https://github.com/user-attachments/assets/18c9707e-b8aa-4caf-a154-037089c105ba" width="1200"/>
68
  </div>
69
 
70
-
71
  ## 🌟 主要功能
72
 
73
  ### 🍭 **"Quality in, quality out"**
@@ -154,11 +155,12 @@
154
  | ----------------- | --------------- | --------------------- | ------------------------ |
155
  | v0.15.1 | &approx;9 | :heavy_check_mark: | Stable release |
156
  | v0.15.1-slim | &approx;2 | ❌ | Stable release |
157
- | nightly | &approx;9 | :heavy_check_mark: | *Unstable* nightly build |
158
- | nightly-slim | &approx;2 | ❌ | *Unstable* nightly build |
159
 
160
- > [!TIP]
161
  > 如果你遇到 Docker 镜像拉不下来的问题,可以在 **docker/.env** 文件内根据变量 `RAGFLOW_IMAGE` 的注释提示选择华为云或者阿里云的相应镜像。
 
162
  > - 华为云镜像名:`swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow`
163
  > - 阿里云镜像名:`registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow`
164
 
@@ -171,17 +173,18 @@
171
  _出现以下界面提示说明服务器启动成功:_
172
 
173
  ```bash
174
- ____ ___ ______ ______ __
175
  / __ \ / | / ____// ____// /____ _ __
176
  / /_/ // /| | / / __ / /_ / // __ \| | /| / /
177
- / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ /
178
- /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/
179
 
180
  * Running on all addresses (0.0.0.0)
181
  * Running on http://127.0.0.1:9380
182
  * Running on http://x.x.x.x:9380
183
  INFO:werkzeug:Press CTRL+C to quit
184
  ```
 
185
  > 如果您跳过这一步系统确认步骤就登录 RAGFlow,你的浏览器有可能会提示 `network anormal` 或 `网络异常`,因为 RAGFlow 可能并未完全启动成功。
186
 
187
  5. 在你的浏览器中输入你的服务器对应的 IP 地址并登录 RAGFlow。
@@ -232,10 +235,9 @@ RAGFlow 默认使用 Elasticsearch 存储文本和向量数据. 如果要切换
232
  $ docker compose -f docker/docker-compose.yml up -d
233
  ```
234
 
235
- > [!WARNING]
236
  > Infinity 目前官方并未正式支持在 Linux/arm64 架构下的机器上运行.
237
 
238
-
239
  ## 🔧 源码编译 Docker 镜像(不含 embedding 模型)
240
 
241
  本 Docker 镜像大小约 2 GB 左右并且依赖外部的大模型和 embedding 服务。
@@ -258,53 +260,59 @@ docker build --build-arg NEED_MIRROR=1 -f Dockerfile -t infiniflow/ragflow:night
258
 
259
  ## 🔨 以源代码启动服务
260
 
261
- 1. 安装 uv。如已经安装,可跳过本步骤:
 
262
  ```bash
263
  pipx install uv
264
  export UV_INDEX=https://pypi.tuna.tsinghua.edu.cn/simple
265
  ```
266
 
267
- 2. 下载源代码并安装 Python 依赖:
 
268
  ```bash
269
  git clone https://github.com/infiniflow/ragflow.git
270
  cd ragflow/
271
  uv sync --python 3.10 --all-extras # install RAGFlow dependent python modules
272
  ```
273
 
274
- 3. 通过 Docker Compose 启动依赖的服务(MinIO, Elasticsearch, Redis, and MySQL):
 
275
  ```bash
276
  docker compose -f docker/docker-compose-base.yml up -d
277
  ```
278
 
279
- 在 `/etc/hosts` 中添加以下代码,将 **conf/service_conf.yaml** 文件中的所有 host 地址都解析为 `127.0.0.1`:
 
280
  ```
281
  127.0.0.1 es01 infinity mysql minio redis
282
- ```
 
 
283
 
284
- 4. 如果无法访问 HuggingFace,可以把环境变量 `HF_ENDPOINT` 设成相应的镜像站点:
285
-
286
  ```bash
287
  export HF_ENDPOINT=https://hf-mirror.com
288
  ```
289
 
290
- 5. 启动后端服务:
 
291
  ```bash
292
  source .venv/bin/activate
293
  export PYTHONPATH=$(pwd)
294
  bash docker/launch_backend_service.sh
295
  ```
296
 
297
- 6. 安装前端依赖:
298
  ```bash
299
  cd web
300
  npm install
301
- ```
302
- 7. 启动前端服务:
 
303
  ```bash
304
- npm run dev
305
- ```
306
 
307
- _以下界面说明系统已经成功启动:_
308
 
309
  ![](https://github.com/user-attachments/assets/0daf462c-a24d-4496-a66f-92533534e187)
310
 
@@ -340,4 +348,3 @@ RAGFlow 只有通过开源协作才能蓬勃发展。秉持这一精神,我们
340
  <p align="center">
341
  <img src="https://github.com/infiniflow/ragflow/assets/7248/bccf284f-46f2-4445-9809-8f1030fb7585" width=50% height=50%>
342
  </p>
343
-
 
9
  <a href="./README_zh.md">简体中文</a> |
10
  <a href="./README_ja.md">日本語</a> |
11
  <a href="./README_ko.md">한국어</a> |
12
+ <a href="./README_id.md">Bahasa Indonesia</a> |
13
+ <a href="/README_pt_br.md">Português (Brasil)</a>
14
  </p>
15
 
16
  <p align="center">
 
31
  </a>
32
  </p>
33
 
 
34
  <h4 align="center">
35
  <a href="https://ragflow.io/docs/dev/">Document</a> |
36
  <a href="https://github.com/infiniflow/ragflow/issues/4214">Roadmap</a> |
 
46
  ## 🎮 Demo 试用
47
 
48
  请登录网址 [https://demo.ragflow.io](https://demo.ragflow.io) 试用 demo。
49
+
50
  <div align="center" style="margin-top:20px;margin-bottom:20px;">
51
  <img src="https://github.com/infiniflow/ragflow/assets/7248/2f6baa3e-1092-4f11-866d-36f6a9d075e5" width="1200"/>
52
  <img src="https://github.com/user-attachments/assets/504bbbf1-c9f7-4d83-8cc5-e9cb63c26db6" width="1200"/>
53
  </div>
54
 
 
55
  ## 🔥 近期更新
56
 
57
  - 2024-12-18 升级了 Deepdoc 的文档布局分析模型。
 
62
  - 2024-08-02 支持 GraphRAG 启发于 [graphrag](https://github.com/microsoft/graphrag) 和思维导图。
63
 
64
  ## 🎉 关注项目
65
+
66
+ ⭐️ 点击右上角的 Star 关注 RAGFlow,可以获取最新发布的实时通知 !🌟
67
+
68
  <div align="center" style="margin-top:20px;margin-bottom:20px;">
69
  <img src="https://github.com/user-attachments/assets/18c9707e-b8aa-4caf-a154-037089c105ba" width="1200"/>
70
  </div>
71
 
 
72
  ## 🌟 主要功能
73
 
74
  ### 🍭 **"Quality in, quality out"**
 
155
  | ----------------- | --------------- | --------------------- | ------------------------ |
156
  | v0.15.1 | &approx;9 | :heavy_check_mark: | Stable release |
157
  | v0.15.1-slim | &approx;2 | ❌ | Stable release |
158
+ | nightly | &approx;9 | :heavy_check_mark: | _Unstable_ nightly build |
159
+ | nightly-slim | &approx;2 | ❌ | _Unstable_ nightly build |
160
 
161
+ > [!TIP]
162
  > 如果你遇到 Docker 镜像拉不下来的问题,可以在 **docker/.env** 文件内根据变量 `RAGFLOW_IMAGE` 的注释提示选择华为云或者阿里云的相应镜像。
163
+ >
164
  > - 华为云镜像名:`swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow`
165
  > - 阿里云镜像名:`registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow`
166
 
 
173
  _出现以下界面提示说明服务器启动成功:_
174
 
175
  ```bash
176
+ ____ ___ ______ ______ __
177
  / __ \ / | / ____// ____// /____ _ __
178
  / /_/ // /| | / / __ / /_ / // __ \| | /| / /
179
+ / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ /
180
+ /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/
181
 
182
  * Running on all addresses (0.0.0.0)
183
  * Running on http://127.0.0.1:9380
184
  * Running on http://x.x.x.x:9380
185
  INFO:werkzeug:Press CTRL+C to quit
186
  ```
187
+
188
  > 如果您跳过这一步系统确认步骤就登录 RAGFlow,你的浏览器有可能会提示 `network anormal` 或 `网络异常`,因为 RAGFlow 可能并未完全启动成功。
189
 
190
  5. 在你的浏览器中输入你的服务器对应的 IP 地址并登录 RAGFlow。
 
235
  $ docker compose -f docker/docker-compose.yml up -d
236
  ```
237
 
238
+ > [!WARNING]
239
  > Infinity 目前官方并未正式支持在 Linux/arm64 架构下的机器上运行.
240
 
 
241
  ## 🔧 源码编译 Docker 镜像(不含 embedding 模型)
242
 
243
  本 Docker 镜像大小约 2 GB 左右并且依赖外部的大模型和 embedding 服务。
 
260
 
261
  ## 🔨 以源代码启动服务
262
 
263
+ 1. 安装 uv。如已经安装,可跳过本步骤:
264
+
265
  ```bash
266
  pipx install uv
267
  export UV_INDEX=https://pypi.tuna.tsinghua.edu.cn/simple
268
  ```
269
 
270
+ 2. 下载源代码并安装 Python 依赖:
271
+
272
  ```bash
273
  git clone https://github.com/infiniflow/ragflow.git
274
  cd ragflow/
275
  uv sync --python 3.10 --all-extras # install RAGFlow dependent python modules
276
  ```
277
 
278
+ 3. 通过 Docker Compose 启动依赖的服务(MinIO, Elasticsearch, Redis, and MySQL):
279
+
280
  ```bash
281
  docker compose -f docker/docker-compose-base.yml up -d
282
  ```
283
 
284
+ 在 `/etc/hosts` 中添加以下代码,将 **conf/service_conf.yaml** 文件中的所有 host 地址都解析为 `127.0.0.1`:
285
+
286
  ```
287
  127.0.0.1 es01 infinity mysql minio redis
288
+ ```
289
+
290
+ 4. 如果无法访问 HuggingFace,可以把环境变量 `HF_ENDPOINT` 设成相应的镜像站点:
291
 
 
 
292
  ```bash
293
  export HF_ENDPOINT=https://hf-mirror.com
294
  ```
295
 
296
+ 5. 启动后端服务:
297
+
298
  ```bash
299
  source .venv/bin/activate
300
  export PYTHONPATH=$(pwd)
301
  bash docker/launch_backend_service.sh
302
  ```
303
 
304
+ 6. 安装前端依赖:
305
  ```bash
306
  cd web
307
  npm install
308
+ ```
309
+ 7. 启动前端服务:
310
+
311
  ```bash
312
+ npm run dev
313
+ ```
314
 
315
+ _以下界面说明系统已经成功启动:_
316
 
317
  ![](https://github.com/user-attachments/assets/0daf462c-a24d-4496-a66f-92533534e187)
318
 
 
348
  <p align="center">
349
  <img src="https://github.com/infiniflow/ragflow/assets/7248/bccf284f-46f2-4445-9809-8f1030fb7585" width=50% height=50%>
350
  </p>
 
web/src/constants/common.ts CHANGED
@@ -47,6 +47,7 @@ export const LanguageList = [
47
  'Spanish',
48
  'Vietnamese',
49
  'Japanese',
 
50
  ];
51
 
52
  export const LanguageMap = {
@@ -57,6 +58,7 @@ export const LanguageMap = {
57
  Spanish: 'Español',
58
  Vietnamese: 'Tiếng việt',
59
  Japanese: '日本語',
 
60
  };
61
 
62
  export const LanguageTranslationMap = {
@@ -67,6 +69,7 @@ export const LanguageTranslationMap = {
67
  Spanish: 'es',
68
  Vietnamese: 'vi',
69
  Japanese: 'ja',
 
70
  };
71
 
72
  export enum FileMimeType {
 
47
  'Spanish',
48
  'Vietnamese',
49
  'Japanese',
50
+ 'Portuguese BR',
51
  ];
52
 
53
  export const LanguageMap = {
 
58
  Spanish: 'Español',
59
  Vietnamese: 'Tiếng việt',
60
  Japanese: '日本語',
61
+ 'Portuguese BR': 'Português BR',
62
  };
63
 
64
  export const LanguageTranslationMap = {
 
69
  Spanish: 'es',
70
  Vietnamese: 'vi',
71
  Japanese: 'ja',
72
+ 'Portuguese BR': 'pt-br',
73
  };
74
 
75
  export enum FileMimeType {
web/src/locales/config.ts CHANGED
@@ -6,6 +6,7 @@ import translation_en from './en';
6
  import translation_es from './es';
7
  import translation_id from './id';
8
  import translation_ja from './ja';
 
9
  import { createTranslationTable, flattenObject } from './until';
10
  import translation_vi from './vi';
11
  import translation_zh from './zh';
@@ -19,12 +20,14 @@ const resources = {
19
  ja: translation_ja,
20
  es: translation_es,
21
  vi: translation_vi,
 
22
  };
23
  const enFlattened = flattenObject(translation_en);
24
  const viFlattened = flattenObject(translation_vi);
25
  const esFlattened = flattenObject(translation_es);
26
  const zhFlattened = flattenObject(translation_zh);
27
  const jaFlattened = flattenObject(translation_ja);
 
28
  const zh_traditionalFlattened = flattenObject(translation_zh_traditional);
29
  export const translationTable = createTranslationTable(
30
  [
@@ -34,8 +37,9 @@ export const translationTable = createTranslationTable(
34
  zhFlattened,
35
  zh_traditionalFlattened,
36
  jaFlattened,
 
37
  ],
38
- ['English', 'Vietnamese', 'Spanish', 'zh', 'zh-TRADITIONAL', 'ja'],
39
  );
40
  i18n
41
  .use(initReactI18next)
@@ -44,7 +48,7 @@ i18n
44
  detection: {
45
  lookupLocalStorage: 'lng',
46
  },
47
- supportedLngs: ['en', 'zh', 'zh-TRADITIONAL', 'id', 'es', 'vi', 'ja'],
48
  resources,
49
  fallbackLng: 'en',
50
  interpolation: {
 
6
  import translation_es from './es';
7
  import translation_id from './id';
8
  import translation_ja from './ja';
9
+ import translation_pt_br from './pt-br';
10
  import { createTranslationTable, flattenObject } from './until';
11
  import translation_vi from './vi';
12
  import translation_zh from './zh';
 
20
  ja: translation_ja,
21
  es: translation_es,
22
  vi: translation_vi,
23
+ 'pt-br': translation_pt_br,
24
  };
25
  const enFlattened = flattenObject(translation_en);
26
  const viFlattened = flattenObject(translation_vi);
27
  const esFlattened = flattenObject(translation_es);
28
  const zhFlattened = flattenObject(translation_zh);
29
  const jaFlattened = flattenObject(translation_ja);
30
+ const pt_brFlattened = flattenObject(translation_pt_br);
31
  const zh_traditionalFlattened = flattenObject(translation_zh_traditional);
32
  export const translationTable = createTranslationTable(
33
  [
 
37
  zhFlattened,
38
  zh_traditionalFlattened,
39
  jaFlattened,
40
+ pt_brFlattened,
41
  ],
42
+ ['English', 'Vietnamese', 'Spanish', 'zh', 'zh-TRADITIONAL', 'ja', 'pt-br'],
43
  );
44
  i18n
45
  .use(initReactI18next)
 
48
  detection: {
49
  lookupLocalStorage: 'lng',
50
  },
51
+ supportedLngs: ['en', 'zh', 'zh-TRADITIONAL', 'id', 'es', 'vi', 'ja', 'pt-br'],
52
  resources,
53
  fallbackLng: 'en',
54
  interpolation: {
web/src/locales/en.ts CHANGED
@@ -15,6 +15,7 @@ export default {
15
  edit: 'Edit',
16
  upload: 'Upload',
17
  english: 'English',
 
18
  chinese: 'Simplified Chinese',
19
  traditionalChinese: 'Traditional Chinese',
20
  language: 'Language',
 
15
  edit: 'Edit',
16
  upload: 'Upload',
17
  english: 'English',
18
+ portugeseBr: 'Portuguese (Brazil)',
19
  chinese: 'Simplified Chinese',
20
  traditionalChinese: 'Traditional Chinese',
21
  language: 'Language',
web/src/locales/es.ts CHANGED
@@ -16,6 +16,7 @@ export default {
16
  upload: 'Subir',
17
  english: 'Ingles',
18
  spanish: 'Español',
 
19
  chinese: 'Chino simplificado',
20
  traditionalChinese: 'Chino tradicional',
21
  language: 'Idioma',
 
16
  upload: 'Subir',
17
  english: 'Ingles',
18
  spanish: 'Español',
19
+ portugeseBr: 'Portugués (Brasil)',
20
  chinese: 'Chino simplificado',
21
  traditionalChinese: 'Chino tradicional',
22
  language: 'Idioma',
web/src/locales/id.ts CHANGED
@@ -16,6 +16,7 @@ export default {
16
  edit: 'Ubah',
17
  upload: 'Unggah',
18
  english: 'Inggris',
 
19
  chinese: 'Cina',
20
  traditionalChinese: 'Cina Tradisional',
21
  language: 'Bahasa',
 
16
  edit: 'Ubah',
17
  upload: 'Unggah',
18
  english: 'Inggris',
19
+ portugeseBr: 'Portugis (Brasil)',
20
  chinese: 'Cina',
21
  traditionalChinese: 'Cina Tradisional',
22
  language: 'Bahasa',
web/src/locales/ja.ts CHANGED
@@ -15,6 +15,7 @@ export default {
15
  edit: '編集',
16
  upload: 'アップロード',
17
  english: '英語',
 
18
  chinese: '中国語(簡体字)',
19
  traditionalChinese: '中国語(繁体字)',
20
  language: '言語',
 
15
  edit: '編集',
16
  upload: 'アップロード',
17
  english: '英語',
18
+ portugeseBr: 'ポルトガル語 (ブラジル)',
19
  chinese: '中国語(簡体字)',
20
  traditionalChinese: '中国語(繁体字)',
21
  language: '言語',
web/src/locales/pt-br.ts ADDED
@@ -0,0 +1,1099 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ export default {
2
+ translation: {
3
+ common: {
4
+ delete: 'Excluir',
5
+ deleteModalTitle: 'Tem certeza de que deseja excluir este item?',
6
+ ok: 'Sim',
7
+ cancel: 'Não',
8
+ total: 'Total',
9
+ rename: 'Renomear',
10
+ name: 'Nome',
11
+ save: 'Salvar',
12
+ namePlaceholder: 'Por favor, insira o nome',
13
+ next: 'Próximo',
14
+ create: 'Criar',
15
+ edit: 'Editar',
16
+ upload: 'Carregar',
17
+ english: 'Inglês',
18
+ portugeseBr: 'Português (Brasil)',
19
+ chinese: 'Chinês Simplificado',
20
+ traditionalChinese: 'Chinês Tradicional',
21
+ language: 'Idioma',
22
+ languageMessage: 'Por favor, insira seu idioma!',
23
+ languagePlaceholder: 'selecione seu idioma',
24
+ copy: 'Copiar',
25
+ copied: 'Copiado',
26
+ comingSoon: 'Em breve',
27
+ download: 'Baixar',
28
+ close: 'Fechar',
29
+ preview: 'Pré-visualizar',
30
+ move: 'Mover',
31
+ warn: 'Aviso',
32
+ action: 'Ação',
33
+ s: 'S',
34
+ pleaseSelect: 'Por favor, selecione',
35
+ pleaseInput: 'Por favor, insira',
36
+ submit: 'Enviar',
37
+ embedIntoSite: 'Incorporar no site',
38
+ previousPage: 'Anterior',
39
+ nextPage: 'Próxima'
40
+ },
41
+ login: {
42
+ login: 'Entrar',
43
+ signUp: 'Inscrever-se',
44
+ loginDescription: 'Estamos muito animados para vê-lo novamente!',
45
+ registerDescription: 'Feliz por tê-lo a bordo!',
46
+ emailLabel: 'Email',
47
+ emailPlaceholder: 'Por favor, insira o email',
48
+ passwordLabel: 'Senha',
49
+ passwordPlaceholder: 'Por favor, insira a senha',
50
+ rememberMe: 'Lembrar-me',
51
+ signInTip: 'Não tem uma conta?',
52
+ signUpTip: 'Já tem uma conta?',
53
+ nicknameLabel: 'Apelido',
54
+ nicknamePlaceholder: 'Por favor, insira o apelido',
55
+ register: 'Criar uma conta',
56
+ continue: 'Continuar',
57
+ title: 'Comece a construir seus assistentes inteligentes.',
58
+ description: 'Inscreva-se gratuitamente para explorar a tecnologia RAG de ponta. Crie bases de conhecimento e IAs para capacitar seu negócio.',
59
+ review: 'de 500+ avaliações'
60
+ },
61
+ header: {
62
+ knowledgeBase: 'Base de Conhecimento',
63
+ chat: 'Chat',
64
+ register: 'Registrar',
65
+ signin: 'Entrar',
66
+ home: 'Início',
67
+ setting: 'Configurações do usuário',
68
+ logout: 'Sair',
69
+ fileManager: 'Gerenciamento de Arquivos',
70
+ flow: 'Agente',
71
+ search: 'Buscar'
72
+ },
73
+ knowledgeList: {
74
+ welcome: 'Bem-vindo de volta',
75
+ description: 'Quais bases de conhecimento você usará hoje?',
76
+ createKnowledgeBase: 'Criar base de conhecimento',
77
+ name: 'Nome',
78
+ namePlaceholder: 'Por favor, insira o nome!',
79
+ doc: 'Documentos',
80
+ searchKnowledgePlaceholder: 'Buscar',
81
+ noMoreData: 'Isso é tudo. Nada mais.'
82
+ },
83
+ knowledgeDetail: {
84
+ dataset: 'Conjunto de dados',
85
+ testing: 'Teste de recuperação',
86
+ files: 'Arquivos',
87
+ configuration: 'Configuração',
88
+ name: 'Nome',
89
+ namePlaceholder: 'Por favor, insira o nome!',
90
+ doc: 'Documentos',
91
+ datasetDescription: '😉 Por favor, aguarde o término da análise do seu arquivo antes de iniciar um chat com IA.',
92
+ addFile: 'Adicionar arquivo',
93
+ searchFiles: 'Buscar seus arquivos',
94
+ localFiles: 'Arquivos locais',
95
+ emptyFiles: 'Criar arquivo vazio',
96
+ webCrawl: 'Rastreamento na web',
97
+ chunkNumber: 'Número de fragmentos',
98
+ uploadDate: 'Data de upload',
99
+ chunkMethod: 'Método de fragmentação',
100
+ enabled: 'Habilitar',
101
+ disabled: 'Desabilitar',
102
+ action: 'Ação',
103
+ parsingStatus: 'Status da análise',
104
+ processBeginAt: 'Início em',
105
+ processDuration: 'Duração',
106
+ progressMsg: 'Progresso',
107
+ testingDescription: 'Realize um teste de recuperação para verificar se o RAGFlow pode recuperar o conteúdo pretendido para o LLM.',
108
+ similarityThreshold: 'Limite de similaridade',
109
+ similarityThresholdTip: 'O RAGFlow emprega uma combinação de similaridade de palavras-chave ponderada e similaridade de cosseno vetorial ponderada, ou uma combinação de similaridade de palavras-chave ponderada e pontuação de reranking ponderada durante a recuperação. Este parâmetro define o limite para similaridades entre a consulta do usuário e os fragmentos. Qualquer fragmento com uma pontuação de similaridade abaixo deste limite será excluído dos resultados.',
110
+ vectorSimilarityWeight: 'Peso da similaridade de palavras-chave',
111
+ vectorSimilarityWeightTip: 'Define o peso da similaridade de palavras-chave na pontuação de similaridade combinada, usada com a similaridade de cosseno vetorial ou com a pontuação de reranking. O total dos dois pesos deve ser igual a 1.0.',
112
+ testText: 'Texto de teste',
113
+ testTextPlaceholder: 'Insira sua pergunta aqui!',
114
+ testingLabel: 'Testando',
115
+ similarity: 'Similaridade híbrida',
116
+ termSimilarity: 'Similaridade de termos',
117
+ vectorSimilarity: 'Similaridade vetorial',
118
+ hits: 'Acertos',
119
+ view: 'Visualizar',
120
+ filesSelected: 'Arquivos selecionados',
121
+ upload: 'Carregar',
122
+ run: 'Analisar',
123
+ runningStatus0: 'Não analisado',
124
+ runningStatus1: 'Analisando',
125
+ runningStatus2: 'Cancelado',
126
+ runningStatus3: 'Sucesso',
127
+ runningStatus4: 'Falha',
128
+ pageRanges: 'Intervalos de páginas',
129
+ pageRangesTip: 'Intervalo de páginas a serem analisadas; páginas fora deste intervalo não serão processadas.',
130
+ fromPlaceholder: 'de',
131
+ fromMessage: 'Página inicial ausente',
132
+ toPlaceholder: 'até',
133
+ toMessage: 'Página final ausente (excluída)',
134
+ layoutRecognize: 'Reconhecimento de layout',
135
+ layoutRecognizeTip: 'Use modelos visuais para análise de layout para entender melhor a estrutura do documento e localizar efetivamente títulos, blocos de texto, imagens e tabelas. Se desativado, apenas o texto simples no PDF será recuperado.',
136
+ taskPageSize: 'Tamanho da página da tarefa',
137
+ taskPageSizeMessage: 'Por favor, insira o tamanho da página da tarefa!',
138
+ taskPageSizeTip: 'Durante o reconhecimento de layout, um arquivo PDF é dividido em fragmentos e processado em paralelo para aumentar a velocidade de processamento. Este parâmetro define o tamanho de cada fragmento. Um tamanho de fragmento maior reduz a probabilidade de dividir texto contínuo entre páginas.',
139
+ addPage: 'Adicionar página',
140
+ greaterThan: 'O valor atual deve ser maior que!',
141
+ greaterThanPrevious: 'O valor atual deve ser maior que o anterior!',
142
+ selectFiles: 'Selecionar arquivos',
143
+ changeSpecificCategory: 'Alterar categoria específica',
144
+ uploadTitle: 'Clique ou arraste o arquivo para esta área para fazer o upload',
145
+ uploadDescription: 'Suporte para upload único ou em massa. Estritamente proibido fazer upload de dados da empresa ou outros arquivos proibidos.',
146
+ chunk: 'Fragmento',
147
+ bulk: 'Em massa',
148
+ cancel: 'Cancelar',
149
+ rerankModel: 'Modelo de reranking',
150
+ rerankPlaceholder: 'Por favor, selecione',
151
+ rerankTip: 'Se deixado vazio, o RAGFlow usará uma combinação de similaridade de palavras-chave ponderada e similaridade de cosseno vetorial ponderada; se um modelo de reranking for selecionado, uma pontuação de reranking ponderada substituirá a similaridade de cosseno vetorial ponderada. Esteja ciente de que usar um modelo de reranking aumentará significativamente o tempo de resposta do sistema.',
152
+ topK: 'Top-K',
153
+ topKTip: 'K fragmentos serão alimentados em modelos de reranking.',
154
+ delimiter: 'Delimitador',
155
+ delimiterTip: 'Um delimitador ou separador pode consistir em um ou vários caracteres especiais. Se for múltiplos caracteres, certifique-se de que estejam entre crases (``). Por exemplo, se você configurar seus delimitadores assim: \n`##`;, seus textos serão separados em quebras de linha, símbolos de hash duplo (##) ou ponto e vírgula.',
156
+ html4excel: 'Excel para HTML',
157
+ html4excelTip: 'Quando ativado, a planilha será analisada em tabelas HTML, com no máximo 256 linhas por tabela. Caso contrário, será analisada em pares chave-valor por linha.',
158
+ autoKeywords: 'Palavras-chave automáticas',
159
+ autoKeywordsTip: 'Extraia automaticamente N palavras-chave para cada fragmento para aumentar sua classificação para consultas que contenham essas palavras-chave. Você pode verificar ou atualizar as palavras-chave adicionadas para um fragmento na lista de fragmentos. Esteja ciente de que tokens extras serão consumidos pelo LLM especificado nas "Configurações do modelo do sistema".',
160
+ autoQuestions: 'Perguntas automáticas',
161
+ autoQuestionsTip: `Extraia automaticamente N perguntas para cada fragmento para aumentar sua relevância em consultas que contenham essas perguntas. Você pode verificar ou atualizar as perguntas adicionadas a um fragmento na lista de fragmentos. Essa funcionalidade não interromperá o processo de fragmentação em caso de erro, exceto pelo fato de que pode adicionar um resultado vazio ao fragmento original. Esteja ciente de que tokens extras serão consumidos pelo LLM especificado nas 'Configurações do modelo do sistema'.`,
162
+ redo: 'Deseja limpar os {{chunkNum}} fragmentos existentes?',
163
+ setMetaData: 'Definir Metadados',
164
+ pleaseInputJson: 'Por favor, insira um JSON',
165
+ documentMetaTips: `<p>Os metadados estão no formato JSON (não são pesquisáveis). Eles serão adicionados ao prompt para o LLM se quaisquer fragmentos deste documento forem incluídos no prompt.</p>
166
+ <p>Exemplos:</p>
167
+ <b>Os metadados são:</b><br>
168
+ <code>
169
+ {
170
+ "Autor": "Alex Dowson",
171
+ "Data": "2024-11-12"
172
+ }
173
+ </code><br>
174
+ <b>O prompt será:</b><br>
175
+ <p>Documento: nome_do_documento</p>
176
+ <p>Autor: Alex Dowson</p>
177
+ <p>Data: 2024-11-12</p>
178
+ <p>Fragmentos relevantes a seguir:</p>
179
+ <ul>
180
+ <li> Aqui está o conteúdo do fragmento....</li>
181
+ <li> Aqui está o conteúdo do fragmento....</li>
182
+ </ul>
183
+ `,
184
+ metaData: 'Metadados',
185
+ },
186
+ knowledgeConfiguration: {
187
+ titleDescription:
188
+ 'Atualize a configuração da sua base de conhecimento aqui, especialmente o método de fragmentação.',
189
+ name: 'Nome da base de conhecimento',
190
+ photo: 'Foto da base de conhecimento',
191
+ description: 'Descrição',
192
+ language: 'Idioma',
193
+ languageMessage: 'Por favor, insira seu idioma!',
194
+ languagePlaceholder: 'Por favor, insira seu idioma!',
195
+ permissions: 'Permissões',
196
+ embeddingModel: 'Modelo de incorporação',
197
+ chunkTokenNumber: 'Número de tokens por fragmento',
198
+ chunkTokenNumberMessage: 'O número de tokens por fragmento é obrigatório',
199
+ embeddingModelTip:
200
+ 'O modelo que converte fragmentos em embeddings. Ele não pode ser alterado depois que a base de conhecimento tiver fragmentos. Para mudar para um modelo diferente, é necessário excluir todos os fragmentos existentes.',
201
+ permissionsTip:
202
+ "Se definido como 'Equipe', todos os membros da equipe poderão gerenciar a base de conhecimento.",
203
+ chunkTokenNumberTip:
204
+ 'Define o limite de tokens para um fragmento. Um parágrafo com menos tokens que esse limite será combinado com o próximo parágrafo até que a contagem de tokens ultrapasse o limite, momento em que um fragmento será criado.',
205
+ chunkMethod: 'Método de fragmentação',
206
+ chunkMethodTip: 'Veja as dicas à direita.',
207
+ upload: 'Enviar',
208
+ english: 'Inglês',
209
+ chinese: 'Chinês',
210
+ embeddingModelPlaceholder: 'Por favor, selecione um modelo de incorporação',
211
+ chunkMethodPlaceholder: 'Por favor, selecione um método de fragmentação',
212
+ save: 'Salvar',
213
+ me: 'Somente eu',
214
+ team: 'Equipe',
215
+ cancel: 'Cancelar',
216
+ methodTitle: 'Descrição do método de fragmentação',
217
+ methodExamples: 'Exemplos',
218
+ methodExamplesDescription:
219
+ 'As capturas de tela a seguir são fornecidas para maior clareza.',
220
+ dialogueExamplesTitle: 'Exemplos de diálogos',
221
+ methodEmpty:
222
+ 'Aqui será exibida uma explicação visual das categorias da base de conhecimento',
223
+ book: `<p>Os formatos de arquivo suportados são <b>DOCX</b>, <b>PDF</b>, <b>TXT</b>.</p><p>
224
+ Para cada livro em PDF, defina os <i>intervalos de páginas</i> para remover informações indesejadas e reduzir o tempo de análise.</p>`,
225
+ laws: `<p>Os formatos de arquivo suportados são <b>DOCX</b>, <b>PDF</b>, <b>TXT</b>.</p><p>
226
+ Documentos legais normalmente seguem um formato de escrita rigoroso. Usamos recursos textuais para identificar pontos de divisão.</p><p>
227
+ Os fragmentos terão granularidade compatível com 'ARTIGO', garantindo que todo o texto de nível superior seja incluído no fragmento.</p>`,
228
+ manual: `<p>Apenas <b>PDF</b> é suportado.</p><p>
229
+ Assumimos que o manual tem uma estrutura hierárquica de seções, usando os títulos das seções inferiores como unidade básica para fragmentação. Assim, figuras e tabelas na mesma seção não serão separadas, o que pode resultar em fragmentos maiores.</p>`,
230
+ naive: `<p>Os formatos de arquivo suportados são <b>DOCX, EXCEL, PPT, IMAGE, PDF, TXT, MD, JSON, EML, HTML</b>.</p>
231
+ <p>Este método fragmenta arquivos de maneira 'simples':</p>
232
+ <p>
233
+ <li>Usa um modelo de detecção visual para dividir os textos em segmentos menores.</li>
234
+ <li>Depois, combina segmentos adjacentes até que a contagem de tokens ultrapasse o limite definido em 'Número de tokens por fragmento', criando então um fragmento.</li></p>`,
235
+ paper: `<p>Apenas <b>PDF</b> é suportado.</p><p>
236
+ Os artigos serão divididos por seção, como <i>resumo, 1.1, 1.2</i>. </p><p>
237
+ Essa abordagem permite que o LLM resuma o artigo de forma mais eficaz e forneça respostas mais compreensíveis. No entanto, aumenta o contexto para conversas de IA e o custo computacional do LLM. Durante uma conversa, considere reduzir o valor de '<b>topN</b>'.</p>`,
238
+ presentation: `<p>Os formatos de arquivo suportados são <b>PDF</b>, <b>PPTX</b>.</p><p>
239
+ Cada página do slide é tratada como um fragmento, com sua imagem em miniatura armazenada.</p><p>
240
+ <i>Esse método de fragmentação é aplicado automaticamente a todos os arquivos PPT enviados, então não é necessário especificá-lo manualmente.</i></p>`,
241
+ qa: `<p>Este método suporta arquivos nos formatos <b>EXCEL</b> e <b>CSV/TXT</b>.</p>
242
+ <li>Se o arquivo estiver no formato <b>Excel</b>, ele deve conter duas colunas sem cabeçalhos: uma para perguntas e outra para respostas, com a coluna de perguntas antes da de respostas. Múltiplas planilhas são aceitas, desde que as colunas estejam corretamente estruturadas.</li>
243
+ <li>Se o arquivo estiver no formato <b>CSV/TXT</b>, ele deve estar codificado em UTF-8 e usar TAB como delimitador para separar perguntas e respostas.</li>
244
+ <p><i>Linhas de texto que não seguirem essas regras serão ignoradas, e cada par de Pergunta & Resposta será tratado como um fragmento distinto.</i></p>`,
245
+ useRaptor: 'Usar RAPTOR para melhorar a recuperação',
246
+ useRaptorTip:
247
+ 'Processamento Abstrativo Recursivo para Recuperação Organizada em Árvore. Veja mais em https://huggingface.co/papers/2401.18059.',
248
+ prompt: 'Prompt',
249
+ promptTip: 'Prompt usado pelo LLM para sumarização.',
250
+ promptMessage: 'O prompt é obrigatório',
251
+ promptText: `Por favor, resuma os seguintes parágrafos. Tenha cuidado com os números, não invente informações. Os parágrafos são os seguintes:
252
+ {cluster_content}
253
+ O conteúdo acima precisa ser resumido.`,
254
+ maxToken: 'Máximo de tokens',
255
+ maxTokenTip: 'Número máximo de tokens para sumarização.',
256
+ maxTokenMessage: 'O número máximo de tokens é obrigatório',
257
+ threshold: 'Limite',
258
+ thresholdTip: 'Quanto maior o limite, menor será o número de clusters.',
259
+ thresholdMessage: 'O limite é obrigatório',
260
+ maxCluster: 'Máximo de clusters',
261
+ maxClusterTip: 'Número máximo de clusters.',
262
+ maxClusterMessage: 'O número máximo de clusters é obrigatório',
263
+ randomSeed: 'Semente aleatória',
264
+ randomSeedMessage: 'A semente aleatória é obrigatória',
265
+ entityTypes: 'Tipos de entidades',
266
+ vietnamese: 'Vietnamita',
267
+ pageRank: 'Ranking de páginas',
268
+ pageRankTip: `Isso aumenta a pontuação de relevância da base de conhecimento. Seu valor será adicionado à pontuação de relevância de todos os fragmentos recuperados dessa base de conhecimento. Útil ao pesquisar em múltiplas bases e querer priorizar uma específica.`,
269
+ tagName: 'Etiqueta',
270
+ frequency: 'Frequência',
271
+ searchTags: 'Pesquisar etiquetas',
272
+ tagCloud: 'Nuvem',
273
+ tagTable: 'Tabela',
274
+ tagSet: 'Conjunto de etiquetas',
275
+ tagSetTip: `
276
+ <p>Selecionar bases de conhecimento com 'Etiqueta' ajuda a etiquetar fragmentos.</p>
277
+ <p>Consultas nesses fragmentos também usarão etiquetas.</p>
278
+ <p>Isso melhora a precisão da recuperação adicionando mais informações ao conjunto de dados, especialmente quando há muitos fragmentos.</p>
279
+ <p>Diferenças entre etiquetas e palavras-chave:</p>
280
+ <ul>
281
+ <li>As etiquetas são um conjunto fechado definido pelo usuário, enquanto palavras-chave são um conjunto aberto.</li>
282
+ <li>É necessário enviar conjuntos de etiquetas com exemplos antes de usá-los.</li>
283
+ <li>Palavras-chave são geradas pelo LLM, o que é caro e demorado.</li>
284
+ </ul>`,
285
+ topnTags: 'Top-N Etiquetas',
286
+ tags: 'Etiquetas',
287
+ addTag: 'Adicionar etiqueta',
288
+ },
289
+ chunk: {
290
+ chunk: 'Fragmento',
291
+ bulk: 'Em massa',
292
+ selectAll: 'Selecionar tudo',
293
+ enabledSelected: 'Ativar selecionados',
294
+ disabledSelected: 'Desativar selecionados',
295
+ deleteSelected: 'Excluir selecionados',
296
+ search: 'Pesquisar',
297
+ all: 'Todos',
298
+ enabled: 'Ativado',
299
+ disabled: 'Desativado',
300
+ keyword: 'Palavra-chave',
301
+ function: 'Função',
302
+ chunkMessage: 'Por favor, insira um valor!',
303
+ full: 'Texto completo',
304
+ ellipse: 'Reticências',
305
+ graph: 'Grafo de conhecimento',
306
+ mind: 'Mapa mental',
307
+ question: 'Pergunta',
308
+ questionTip: `Se houver perguntas fornecidas, a incorporação do fragmento será baseada nelas.`,
309
+ },
310
+ chat: {
311
+ newConversation: 'Nova conversa',
312
+ createAssistant: 'Criar um Assistente',
313
+ assistantSetting: 'Configuração do Assistente',
314
+ promptEngine: 'Motor de Prompt',
315
+ modelSetting: 'Configuração do Modelo',
316
+ chat: 'Chat',
317
+ newChat: 'Novo chat',
318
+ send: 'Enviar',
319
+ sendPlaceholder: 'Envie uma mensagem para o assistente...',
320
+ chatConfiguration: 'Configuração do Chat',
321
+ chatConfigurationDescription:
322
+ 'Configure aqui um assistente de chat dedicado às bases de conhecimento selecionadas! 💕',
323
+ assistantName: 'Nome do assistente',
324
+ assistantNameMessage: 'O nome do assistente é obrigatório',
325
+ namePlaceholder: 'Ex.: Jarvis Currículos',
326
+ assistantAvatar: 'Avatar do assistente',
327
+ language: 'Idioma',
328
+ emptyResponse: 'Resposta vazia',
329
+ emptyResponseTip: `Defina isto como uma resposta caso nenhuma informação seja encontrada nas bases de conhecimento para sua consulta, ou deixe este campo vazio para permitir que o LLM improvise quando nada for encontrado.`,
330
+ setAnOpener: 'Saudação inicial',
331
+ setAnOpenerInitial: `Olá! Sou seu assistente, como posso ajudar?`,
332
+ setAnOpenerTip: 'Defina uma saudação inicial para os usuários.',
333
+ knowledgeBases: 'Bases de conhecimento',
334
+ knowledgeBasesMessage: 'Por favor, selecione',
335
+ knowledgeBasesTip:
336
+ 'Selecione as bases de conhecimento para associar a este assistente de chat.',
337
+ system: 'Sistema',
338
+ systemInitialValue: `Você é um assistente inteligente. Por favor, resuma o conteúdo da base de conhecimento para responder à pergunta. Liste os dados da base de conhecimento e responda com detalhes. Quando todo o conteúdo da base de conhecimento for irrelevante para a pergunta, sua resposta deve incluir a frase "A resposta que você procura não foi encontrada na base de conhecimento!" As respostas devem considerar o histórico do chat.
339
+ Aqui está a base de conhecimento:
340
+ {knowledge}
341
+ O acima é a base de conhecimento.`,
342
+ systemMessage: 'Por favor, insira!',
343
+ systemTip:
344
+ 'Seus prompts ou instruções para o LLM, incluindo, mas não se limitando, ao papel, ao comprimento desejado, ao tom e ao idioma das respostas.',
345
+ topN: 'Top N',
346
+ topNTip: `Nem todos os fragmentos com pontuação de similaridade acima do 'limiar de similaridade' serão enviados ao LLM. Isso seleciona os 'Top N' fragmentos recuperados.`,
347
+ variable: 'Variável',
348
+ variableTip: `As variáveis podem ajudar a desenvolver estratégias mais flexíveis, especialmente ao usar nossas APIs de gerenciamento de assistentes de chat. Essas variáveis serão usadas pelo 'Sistema' como parte dos prompts para o LLM. A variável {knowledge} é uma variável especial reservada que representa suas bases de conhecimento selecionadas, e todas as variáveis devem estar entre chaves { }.`,
349
+ add: 'Adicionar',
350
+ key: 'Chave',
351
+ optional: 'Opcional',
352
+ operation: 'Operação',
353
+ model: 'Modelo',
354
+ modelTip: 'Modelo de chat com linguagem ampla',
355
+ modelMessage: 'Por favor, selecione!',
356
+ freedom: 'Liberdade',
357
+ improvise: 'Improvisar',
358
+ precise: 'Preciso',
359
+ balance: 'Equilíbrio',
360
+ freedomTip: `Um atalho para as configurações de 'Temperatura', 'Top P', 'Penalidade de presença' e 'Penalidade de frequência', indicando o nível de liberdade do modelo. Este parâmetro possui três opções: selecione 'Improvisar' para respostas mais criativas; selecione 'Preciso' (padrão) para respostas mais conservadoras; 'Equilíbrio' é um meio-termo entre 'Improvisar' e 'Preciso'.`,
361
+ temperature: 'Temperatura',
362
+ temperatureMessage: 'A temperatura é obrigatória',
363
+ temperatureTip: `Este parâmetro controla a aleatoriedade das previsões do modelo. Uma temperatura mais baixa resulta em respostas mais conservadoras, enquanto uma temperatura mais alta gera respostas mais criativas e diversificadas.`,
364
+ topP: 'Top P',
365
+ topPMessage: 'Top P é obrigatório',
366
+ topPTip:
367
+ 'Também conhecido como "amostragem por núcleo", este parâmetro define um limite para selecionar um conjunto menor das palavras mais prováveis para amostragem, cortando as menos prováveis.',
368
+ presencePenalty: 'Penalidade de presença',
369
+ presencePenaltyMessage: 'Penalidade de presença é obrigatória',
370
+ presencePenaltyTip:
371
+ 'Isso desencoraja o modelo de repetir as mesmas informações, penalizando palavras que já apareceram na conversa.',
372
+ frequencyPenalty: 'Penalidade de frequência',
373
+ frequencyPenaltyMessage: 'Penalidade de frequência é obrigatória',
374
+ frequencyPenaltyTip:
375
+ 'Semelhante à penalidade de presença, isso reduz a tendência do modelo de repetir as mesmas palavras frequentemente.',
376
+ maxTokens: 'Máximo de tokens',
377
+ maxTokensMessage: 'O máximo de tokens é obrigatório',
378
+ maxTokensTip: `Define o comprimento máximo da saída do modelo, medido pelo número de tokens (palavras ou partes de palavras). O padrão é 512. Se desativado, você remove o limite máximo de tokens, permitindo que o modelo determine o número de tokens em suas respostas.`,
379
+ maxTokensInvalidMessage: 'Por favor, insira um número válido para o máximo de tokens.',
380
+ maxTokensMinMessage: 'O máximo de tokens não pode ser menor que 0.',
381
+ quote: 'Mostrar citação',
382
+ quoteTip: 'Exibir ou não o texto original como referência.',
383
+ selfRag: 'Self-RAG',
384
+ selfRagTip: 'Consulte: https://huggingface.co/papers/2310.11511',
385
+ overview: 'ID do Chat',
386
+ pv: 'Número de mensagens',
387
+ uv: 'Número de usuários ativos',
388
+ speed: 'Velocidade de saída de tokens',
389
+ tokens: 'Consumo de tokens',
390
+ round: 'Número de interações por sessão',
391
+ thumbUp: 'Satisfação do cliente',
392
+ preview: 'Pré-visualizar',
393
+ embedded: 'Incorporado',
394
+ serviceApiEndpoint: 'Endpoint da API de Serviço',
395
+ apiKey: 'Chave da API',
396
+ apiReference: 'Documentos da API',
397
+ dateRange: 'Intervalo de datas:',
398
+ backendServiceApi: 'Servidor API',
399
+ createNewKey: 'Criar nova chave',
400
+ created: 'Criado',
401
+ action: 'Ação',
402
+ embedModalTitle: 'Incorporar no site',
403
+ comingSoon: 'Em breve',
404
+ fullScreenTitle: 'Incorporar Total',
405
+ fullScreenDescription:
406
+ 'Incorpore o iframe abaixo no local desejado em seu site',
407
+ partialTitle: 'Incorporar Parcial',
408
+ extensionTitle: 'Extensão do Chrome',
409
+ tokenError: 'Por favor, crie uma chave API primeiro.',
410
+ betaError:
411
+ 'Por favor, adquira uma chave API do RAGFlow na página Configurações do Sistema primeiro.',
412
+ searching: 'Pesquisando...',
413
+ parsing: 'Analisando',
414
+ uploading: 'Carregando',
415
+ uploadFailed: 'Falha no carregamento',
416
+ regenerate: 'Regenerar',
417
+ read: 'Ler conteúdo',
418
+ tts: 'Texto para fala',
419
+ ttsTip:
420
+ 'Certifique-se de selecionar um modelo TTS na página Configurações antes de habilitar esta opção para reproduzir texto como áudio.',
421
+ relatedQuestion: 'Pergunta relacionada',
422
+ answerTitle: 'R',
423
+ multiTurn: 'Otimização de múltiplas interações',
424
+ multiTurnTip:
425
+ 'Isso otimiza as consultas dos usuários usando o contexto em uma conversa de múltiplas rodadas. Quando ativado, consumirá tokens adicionais do LLM.',
426
+ howUseId: 'Como usar o ID do chat?',
427
+ description: 'Descrição do assistente',
428
+ },
429
+ setting: {
430
+ profile: 'Perfil',
431
+ profileDescription: 'Atualize sua foto e detalhes pessoais aqui.',
432
+ maxTokens: 'Máximo de Tokens',
433
+ maxTokensMessage: 'Máximo de Tokens é obrigatório',
434
+ maxTokensTip: `Isso define o comprimento máximo da saída do modelo, medido em número de tokens (palavras ou partes de palavras). O padrão é 512. Se desativado, você remove o limite máximo de tokens, permitindo que o modelo determine o número de tokens em suas respostas.`,
435
+ maxTokensInvalidMessage: 'Por favor, insira um número válido para Máximo de Tokens.',
436
+ maxTokensMinMessage: 'O Máximo de Tokens não pode ser menor que 0.',
437
+ password: 'Senha',
438
+ passwordDescription: 'Digite sua senha atual para alterá-la.',
439
+ model: 'Provedores de Modelo',
440
+ modelDescription: 'Defina o parâmetro do modelo e a chave da API aqui.',
441
+ team: 'Equipe',
442
+ system: 'Sistema',
443
+ logout: 'Sair',
444
+ api: 'API',
445
+ username: 'Nome de usuário',
446
+ usernameMessage: 'Por favor, insira seu nome de usuário!',
447
+ photo: 'Sua foto',
448
+ photoDescription: 'Isso será exibido no seu perfil.',
449
+ colorSchema: 'Esquema de cores',
450
+ colorSchemaMessage: 'Por favor, selecione seu esquema de cores!',
451
+ colorSchemaPlaceholder: 'selecione seu esquema de cores',
452
+ bright: 'Claro',
453
+ dark: 'Escuro',
454
+ timezone: 'Fuso horário',
455
+ timezoneMessage: 'Por favor, insira seu fuso horário!',
456
+ timezonePlaceholder: 'selecione seu fuso horário',
457
+ email: 'Endereço de e-mail',
458
+ emailDescription: 'Após o registro, o e-mail não pode ser alterado.',
459
+ currentPassword: 'Senha atual',
460
+ currentPasswordMessage: 'Por favor, insira sua senha!',
461
+ newPassword: 'Nova senha',
462
+ newPasswordMessage: 'Por favor, insira sua nova senha!',
463
+ newPasswordDescription: 'Sua nova senha deve ter mais de 8 caracteres.',
464
+ confirmPassword: 'Confirmar nova senha',
465
+ confirmPasswordMessage: 'Por favor, confirme sua senha!',
466
+ confirmPasswordNonMatchMessage: 'A nova senha que você inseriu não corresponde!',
467
+ cancel: 'Cancelar',
468
+ addedModels: 'Modelos adicionados',
469
+ modelsToBeAdded: 'Modelos a serem adicionados',
470
+ addTheModel: 'Adicionar o modelo',
471
+ apiKey: 'Chave da API',
472
+ apiKeyMessage: 'Por favor, insira a chave da API (para modelos implantados localmente, ignore isso).',
473
+ apiKeyTip: 'A chave da API pode ser obtida registrando-se no fornecedor correspondente do LLM.',
474
+ showMoreModels: 'Mostrar mais modelos',
475
+ baseUrl: 'URL Base',
476
+ baseUrlTip: 'Se sua chave da API for do OpenAI, ignore isso. Outros provedores intermediários fornecerão essa URL base com a chave da API.',
477
+ modify: 'Modificar',
478
+ systemModelSettings: 'Configurações do Modelo do Sistema',
479
+ chatModel: 'Modelo de chat',
480
+ chatModelTip: 'O modelo LLM padrão que todos os novos bancos de conhecimento usarão.',
481
+ embeddingModel: 'Modelo de incorporação',
482
+ embeddingModelTip: 'O modelo de incorporação padrão que todos os novos bancos de conhecimento usarão.',
483
+ img2txtModel: 'Modelo Img2Txt',
484
+ img2txtModelTip: 'O modelo multimodal padrão que todos os novos bancos de conhecimento usarão. Ele pode descrever uma imagem ou vídeo.',
485
+ sequence2txtModel: 'Modelo Sequence2Txt',
486
+ sequence2txtModelTip: 'O modelo ASR padrão que todos os novos bancos de conhecimento usarão. Use este modelo para converter vozes em texto correspondente.',
487
+ rerankModel: 'Modelo de Reordenação',
488
+ rerankModelTip: 'O modelo de reordenação padrão usado para reordenar os fragmentos recuperados pelas perguntas dos usuários.',
489
+ ttsModel: 'Modelo TTS',
490
+ ttsModelTip: 'O modelo TTS padrão será usado para gerar fala durante as conversas sob demanda.',
491
+ workspace: 'Área de trabalho',
492
+ upgrade: 'Atualizar',
493
+ addLlmTitle: 'Adicionar LLM',
494
+ modelName: 'Nome do modelo',
495
+ modelID: 'ID do modelo',
496
+ modelUid: 'UID do modelo',
497
+ modelNameMessage: 'Por favor, insira o nome do seu modelo!',
498
+ modelType: 'Tipo de modelo',
499
+ modelTypeMessage: 'Por favor, insira o tipo do seu modelo!',
500
+ addLlmBaseUrl: 'URL base',
501
+ baseUrlNameMessage: 'Por favor, insira sua URL base!',
502
+ vision: 'Suporta visão?',
503
+ ollamaLink: 'Como integrar {{name}}',
504
+ FishAudioLink: 'Como usar FishAudio',
505
+ TencentCloudLink: 'Como usar TencentCloud ASR',
506
+ volcModelNameMessage: 'Por favor, insira o nome do seu modelo!',
507
+ addEndpointID: 'EndpointID do modelo',
508
+ endpointIDMessage: 'Por favor, insira o EndpointID do modelo',
509
+ addArkApiKey: 'VOLC ARK_API_KEY',
510
+ ArkApiKeyMessage: 'Por favor, insira sua ARK_API_KEY',
511
+ bedrockModelNameMessage: 'Por favor, insira o nome do seu modelo!',
512
+ addBedrockEngineAK: 'CHAVE DE ACESSO',
513
+ bedrockAKMessage: 'Por favor, insira sua CHAVE DE ACESSO',
514
+ addBedrockSK: 'CHAVE SECRETA',
515
+ bedrockSKMessage: 'Por favor, insira sua CHAVE SECRETA',
516
+ bedrockRegion: 'Região AWS',
517
+ bedrockRegionMessage: 'Por favor, selecione!',
518
+ 'us-east-1': 'Leste dos EUA (N. Virgínia)',
519
+ 'us-west-2': 'Oeste dos EUA (Oregon)',
520
+ 'ap-southeast-1': 'Ásia-Pacífico (Singapura)',
521
+ 'ap-northeast-1': 'Ásia-Pacífico (Tóquio)',
522
+ 'eu-central-1': 'Europa (Frankfurt)',
523
+ 'us-gov-west-1': 'AWS GovCloud (EUA-Oeste)',
524
+ 'ap-southeast-2': 'Ásia-Pacífico (Sydney)',
525
+ addHunyuanSID: 'Hunyuan Secret ID',
526
+ HunyuanSIDMessage: 'Por favor, insira seu Secret ID',
527
+ addHunyuanSK: 'Hunyuan Secret Key',
528
+ HunyuanSKMessage: 'Por favor, insira sua Secret Key',
529
+ addTencentCloudSID: 'TencentCloud Secret ID',
530
+ TencentCloudSIDMessage: 'Por favor, insira seu Secret ID',
531
+ addTencentCloudSK: 'TencentCloud Secret Key',
532
+ TencentCloudSKMessage: 'Por favor, insira sua Secret Key',
533
+ SparkModelNameMessage: 'Por favor, selecione o modelo Spark',
534
+ addSparkAPIPassword: 'Senha da API Spark',
535
+ SparkAPIPasswordMessage: 'Por favor, insira sua senha da API',
536
+ addSparkAPPID: 'ID do aplicativo Spark',
537
+ SparkAPPIDMessage: 'Por favor, insira seu ID do aplicativo',
538
+ addSparkAPISecret: 'Segredo da API Spark',
539
+ SparkAPISecretMessage: 'Por favor, insira seu segredo da API',
540
+ addSparkAPIKey: 'Chave da API Spark',
541
+ SparkAPIKeyMessage: 'Por favor, insira sua chave da API',
542
+ yiyanModelNameMessage: 'Por favor, insira o nome do modelo',
543
+ addyiyanAK: 'Chave da API yiyan',
544
+ yiyanAKMessage: 'Por favor, insira sua chave da API',
545
+ addyiyanSK: 'Chave secreta yiyan',
546
+ yiyanSKMessage: 'Por favor, insira sua chave secreta',
547
+ FishAudioModelNameMessage: 'Por favor, dê um nome ao seu modelo de síntese de voz',
548
+ addFishAudioAK: 'Chave da API Fish Audio',
549
+ addFishAudioAKMessage: 'Por favor, insira sua chave da API',
550
+ addFishAudioRefID: 'ID de referência do FishAudio',
551
+ addFishAudioRefIDMessage: 'Por favor, insira o ID de referência (deixe em branco para usar o modelo padrão).',
552
+ modelProvidersWarn: `Por favor, adicione tanto o modelo de incorporação quanto o LLM em <b>Configurações > Provedores de Modelo</b> primeiro. Depois, defina-os nas 'Configurações do modelo do sistema'.`,
553
+ apiVersion: 'Versão da API',
554
+ apiVersionMessage: 'Por favor, insira a versão da API',
555
+ add: 'Adicionar',
556
+ updateDate: 'Data de atualização',
557
+ role: 'Função',
558
+ invite: 'Convidar',
559
+ agree: 'Aceitar',
560
+ refuse: 'Recusar',
561
+ teamMembers: 'Membros da equipe',
562
+ joinedTeams: 'Equipes ingressadas',
563
+ sureDelete: 'Tem certeza de que deseja remover este membro?',
564
+ quit: 'Sair',
565
+ sureQuit: 'Tem certeza de que deseja sair da equipe que você ingressou?',
566
+ },
567
+ message: {
568
+ registered: 'Registrado!',
569
+ logout: 'sair',
570
+ logged: 'conectado!',
571
+ pleaseSelectChunk: 'Por favor, selecione o pedaço!',
572
+ modified: 'Modificado',
573
+ created: 'Criado',
574
+ deleted: 'Deletado',
575
+ renamed: 'Renomeado',
576
+ operated: 'Operado',
577
+ updated: 'Atualizado',
578
+ uploaded: 'Carregado',
579
+ 200: 'O servidor retornou com sucesso os dados solicitados.',
580
+ 201: 'Dados criados ou modificados com sucesso.',
581
+ 202: 'Uma solicitação foi colocada na fila em segundo plano (tarefa assíncrona).',
582
+ 204: 'Dados deletados com sucesso.',
583
+ 400: 'Houve um erro na solicitação emitida, e o servidor não criou ou modificou os dados.',
584
+ 401: 'O usuário não tem permissões (token, nome de usuário ou senha incorretos).',
585
+ 403: 'O usuário está autorizado, mas o acesso é proibido.',
586
+ 404: 'A solicitação foi feita para um registro que não existe, e o servidor não executou a operação.',
587
+ 406: 'O formato solicitado não está disponível.',
588
+ 410: 'O recurso solicitado foi permanentemente deletado e não estará mais disponível.',
589
+ 413: 'O tamanho total dos arquivos carregados de uma vez é muito grande.',
590
+ 422: 'Ao criar um objeto, ocorreu um erro de validação.',
591
+ 500: 'Ocorreu um erro no servidor, por favor, verifique o servidor.',
592
+ 502: 'Erro de gateway.',
593
+ 503: 'O serviço está indisponível e o servidor está temporariamente sobrecarregado ou em manutenção.',
594
+ 504: 'Timeout de gateway.',
595
+ requestError: 'Erro na solicitação',
596
+ networkAnomalyDescription:
597
+ 'Há uma anomalia na sua rede e você não consegue se conectar ao servidor.',
598
+ networkAnomaly: 'anomalia de rede',
599
+ hint: 'dica',
600
+ },
601
+ fileManager: {
602
+ name: 'Nome',
603
+ uploadDate: 'Data de Upload',
604
+ knowledgeBase: 'Base de Conhecimento',
605
+ size: 'Tamanho',
606
+ action: 'Ação',
607
+ addToKnowledge: 'Link para a Base de Conhecimento',
608
+ pleaseSelect: 'Por favor, selecione',
609
+ newFolder: 'Nova Pasta',
610
+ file: 'Arquivo',
611
+ uploadFile: 'Carregar Arquivo',
612
+ directory: 'Diretório',
613
+ uploadTitle: 'Clique ou arraste o arquivo para esta área para fazer o upload',
614
+ uploadDescription:
615
+ 'Suporta upload de um único arquivo ou múltiplos arquivos. É estritamente proibido o upload de dados da empresa ou outros arquivos proibidos.',
616
+ local: 'Uploads locais',
617
+ s3: 'Uploads S3',
618
+ preview: 'Pré-visualização',
619
+ fileError: 'Erro no arquivo',
620
+ uploadLimit:
621
+ 'O tamanho do arquivo não pode exceder 10M, e o número total de arquivos não pode exceder 128',
622
+ destinationFolder: 'Pasta de destino',
623
+ },
624
+ flow: {
625
+ cite: 'Citar',
626
+ citeTip: 'dicaDeCitação',
627
+ name: 'Nome',
628
+ nameMessage: 'Por favor, insira o nome',
629
+ description: 'Descrição',
630
+ examples: 'Exemplos',
631
+ to: 'Para',
632
+ msg: 'Mensagens',
633
+ messagePlaceholder: 'mensagem',
634
+ messageMsg: 'Por favor, insira uma mensagem ou delete este campo.',
635
+ addField: 'Adicionar opção',
636
+ addMessage: 'Adicionar mensagem',
637
+ loop: 'Loop',
638
+ loopTip:
639
+ 'O loop é o limite superior do número de repetições do componente atual. Quando o número de repetições excede o valor do loop, significa que o componente não pode completar a tarefa atual, por favor, reotimize o agente',
640
+ yes: 'Sim',
641
+ no: 'Não',
642
+ key: 'Chave',
643
+ componentId: 'ID do componente',
644
+ add: 'Adicionar',
645
+ operation: 'Operação',
646
+ run: 'Executar',
647
+ save: 'Salvar',
648
+ title: 'ID:',
649
+ beginDescription: 'Aqui é onde o fluxo começa.',
650
+ answerDescription: `Um componente que serve como a interface entre o ser humano e o bot, recebendo entradas do usuário e exibindo as respostas do agente.`,
651
+ retrievalDescription: `Um componente que recupera informações de bases de conhecimento especificadas (conjuntos de dados). Certifique-se de que as bases de conhecimento que você seleciona utilizam o mesmo modelo de incorporação.`,
652
+ generateDescription: `Um componente que solicita ao LLM gerar respostas. Certifique-se de que o prompt está configurado corretamente.`,
653
+ categorizeDescription: `Um componente que utiliza o LLM para classificar as entradas do usuário em categorias predefinidas. Certifique-se de especificar o nome, a descrição e os exemplos para cada categoria, juntamente com o próximo componente correspondente.`,
654
+ relevantDescription: `Um componente que usa o LLM para avaliar se a saída anterior é relevante para a última consulta do usuário. Certifique-se de especificar o próximo componente para cada resultado de avaliação.`,
655
+ rewriteQuestionDescription: `Um componente que refina uma consulta do usuário caso ela não recupere informações relevantes da base de conhecimento. Esse processo é repetido até que o limite de repetições predefinido seja alcançado.`,
656
+ messageDescription:
657
+ "Um componente que envia uma mensagem estática. Se várias mensagens forem fornecidas, uma delas será selecionada aleatoriamente para ser enviada. Certifique-se de que o componente posterior seja 'Interagir', o componente de interface.",
658
+ keywordDescription: `Um componente que recupera os N melhores resultados de pesquisa a partir da entrada do usuário. Certifique-se de que o valor de TopN esteja configurado corretamente antes de usar.`,
659
+ switchDescription: `Um componente que avalia condições com base na saída de componentes anteriores e direciona o fluxo de execução conforme necessário. Ele permite lógica de ramificação complexa, definindo casos e especificando ações para cada caso ou ação padrão caso nenhuma condição seja atendida.`,
660
+ wikipediaDescription: `Um componente que realiza buscas no wikipedia.org, utilizando TopN para especificar o número de resultados de pesquisa. Ele complementa as bases de conhecimento existentes.`,
661
+ promptText: `Por favor, resuma os seguintes parágrafos. Tenha cuidado com os números, não invente nada. Os parágrafos são os seguintes:
662
+ {input} Acima está o conteúdo que você precisa resumir.`,
663
+ createGraph: 'Criar agente',
664
+ createFromTemplates: 'Criar a partir de modelos',
665
+ retrieval: 'Recuperação',
666
+ generate: 'Gerar',
667
+ answer: 'Interagir',
668
+ categorize: 'Categorizar',
669
+ relevant: 'Relevante',
670
+ rewriteQuestion: 'Reescrever',
671
+ rewrite: 'Reescrever',
672
+ begin: 'Começar',
673
+ message: 'Mensagem',
674
+ blank: 'Em branco',
675
+ createFromNothing: 'Crie seu agente do zero',
676
+ addItem: 'Adicionar Item',
677
+ addSubItem: 'Adicionar Subitem',
678
+ nameRequiredMsg: 'Nome é obrigatório',
679
+ nameRepeatedMsg: 'O nome não pode ser repetido',
680
+ keywordExtract: 'Palavra-chave',
681
+ keywordExtractDescription: `Um componente que extrai palavras-chave de uma consulta do usuário, com Top N especificando o número de palavras-chave a serem extraídas.`,
682
+ baidu: 'Baidu',
683
+ baiduDescription: `Um componente que realiza buscas no baidu.com, utilizando TopN para especificar o número de resultados de pesquisa. Ele complementa as bases de conhecimento existentes.`,
684
+ duckDuckGo: 'DuckDuckGo',
685
+ duckDuckGoDescription:
686
+ 'Um componente que realiza buscas no duckduckgo.com, permitindo especificar o número de resultados de pesquisa usando TopN. Ele complementa as bases de conhecimento existentes.',
687
+ channel: 'Canal',
688
+ channelTip: `Realize uma busca por texto ou por notícias na entrada do componente`,
689
+ text: 'Texto',
690
+ news: 'Notícias',
691
+ messageHistoryWindowSize: 'Tamanho da janela de mensagens',
692
+ messageHistoryWindowSizeTip:
693
+ 'O tamanho da janela do histórico de conversa que precisa ser visualizado pelo LLM. Quanto maior, melhor. Mas tenha cuidado com o comprimento máximo de conteúdo do LLM.',
694
+ wikipedia: 'Wikipedia',
695
+ pubMed: 'PubMed',
696
+ pubMedDescription:
697
+ 'Um componente que realiza buscas em https://pubmed.ncbi.nlm.nih.gov/, permitindo especificar o número de resultados de pesquisa usando TopN. Ele complementa as bases de conhecimento existentes.',
698
+ email: 'Email',
699
+ emailTip:
700
+ 'O E-mail é um campo obrigatório. Você deve inserir um endereço de E-mail aqui.',
701
+ arXiv: 'ArXiv',
702
+ arXivDescription:
703
+ 'Um componente que realiza buscas em https://arxiv.org/, permitindo especificar o número de resultados de pesquisa usando TopN. Ele complementa as bases de conhecimento existentes.',
704
+ sortBy: 'Ordenar por',
705
+ submittedDate: 'Data de envio',
706
+ lastUpdatedDate: 'Última data de atualização',
707
+ relevance: 'Relevância',
708
+ google: 'Google',
709
+ googleDescription:
710
+ 'Um componente que realiza buscas em https://www.google.com/, permitindo especificar o número de resultados de pesquisa usando TopN. Ele complementa as bases de conhecimento existentes. Observe que isso requer uma chave API de serpapi.com.',
711
+ bing: 'Bing',
712
+ bingDescription:
713
+ 'Um componente que realiza buscas em https://www.bing.com/, permitindo especificar o número de resultados de pesquisa usando TopN. Ele complementa as bases de conhecimento existentes. Observe que isso requer uma chave API de microsoft.com.',
714
+ apiKey: 'CHAVE API',
715
+ country: 'País&Região',
716
+ language: 'Idioma',
717
+ googleScholar: 'Google Scholar',
718
+ googleScholarDescription:
719
+ 'Um componente que realiza buscas em https://scholar.google.com/. Você pode usar Top N para especificar o número de resultados de pesquisa.',
720
+ yearLow: 'Ano mínimo',
721
+ yearHigh: 'Ano máximo',
722
+ patents: 'Patentes',
723
+ data: 'Dados',
724
+ deepL: 'DeepL',
725
+ deepLDescription:
726
+ 'Um componente que realiza traduções mais especializadas a partir de https://www.deepl.com/.',
727
+ authKey: 'Chave de autenticação',
728
+ sourceLang: 'Idioma de origem',
729
+ targetLang: 'Idioma de destino',
730
+ gitHub: 'GitHub',
731
+ gitHubDescription:
732
+ 'Um componente que realiza buscas por repositórios em https://github.com/. Você pode usar Top N para especificar o número de resultados de pesquisa.',
733
+ baiduFanyi: 'BaiduFanyi',
734
+ baiduFanyiDescription:
735
+ 'Um componente que realiza traduções especializadas a partir de https://fanyi.baidu.com/.',
736
+ appid: 'ID do App',
737
+ secretKey: 'Chave secreta',
738
+ domain: 'Domínio',
739
+ transType: 'Tipo de tradução',
740
+ baiduSecretKeyOptions: {
741
+ translate: 'Tradução geral',
742
+ fieldtranslate: 'Tradução de campo',
743
+ },
744
+ baiduDomainOptions: {
745
+ it: 'Tecnologia da informação',
746
+ finance: 'Finanças e economia',
747
+ machinery: 'Fabricação de máquinas',
748
+ senimed: 'Biomedicina',
749
+ novel: 'Literatura online',
750
+ academic: 'Artigo acadêmico',
751
+ aerospace: 'Aeroespacial',
752
+ wiki: 'Humanidades e ciências sociais',
753
+ news: 'Notícias e informações',
754
+ law: 'Leis e regulamentos',
755
+ contract: 'Contrato',
756
+ },
757
+ baiduSourceLangOptions: {
758
+ auto: 'Detecção automática',
759
+ zh: 'Chinês',
760
+ en: 'Inglês',
761
+ yue: 'Cantonês',
762
+ wyw: 'Chinês clássico',
763
+ jp: 'Japonês',
764
+ kor: 'Coreano',
765
+ fra: 'Francês',
766
+ spa: 'Espanhol',
767
+ th: 'Tailandês',
768
+ ara: 'Árabe',
769
+ ru: 'Russo',
770
+ pt: 'Português',
771
+ de: 'Alemão',
772
+ it: 'Italiano',
773
+ el: 'Grego',
774
+ nl: 'Holandês',
775
+ pl: 'Polonês',
776
+ bul: 'Búlgaro',
777
+ est: 'Estoniano',
778
+ dan: 'Dinamarquês',
779
+ fin: 'Finlandês',
780
+ cs: 'Tcheco',
781
+ rom: 'Romeno',
782
+ slo: 'Esloveno',
783
+ swe: 'Sueco',
784
+ hu: 'Húngaro',
785
+ cht: 'Chinês tradicional',
786
+ vie: 'Vietnamita',
787
+ },
788
+
789
+ qWeather: 'QWeather',
790
+ qWeatherDescription:
791
+ 'Um componente que recupera informações meteorológicas, como temperatura e qualidade do ar, de https://www.qweather.com.',
792
+
793
+ lang: 'Idioma',
794
+ type: 'Tipo',
795
+ webApiKey: 'Chave de API da Web',
796
+ userType: 'Tipo de usuário',
797
+ timePeriod: 'Período de tempo',
798
+
799
+ qWeatherLangOptions: {
800
+ zh: 'Chinês simplificado',
801
+ 'zh-hant': 'Chinês tradicional',
802
+ en: 'Inglês',
803
+ de: 'Alemão',
804
+ es: 'Espanhol',
805
+ fr: 'Francês',
806
+ it: 'Italiano',
807
+ ja: 'Japonês',
808
+ ko: 'Coreano',
809
+ ru: 'Russo',
810
+ hi: 'Hindi',
811
+ th: 'Tailandês',
812
+ ar: 'Árabe',
813
+ pt: 'Português',
814
+ bn: 'Bengali',
815
+ ms: 'Malaio',
816
+ nl: 'Holandês',
817
+ el: 'Grego',
818
+ la: 'Latim',
819
+ sv: 'Sueco',
820
+ id: 'Indonésio',
821
+ pl: 'Polonês',
822
+ tr: 'Turco',
823
+ cs: 'Tcheco',
824
+ et: 'Estoniano',
825
+ vi: 'Vietnamita',
826
+ fil: 'Filipino',
827
+ fi: 'Finlandês',
828
+ he: 'Hebraico',
829
+ is: 'Islandês',
830
+ nb: 'Norueguês',
831
+ },
832
+
833
+ qWeatherTypeOptions: {
834
+ weather: 'Previsão do tempo',
835
+ indices: 'Índice de qualidade de vida relacionado ao clima',
836
+ airquality: 'Qualidade do ar',
837
+ },
838
+ qWeatherUserTypeOptions: {
839
+ free: 'Assinante gratuito',
840
+ paid: 'Assinante pago',
841
+ },
842
+
843
+ qWeatherTimePeriodOptions: {
844
+ now: 'Agora',
845
+ '3d': '3 dias',
846
+ '7d': '7 dias',
847
+ '10d': '10 dias',
848
+ '15d': '12 dias',
849
+ '30d': '30 dias',
850
+ },
851
+
852
+ publish: 'API',
853
+ exeSQL: 'ExeSQL',
854
+ exeSQLDescription:
855
+ 'Um componente que executa consultas SQL em um banco de dados relacional, suportando consultas de MySQL, PostgreSQL ou MariaDB.',
856
+
857
+ dbType: 'Tipo de banco de dados',
858
+ database: 'Banco de dados',
859
+ username: 'Nome de usuário',
860
+ host: 'Hospedeiro',
861
+ port: 'Porta',
862
+ password: 'Senha',
863
+ switch: 'Trocar',
864
+ logicalOperator: 'Operador lógico',
865
+ switchOperatorOptions: {
866
+ equal: 'igual',
867
+ notEqual: 'diferente',
868
+ gt: 'Maior que',
869
+ ge: 'Maior ou igual',
870
+ lt: 'Menor que',
871
+ le: 'Menor ou igual',
872
+ contains: 'Contém',
873
+ notContains: 'Não contém',
874
+ startWith: 'Começa com',
875
+ endWith: 'Termina com',
876
+ empty: 'Vazio',
877
+ notEmpty: 'Não vazio',
878
+ },
879
+
880
+ switchLogicOperatorOptions: {
881
+ and: 'E',
882
+ or: 'Ou',
883
+ },
884
+
885
+ operator: 'Operador',
886
+ value: 'Valor',
887
+ useTemplate: 'Usar este modelo',
888
+ wenCai: 'WenCai',
889
+ queryType: 'Tipo de consulta',
890
+ wenCaiDescription:
891
+ 'Um componente que obtém informações financeiras, incluindo preços de ações e notícias de financiamento, de uma ampla variedade de sites financeiros.',
892
+
893
+ wenCaiQueryTypeOptions: {
894
+ stock: 'Ação',
895
+ zhishu: 'Índice',
896
+ fund: 'Fundo',
897
+ hkstock: 'Ações de Hong Kong',
898
+ usstock: 'Mercado de ações dos EUA',
899
+ threeboard: 'Mercado OTC Novo',
900
+ conbond: 'Título Conversível',
901
+ insurance: 'Seguro',
902
+ futures: 'Futuros',
903
+ lccp: 'Financiamento',
904
+ foreign_exchange: 'Câmbio',
905
+ },
906
+
907
+ akShare: 'AkShare',
908
+ akShareDescription:
909
+ 'Um componente que obtém notícias sobre ações de https://www.eastmoney.com/.',
910
+
911
+ yahooFinance: 'YahooFinance',
912
+ yahooFinanceDescription:
913
+ 'Um componente que consulta informações sobre uma empresa de capital aberto usando seu símbolo de ticker.',
914
+
915
+ crawler: 'Rastreador Web',
916
+ crawlerDescription:
917
+ 'Um componente que rastreia o código-fonte HTML de um URL especificado.',
918
+
919
+ proxy: 'Proxy',
920
+ crawlerResultOptions: {
921
+ html: 'Html',
922
+ markdown: 'Markdown',
923
+ content: 'Conteúdo',
924
+ },
925
+
926
+ extractType: 'Tipo de extração',
927
+ info: 'Informações',
928
+ history: 'Histórico',
929
+ financials: 'Financeiro',
930
+ balanceSheet: 'Balanço patrimonial',
931
+ cashFlowStatement: 'Demonstração de fluxo de caixa',
932
+ jin10: 'Jin10',
933
+ jin10Description:
934
+ 'Um componente que obtém informações financeiras da Plataforma Aberta Jin10, incluindo notícias, calend��rios, cotações e referências.',
935
+
936
+ flashType: 'Tipo de Flash',
937
+ filter: 'Filtro',
938
+ contain: 'Contém',
939
+ calendarType: 'Tipo de calendário',
940
+ calendarDatashape: 'Formato de dados do calendário',
941
+ symbolsDatatype: 'Tipo de dados de símbolos',
942
+ symbolsType: 'Tipo de símbolos',
943
+ jin10TypeOptions: {
944
+ flash: 'Notícias rápidas',
945
+ calendar: 'Calendário',
946
+ symbols: 'Cotações',
947
+ news: 'Referência',
948
+ },
949
+
950
+ jin10FlashTypeOptions: {
951
+ '1': 'Notícias do Mercado',
952
+ '2': 'Notícias de Futuros',
953
+ '3': 'Notícias EUA-Hong Kong',
954
+ '4': 'Notícias A-Share',
955
+ '5': 'Notícias de Commodities & Forex',
956
+ },
957
+
958
+ jin10CalendarTypeOptions: {
959
+ cj: 'Calendário de dados macroeconômicos',
960
+ qh: 'Calendário de Futuros',
961
+ hk: 'Calendário do mercado de ações de Hong Kong',
962
+ us: 'Calendário do mercado de ações dos EUA',
963
+ },
964
+
965
+ jin10CalendarDatashapeOptions: {
966
+ data: 'Dados',
967
+ event: 'Evento',
968
+ holiday: 'Feriado',
969
+ },
970
+
971
+ jin10SymbolsTypeOptions: {
972
+ GOODS: 'Cotações de commodities',
973
+ FOREX: 'Cotações de Forex',
974
+ FUTURE: 'Cotações do mercado internacional',
975
+ CRYPTO: 'Cotações de criptomoedas',
976
+ },
977
+
978
+ jin10SymbolsDatatypeOptions: {
979
+ symbols: 'Lista de commodities',
980
+ quotes: 'Últimas cotações do mercado',
981
+ },
982
+ concentrator: 'Concentrador',
983
+ concentratorDescription:
984
+ 'Um componente que recebe a saída do componente anterior e a passa como entrada para os componentes subsequentes.',
985
+
986
+ tuShare: 'TuShare',
987
+ tuShareDescription:
988
+ 'Um componente que obtém resumos de notícias financeiras de sites financeiros principais, auxiliando pesquisas industriais e quantitativas.',
989
+
990
+ tuShareSrcOptions: {
991
+ sina: 'Sina',
992
+ wallstreetcn: 'wallstreetcn',
993
+ '10jqka': 'Straight flush',
994
+ eastmoney: 'Eastmoney',
995
+ yuncaijing: 'YUNCAIJING',
996
+ fenghuang: 'FENGHUANG',
997
+ jinrongjie: 'JRJ',
998
+ },
999
+
1000
+ token: 'Token',
1001
+ src: 'Fonte',
1002
+ startDate: 'Data de início',
1003
+ endDate: 'Data de término',
1004
+ keyword: 'Palavra-chave',
1005
+ note: 'Nota',
1006
+ noteDescription: 'Nota',
1007
+ notePlaceholder: 'Por favor, insira uma nota',
1008
+
1009
+ invoke: 'Invocar',
1010
+ invokeDescription:
1011
+ 'Um componente capaz de chamar serviços remotos, usando saídas de outros componentes ou constantes como entradas.',
1012
+
1013
+ url: 'Url',
1014
+ method: 'Método',
1015
+ timeout: 'Tempo de espera',
1016
+ headers: 'Cabeçalhos',
1017
+ cleanHtml: 'Limpar HTML',
1018
+ cleanHtmlTip:
1019
+ 'Se a resposta for formatada em HTML e apenas o conteúdo principal for desejado, ative esta opção.',
1020
+
1021
+ reference: 'Referência',
1022
+ input: 'Entrada',
1023
+ output: 'Saída',
1024
+ parameter: 'Parâmetro',
1025
+ howUseId: 'Como usar o ID do agente?',
1026
+ content: 'Conteúdo',
1027
+ operationResults: 'Resultados da operação',
1028
+ autosaved: 'Autossalvo',
1029
+ optional: 'Opcional',
1030
+ pasteFileLink: 'Cole o link do arquivo',
1031
+ testRun: 'Executar teste',
1032
+ template: 'Modelo',
1033
+ templateDescription:
1034
+ 'Um componente que formata a saída de outro componente.',
1035
+
1036
+ emailComponent: 'Email',
1037
+ emailDescription: 'Enviar um email para um endereço especificado.',
1038
+ smtpServer: 'Servidor SMTP',
1039
+ smtpPort: 'Porta SMTP',
1040
+ senderEmail: 'Email do remetente',
1041
+ authCode: 'Código de autorização',
1042
+ senderName: 'Nome do remetente',
1043
+ toEmail: 'Email do destinatário',
1044
+ ccEmail: 'Email CC',
1045
+ emailSubject: 'Assunto',
1046
+ emailContent: 'Conteúdo',
1047
+ smtpServerRequired: 'Por favor, insira o endereço do servidor SMTP',
1048
+ senderEmailRequired: 'Por favor, insira o email do remetente',
1049
+ authCodeRequired: 'Por favor, insira o código de autorização',
1050
+ toEmailRequired: 'Por favor, insira o email do destinatário',
1051
+ emailContentRequired: 'Por favor, insira o conteúdo do email',
1052
+ emailSentSuccess: 'Email enviado com sucesso',
1053
+ emailSentFailed: 'Falha ao enviar o email',
1054
+
1055
+ dynamicParameters: 'Parâmetros dinâmicos',
1056
+ jsonFormatTip:
1057
+ 'O componente anterior deve fornecer a string JSON no seguinte formato:',
1058
+ toEmailTip: 'to_email: Email do destinatário (Obrigatório)',
1059
+ ccEmailTip: 'cc_email: Email CC (Opcional)',
1060
+ subjectTip: 'subject: Assunto do email (Opcional)',
1061
+ contentTip: 'content: Conteúdo do email (Opcional)',
1062
+ jsonUploadTypeErrorMessage: 'Por favor, carregue um arquivo json',
1063
+ jsonUploadContentErrorMessage: 'Erro no arquivo json',
1064
+
1065
+ iteration: 'Iteração',
1066
+ iterationDescription:
1067
+ 'Este componente primeiramente divide a entrada em um array pelo "delimitador". Realiza os mesmos passos de operação nos elementos do array em sequência até que todos os resultados sejam gerados, o que pode ser entendido como um processador de tarefas em lote. Por exemplo, dentro do nó de tradução de texto longo, se todo o conteúdo for enviado ao nó LLM, o limite de conversação pode ser atingido. O nó anterior pode primeiro dividir o texto longo em fragmentos e cooperar com o nó iterativo para realizar a tradução em lote de cada fragmento para evitar atingir o limite de mensagem do LLM em uma única conversa.',
1068
+
1069
+ delimiterTip:
1070
+ 'Este delimitador é usado para dividir o texto de entrada em várias partes, cuja saída será realizada como entrada de cada iteração.',
1071
+
1072
+ delimiterOptions: {
1073
+ comma: 'Vírgula',
1074
+ lineBreak: 'Quebra de linha',
1075
+ tab: 'Tabulação',
1076
+ underline: 'Sublinhado',
1077
+ diagonal: 'Diagonal',
1078
+ minus: 'Menos',
1079
+ semicolon: 'Ponto e vírgula',
1080
+ },
1081
+ addVariable: 'Adicionar variável',
1082
+ variableSettings: 'Configurações da variável',
1083
+ globalVariables: 'Variáveis globais',
1084
+ systemPrompt: 'Prompt do sistema',
1085
+ addCategory: 'Adicionar categoria',
1086
+ categoryName: 'Nome da categoria',
1087
+ nextStep: 'Próximo passo',
1088
+ footer: {
1089
+ profile: 'Todos os direitos reservados @ React',
1090
+ },
1091
+ layout: {
1092
+ file: 'arquivo',
1093
+ knowledge: 'conhecimento',
1094
+ chat: 'bate-papo',
1095
+ },
1096
+ },
1097
+ },
1098
+ };
1099
+
web/src/locales/vi.ts CHANGED
@@ -15,6 +15,7 @@ export default {
15
  edit: 'Sửa',
16
  upload: 'Tải lên',
17
  english: 'Tiếng Anh',
 
18
  chinese: 'Tiếng Trung giản thể',
19
  traditionalChinese: 'Tiếng Trung phồn thể',
20
  language: 'Ngôn ngữ',
 
15
  edit: 'Sửa',
16
  upload: 'Tải lên',
17
  english: 'Tiếng Anh',
18
+ portugueseBr: 'Tiếng Bồ Đào Nha (Brazil)',
19
  chinese: 'Tiếng Trung giản thể',
20
  traditionalChinese: 'Tiếng Trung phồn thể',
21
  language: 'Ngôn ngữ',
web/src/locales/zh-traditional.ts CHANGED
@@ -15,6 +15,7 @@ export default {
15
  edit: '編輯',
16
  upload: '上傳',
17
  english: '英語',
 
18
  chinese: '簡體中文',
19
  traditionalChinese: '繁體中文',
20
  language: '語言',
 
15
  edit: '編輯',
16
  upload: '上傳',
17
  english: '英語',
18
+ portugeseBr: '葡萄牙語 (巴西)',
19
  chinese: '簡體中文',
20
  traditionalChinese: '繁體中文',
21
  language: '語言',
web/src/locales/zh.ts CHANGED
@@ -15,6 +15,7 @@ export default {
15
  edit: '编辑',
16
  upload: '上传',
17
  english: '英文',
 
18
  chinese: '简体中文',
19
  traditionalChinese: '繁体中文',
20
  language: '语言',
 
15
  edit: '编辑',
16
  upload: '上传',
17
  english: '英文',
18
+ portugeseBr: '葡萄牙语 (巴西)',
19
  chinese: '简体中文',
20
  traditionalChinese: '繁体中文',
21
  language: '语言',
web/src/pages/user-setting/setting-locale/index.tsx CHANGED
@@ -12,6 +12,7 @@ function UserSettingLocale() {
12
  'zh',
13
  'zh-TRADITIONAL',
14
  'ja',
 
15
  ]}
16
  />
17
  );
 
12
  'zh',
13
  'zh-TRADITIONAL',
14
  'ja',
15
+ 'pt-br',
16
  ]}
17
  />
18
  );