Kevin Hu commited on
Commit
4db2410
·
1 Parent(s): 2d64850

Fix agent session API (#3589)

Browse files

### What problem does this PR solve?

#3585
### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)

README.md CHANGED
@@ -20,7 +20,7 @@
20
  <img alt="Static Badge" src="https://img.shields.io/badge/Online-Demo-4e6b99">
21
  </a>
22
  <a href="https://hub.docker.com/r/infiniflow/ragflow" target="_blank">
23
- <img src="https://img.shields.io/badge/docker_pull-ragflow:v0.13.0-brightgreen" alt="docker pull infiniflow/ragflow:v0.13.0">
24
  </a>
25
  <a href="https://github.com/infiniflow/ragflow/releases/latest">
26
  <img src="https://img.shields.io/github/v/release/infiniflow/ragflow?color=blue&label=Latest%20Release" alt="Latest Release">
@@ -176,14 +176,14 @@ releases! 🌟
176
  ```
177
 
178
  > - To download a RAGFlow slim Docker image of a specific version, update the `RAGFLOW_IMAGE` variable in *
179
- *docker/.env** to your desired version. For example, `RAGFLOW_IMAGE=infiniflow/ragflow:v0.13.0-slim`. After
180
  making this change, rerun the command above to initiate the download.
181
  > - To download the dev version of RAGFlow Docker image *including* embedding models and Python libraries, update the
182
  `RAGFLOW_IMAGE` variable in **docker/.env** to `RAGFLOW_IMAGE=infiniflow/ragflow:dev`. After making this change,
183
  rerun the command above to initiate the download.
184
  > - To download a specific version of RAGFlow Docker image *including* embedding models and Python libraries, update
185
  the `RAGFLOW_IMAGE` variable in **docker/.env** to your desired version. For example,
186
- `RAGFLOW_IMAGE=infiniflow/ragflow:v0.13.0`. After making this change, rerun the command above to initiate the
187
  download.
188
 
189
  > **NOTE:** A RAGFlow Docker image that includes embedding models and Python libraries is approximately 9GB in size
 
20
  <img alt="Static Badge" src="https://img.shields.io/badge/Online-Demo-4e6b99">
21
  </a>
22
  <a href="https://hub.docker.com/r/infiniflow/ragflow" target="_blank">
23
+ <img src="https://img.shields.io/badge/docker_pull-ragflow:v0.14.0-brightgreen" alt="docker pull infiniflow/ragflow:v0.14.0">
24
  </a>
25
  <a href="https://github.com/infiniflow/ragflow/releases/latest">
26
  <img src="https://img.shields.io/github/v/release/infiniflow/ragflow?color=blue&label=Latest%20Release" alt="Latest Release">
 
176
  ```
177
 
178
  > - To download a RAGFlow slim Docker image of a specific version, update the `RAGFLOW_IMAGE` variable in *
179
+ *docker/.env** to your desired version. For example, `RAGFLOW_IMAGE=infiniflow/ragflow:v0.14.0-slim`. After
180
  making this change, rerun the command above to initiate the download.
181
  > - To download the dev version of RAGFlow Docker image *including* embedding models and Python libraries, update the
182
  `RAGFLOW_IMAGE` variable in **docker/.env** to `RAGFLOW_IMAGE=infiniflow/ragflow:dev`. After making this change,
183
  rerun the command above to initiate the download.
184
  > - To download a specific version of RAGFlow Docker image *including* embedding models and Python libraries, update
185
  the `RAGFLOW_IMAGE` variable in **docker/.env** to your desired version. For example,
186
+ `RAGFLOW_IMAGE=infiniflow/ragflow:v0.14.0`. After making this change, rerun the command above to initiate the
187
  download.
188
 
189
  > **NOTE:** A RAGFlow Docker image that includes embedding models and Python libraries is approximately 9GB in size
README_id.md CHANGED
@@ -20,7 +20,7 @@
20
  <img alt="Lencana Daring" src="https://img.shields.io/badge/Online-Demo-4e6b99">
21
  </a>
22
  <a href="https://hub.docker.com/r/infiniflow/ragflow" target="_blank">
23
- <img src="https://img.shields.io/badge/docker_pull-ragflow:v0.13.0-brightgreen" alt="docker pull infiniflow/ragflow:v0.13.0">
24
  </a>
25
  <a href="https://github.com/infiniflow/ragflow/releases/latest">
26
  <img src="https://img.shields.io/github/v/release/infiniflow/ragflow?color=blue&label=Rilis%20Terbaru" alt="Rilis Terbaru">
@@ -169,14 +169,14 @@ Coba demo kami di [https://demo.ragflow.io](https://demo.ragflow.io).
169
  ```
170
 
171
  > - Untuk mengunduh versi tertentu dari image Docker RAGFlow slim, perbarui variabel `RAGFlow_IMAGE` di *
172
- *docker/.env** sesuai dengan versi yang diinginkan. Misalnya, `RAGFLOW_IMAGE=infiniflow/ragflow:v0.13.0-slim`.
173
  Setelah mengubah ini, jalankan ulang perintah di atas untuk memulai unduhan.
174
  > - Untuk mengunduh versi dev dari image Docker RAGFlow *termasuk* model embedding dan library Python, perbarui
175
  variabel `RAGFlow_IMAGE` di **docker/.env** menjadi `RAGFLOW_IMAGE=infiniflow/ragflow:dev`. Setelah mengubah ini,
176
  jalankan ulang perintah di atas untuk memulai unduhan.
177
  > - Untuk mengunduh versi tertentu dari image Docker RAGFlow *termasuk* model embedding dan library Python, perbarui
178
  variabel `RAGFlow_IMAGE` di **docker/.env** sesuai dengan versi yang diinginkan. Misalnya,
179
- `RAGFLOW_IMAGE=infiniflow/ragflow:v0.13.0`. Setelah mengubah ini, jalankan ulang perintah di atas untuk memulai unduhan.
180
 
181
  > **CATATAN:** Image Docker RAGFlow yang mencakup model embedding dan library Python berukuran sekitar 9GB
182
  dan mungkin memerlukan waktu lebih lama untuk dimuat.
 
20
  <img alt="Lencana Daring" src="https://img.shields.io/badge/Online-Demo-4e6b99">
21
  </a>
22
  <a href="https://hub.docker.com/r/infiniflow/ragflow" target="_blank">
23
+ <img src="https://img.shields.io/badge/docker_pull-ragflow:v0.14.0-brightgreen" alt="docker pull infiniflow/ragflow:v0.14.0">
24
  </a>
25
  <a href="https://github.com/infiniflow/ragflow/releases/latest">
26
  <img src="https://img.shields.io/github/v/release/infiniflow/ragflow?color=blue&label=Rilis%20Terbaru" alt="Rilis Terbaru">
 
169
  ```
170
 
171
  > - Untuk mengunduh versi tertentu dari image Docker RAGFlow slim, perbarui variabel `RAGFlow_IMAGE` di *
172
+ *docker/.env** sesuai dengan versi yang diinginkan. Misalnya, `RAGFLOW_IMAGE=infiniflow/ragflow:v0.14.0-slim`.
173
  Setelah mengubah ini, jalankan ulang perintah di atas untuk memulai unduhan.
174
  > - Untuk mengunduh versi dev dari image Docker RAGFlow *termasuk* model embedding dan library Python, perbarui
175
  variabel `RAGFlow_IMAGE` di **docker/.env** menjadi `RAGFLOW_IMAGE=infiniflow/ragflow:dev`. Setelah mengubah ini,
176
  jalankan ulang perintah di atas untuk memulai unduhan.
177
  > - Untuk mengunduh versi tertentu dari image Docker RAGFlow *termasuk* model embedding dan library Python, perbarui
178
  variabel `RAGFlow_IMAGE` di **docker/.env** sesuai dengan versi yang diinginkan. Misalnya,
179
+ `RAGFLOW_IMAGE=infiniflow/ragflow:v0.14.0`. Setelah mengubah ini, jalankan ulang perintah di atas untuk memulai unduhan.
180
 
181
  > **CATATAN:** Image Docker RAGFlow yang mencakup model embedding dan library Python berukuran sekitar 9GB
182
  dan mungkin memerlukan waktu lebih lama untuk dimuat.
README_ja.md CHANGED
@@ -20,7 +20,7 @@
20
  <img alt="Static Badge" src="https://img.shields.io/badge/Online-Demo-4e6b99">
21
  </a>
22
  <a href="https://hub.docker.com/r/infiniflow/ragflow" target="_blank">
23
- <img src="https://img.shields.io/badge/docker_pull-ragflow:v0.13.0-brightgreen" alt="docker pull infiniflow/ragflow:v0.13.0">
24
  </a>
25
  <a href="https://github.com/infiniflow/ragflow/releases/latest">
26
  <img src="https://img.shields.io/github/v/release/infiniflow/ragflow?color=blue&label=Latest%20Release" alt="Latest Release">
@@ -148,9 +148,9 @@
148
  $ docker compose -f docker-compose.yml up -d
149
  ```
150
 
151
- > - 特定のバージョンのRAGFlow slim Dockerイメージをダウンロードするには、**docker/.env**内の`RAGFlow_IMAGE`変数を希望のバージョンに更新します。例えば、`RAGFLOW_IMAGE=infiniflow/ragflow:v0.13.0`とします。この変更を行った後、上記のコマンドを再実行してダウンロードを開始してください。
152
  > - RAGFlowの埋め込みモデルとPythonライブラリを含む開発版Dockerイメージをダウンロードするには、**docker/.env**内の`RAGFlow_IMAGE`変数を`RAGFLOW_IMAGE=infiniflow/ragflow:dev`に更新します。この変更を行った後、上記のコマンドを再実行してダウンロードを開始してください。
153
- > - 特定のバージョンのRAGFlow Dockerイメージ(埋め込みモデルとPythonライブラリを含む)をダウンロードするには、**docker/.env**内の`RAGFlow_IMAGE`変数を希望のバージョンに更新します。例えば、`RAGFLOW_IMAGE=infiniflow/ragflow:v0.13.0`とします。この変更を行った後、上記のコマンドを再実行してダウンロードを開始してください。
154
 
155
  > **NOTE:** 埋め込みモデルとPythonライブラリを含むRAGFlow Dockerイメージのサイズは約9GBであり、読み込みにかなりの時間がかかる場合があります。
156
 
 
20
  <img alt="Static Badge" src="https://img.shields.io/badge/Online-Demo-4e6b99">
21
  </a>
22
  <a href="https://hub.docker.com/r/infiniflow/ragflow" target="_blank">
23
+ <img src="https://img.shields.io/badge/docker_pull-ragflow:v0.14.0-brightgreen" alt="docker pull infiniflow/ragflow:v0.14.0">
24
  </a>
25
  <a href="https://github.com/infiniflow/ragflow/releases/latest">
26
  <img src="https://img.shields.io/github/v/release/infiniflow/ragflow?color=blue&label=Latest%20Release" alt="Latest Release">
 
148
  $ docker compose -f docker-compose.yml up -d
149
  ```
150
 
151
+ > - 特定のバージョンのRAGFlow slim Dockerイメージをダウンロードするには、**docker/.env**内の`RAGFlow_IMAGE`変数を希望のバージョンに更新します。例えば、`RAGFLOW_IMAGE=infiniflow/ragflow:v0.14.0`とします。この変更を行った後、上記のコマンドを再実行してダウンロードを開始してください。
152
  > - RAGFlowの埋め込みモデルとPythonライブラリを含む開発版Dockerイメージをダウンロードするには、**docker/.env**内の`RAGFlow_IMAGE`変数を`RAGFLOW_IMAGE=infiniflow/ragflow:dev`に更新します。この変更を行った後、上記のコマンドを再実行してダウンロードを開始してください。
153
+ > - 特定のバージョンのRAGFlow Dockerイメージ(埋め込みモデルとPythonライブラリを含む)をダウンロードするには、**docker/.env**内の`RAGFlow_IMAGE`変数を希望のバージョンに更新します。例えば、`RAGFLOW_IMAGE=infiniflow/ragflow:v0.14.0`とします。この変更を行った後、上記のコマンドを再実行してダウンロードを開始してください。
154
 
155
  > **NOTE:** 埋め込みモデルとPythonライブラリを含むRAGFlow Dockerイメージのサイズは約9GBであり、読み込みにかなりの時間がかかる場合があります。
156
 
README_ko.md CHANGED
@@ -20,7 +20,7 @@
20
  <img alt="Static Badge" src="https://img.shields.io/badge/Online-Demo-4e6b99">
21
  </a>
22
  <a href="https://hub.docker.com/r/infiniflow/ragflow" target="_blank">
23
- <img src="https://img.shields.io/badge/docker_pull-ragflow:v0.13.0-brightgreen" alt="docker pull infiniflow/ragflow:v0.13.0">
24
  </a>
25
  <a href="https://github.com/infiniflow/ragflow/releases/latest">
26
  <img src="https://img.shields.io/github/v/release/infiniflow/ragflow?color=blue&label=Latest%20Release" alt="Latest Release">
@@ -152,9 +152,9 @@
152
  $ docker compose -f docker-compose.yml up -d
153
  ```
154
 
155
- > - 특정 버전의 RAGFlow slim Docker 이미지를 다운로드하려면, **docker/.env**에서 `RAGFlow_IMAGE` 변수를 원하는 버전으로 업데이트하세요. 예를 들어, `RAGFLOW_IMAGE=infiniflow/ragflow:v0.13.0-slim`으로 설정합니다. 이 변경을 완료한 후, 위의 명령을 다시 실행하여 다운로드를 시작하세요.
156
  > - RAGFlow의 임베딩 모델과 Python 라이브러리를 포함한 개발 버전 Docker 이미지를 다운로드하려면, **docker/.env**에서 `RAGFlow_IMAGE` 변수를 `RAGFLOW_IMAGE=infiniflow/ragflow:dev`로 업데이트하세요. 이 변경을 완료한 후, 위의 명령을 다시 실행하여 다운로드를 시작하세요.
157
- > - 특정 버전의 RAGFlow Docker 이미지를 임베딩 모델과 Python 라이브러리를 포함하여 다운로드하려면, **docker/.env**에서 `RAGFlow_IMAGE` 변수를 원하는 버전으로 업데이트하세요. 예를 들어, `RAGFLOW_IMAGE=infiniflow/ragflow:v0.13.0` 로 설정합니다. 이 변경을 완료한 후, 위의 명령을 다시 실행하여 다운로드를 시작하세요.
158
 
159
  > **NOTE:** 임베딩 모델과 Python 라이브러리를 포함한 RAGFlow Docker 이미지의 크기는 약 9GB이며, 로드하는 데 상당히 오랜 시간이 걸릴 수 있습니다.
160
 
 
20
  <img alt="Static Badge" src="https://img.shields.io/badge/Online-Demo-4e6b99">
21
  </a>
22
  <a href="https://hub.docker.com/r/infiniflow/ragflow" target="_blank">
23
+ <img src="https://img.shields.io/badge/docker_pull-ragflow:v0.14.0-brightgreen" alt="docker pull infiniflow/ragflow:v0.14.0">
24
  </a>
25
  <a href="https://github.com/infiniflow/ragflow/releases/latest">
26
  <img src="https://img.shields.io/github/v/release/infiniflow/ragflow?color=blue&label=Latest%20Release" alt="Latest Release">
 
152
  $ docker compose -f docker-compose.yml up -d
153
  ```
154
 
155
+ > - 특정 버전의 RAGFlow slim Docker 이미지를 다운로드하려면, **docker/.env**에서 `RAGFlow_IMAGE` 변수를 원하는 버전으로 업데이트하세요. 예를 들어, `RAGFLOW_IMAGE=infiniflow/ragflow:v0.14.0-slim`으로 설정합니다. 이 변경을 완료한 후, 위의 명령을 다시 실행하여 다운로드를 시작하세요.
156
  > - RAGFlow의 임베딩 모델과 Python 라이브러리를 포함한 개발 버전 Docker 이미지를 다운로드하려면, **docker/.env**에서 `RAGFlow_IMAGE` 변수를 `RAGFLOW_IMAGE=infiniflow/ragflow:dev`로 업데이트하세요. 이 변경을 완료한 후, 위의 명령을 다시 실행하여 다운로드를 시작하세요.
157
+ > - 특정 버전의 RAGFlow Docker 이미지를 임베딩 모델과 Python 라이브러리를 포함하여 다운로드하려면, **docker/.env**에서 `RAGFlow_IMAGE` 변수를 원하는 버전으로 업데이트하세요. 예를 들어, `RAGFLOW_IMAGE=infiniflow/ragflow:v0.14.0` 로 설정합니다. 이 변경을 완료한 후, 위의 명령을 다시 실행하여 다운로드를 시작하세요.
158
 
159
  > **NOTE:** 임베딩 모델과 Python 라이브러리를 포함한 RAGFlow Docker 이미지의 크기는 약 9GB이며, 로드하는 데 상당히 오랜 시간이 걸릴 수 있습니다.
160
 
README_zh.md CHANGED
@@ -20,7 +20,7 @@
20
  <img alt="Static Badge" src="https://img.shields.io/badge/Online-Demo-4e6b99">
21
  </a>
22
  <a href="https://hub.docker.com/r/infiniflow/ragflow" target="_blank">
23
- <img src="https://img.shields.io/badge/docker_pull-ragflow:v0.13.0-brightgreen" alt="docker pull infiniflow/ragflow:v0.13.0">
24
  </a>
25
  <a href="https://github.com/infiniflow/ragflow/releases/latest">
26
  <img src="https://img.shields.io/github/v/release/infiniflow/ragflow?color=blue&label=Latest%20Release" alt="Latest Release">
@@ -149,9 +149,9 @@
149
  $ docker compose -f docker-compose.yml up -d
150
  ```
151
 
152
- > - 如果你想下载并运行特定版本的 RAGFlow slim Docker 镜像,请在 **docker/.env** 文件中找到 `RAGFLOW_IMAGE` 变量,将其改为对应版本。例如 `RAGFLOW_IMAGE=infiniflow/ragflow:v0.13.0-slim`,然后再运行上述命令。
153
  > - 如果您想安装内置 embedding 模型和 Python 库的 dev 版本的 Docker 镜像,需要将 **docker/.env** 文件中的 `RAGFLOW_IMAGE` 变量修改为: `RAGFLOW_IMAGE=infiniflow/ragflow:dev`。
154
- > - 如果您想安装内置 embedding 模型和 Python 库的指定版本的 RAGFlow Docker 镜像,需要将 **docker/.env** 文件中的 `RAGFLOW_IMAGE` 变量修改为: `RAGFLOW_IMAGE=infiniflow/ragflow:v0.13.0`。修改后,再运行上面的命令。
155
  > **注意:** 安装内置 embedding 模型和 Python 库的指定版本的 RAGFlow Docker 镜像大小约 9 GB,可能需要更长时间下载,请耐心等待。
156
 
157
  4. 服务器启动成功后再次确认服务器状态:
 
20
  <img alt="Static Badge" src="https://img.shields.io/badge/Online-Demo-4e6b99">
21
  </a>
22
  <a href="https://hub.docker.com/r/infiniflow/ragflow" target="_blank">
23
+ <img src="https://img.shields.io/badge/docker_pull-ragflow:v0.14.0-brightgreen" alt="docker pull infiniflow/ragflow:v0.14.0">
24
  </a>
25
  <a href="https://github.com/infiniflow/ragflow/releases/latest">
26
  <img src="https://img.shields.io/github/v/release/infiniflow/ragflow?color=blue&label=Latest%20Release" alt="Latest Release">
 
149
  $ docker compose -f docker-compose.yml up -d
150
  ```
151
 
152
+ > - 如果你想下载并运行特定版本的 RAGFlow slim Docker 镜像,请在 **docker/.env** 文件中找到 `RAGFLOW_IMAGE` 变量,将其改为对应版本。例如 `RAGFLOW_IMAGE=infiniflow/ragflow:v0.14.0-slim`,然后再运行上述命令。
153
  > - 如果您想安装内置 embedding 模型和 Python 库的 dev 版本的 Docker 镜像,需要将 **docker/.env** 文件中的 `RAGFLOW_IMAGE` 变量修改为: `RAGFLOW_IMAGE=infiniflow/ragflow:dev`。
154
+ > - 如果您想安装内置 embedding 模型和 Python 库的指定版本的 RAGFlow Docker 镜像,需要将 **docker/.env** 文件中的 `RAGFLOW_IMAGE` 变量修改为: `RAGFLOW_IMAGE=infiniflow/ragflow:v0.14.0`。修改后,再运行上面的命令。
155
  > **注意:** 安装内置 embedding 模型和 Python 库的指定版本的 RAGFlow Docker 镜像大小约 9 GB,可能需要更长时间下载,请耐心等待。
156
 
157
  4. 服务器启动成功后再次确认服务器状态:
agent/component/base.py CHANGED
@@ -390,8 +390,8 @@ class ComponentBase(ABC):
390
  "inputs": {}
391
  }}""".format(self.component_name,
392
  self._param,
393
- json.dumps(json.loads(str(self._param))["output"], ensure_ascii=False),
394
- json.dumps(json.loads(str(self._param))["inputs"], ensure_ascii=False)
395
  )
396
 
397
  def __init__(self, canvas, id, param: ComponentParamBase):
 
390
  "inputs": {}
391
  }}""".format(self.component_name,
392
  self._param,
393
+ json.dumps(json.loads(str(self._param)).get("output", {}), ensure_ascii=False),
394
+ json.dumps(json.loads(str(self._param)).get("inputs", []), ensure_ascii=False)
395
  )
396
 
397
  def __init__(self, canvas, id, param: ComponentParamBase):
agent/component/generate.py CHANGED
@@ -145,7 +145,7 @@ class Generate(ComponentBase):
145
  else: retrieval_res = pd.DataFrame([])
146
 
147
  for n, v in kwargs.items():
148
- prompt = re.sub(r"\{%s\}" % re.escape(n), str(v), prompt)
149
 
150
  if not self._param.inputs and prompt.find("{input}") >= 0:
151
  retrieval_res = self.get_input()
 
145
  else: retrieval_res = pd.DataFrame([])
146
 
147
  for n, v in kwargs.items():
148
+ prompt = re.sub(r"\{%s\}" % re.escape(n), str(v).replace("\\", " "), prompt)
149
 
150
  if not self._param.inputs and prompt.find("{input}") >= 0:
151
  retrieval_res = self.get_input()
agent/component/template.py CHANGED
@@ -79,7 +79,7 @@ class Template(ComponentBase):
79
  self._param.inputs.append({"component_id": para["component_id"], "content": kwargs[para["key"]]})
80
 
81
  for n, v in kwargs.items():
82
- content = re.sub(r"\{%s\}" % re.escape(n), str(v), content)
83
 
84
  return Template.be_output(content)
85
 
 
79
  self._param.inputs.append({"component_id": para["component_id"], "content": kwargs[para["key"]]})
80
 
81
  for n, v in kwargs.items():
82
+ content = re.sub(r"\{%s\}" % re.escape(n), str(v).replace("\\", " "), content)
83
 
84
  return Template.be_output(content)
85
 
agent/templates/interpreter.json CHANGED
@@ -1,7 +1,7 @@
1
  {
2
  "id": 4,
3
  "title": "Interpreter",
4
- "description": "A simple interpreter that translates user input into a target language. Try 'Hi there => Spanish' to see the translation!",
5
  "canvas_type": "chatbot",
6
  "dsl": {
7
  "answer": [],
@@ -13,10 +13,6 @@
13
  "params": {
14
  "inputs": [],
15
  "message_history_window_size": 22,
16
- "output": {
17
- "content": "# Putin Approves New Russian Nuclear Deterrence Policy, China Responds\n\nDuring a regular press conference on November 20th, a reporter asked about two significant events: Russian President Vladimir Putin's approval of the new basic policy on Russia's nuclear deterrence, and the subsequent missile attack by Ukrainian forces on the Bryansk region of Russia. The reporter asked for China's position on these developments.\n\nOn November 19th, President Putin signed a decree approving the updated policy for Russia's nuclear deterrence. The document states that Russia views nuclear weapons as a means of deterrence and that their use would be an extreme measure taken under compulsion. On the same day, the Bryansk region was targeted by six U.S.-made missiles launched by Ukrainian forces. According to a report from the Russian Defense Ministry, all six missiles were intercepted by Russia's air defense systems, with debris falling within a military area in Bryansk.\n\nIn response to these events, Chinese Foreign Ministry spokesperson Lin Jian stated that we have noted the relevant reports. In the current context, all parties should remain calm and restrained, engaging in dialogue and consultation to jointly promote de-escalation and reduce strategic risks.\n\nLin emphasized that China's position on the Ukraine issue has been consistent and clear. China hopes that all parties will work towards easing tensions and pursuing political resolution of the Ukraine crisis. China remains committed to playing a constructive role in this regard.",
18
- "reference": []
19
- },
20
  "output_var_name": "output",
21
  "post_answers": [],
22
  "query": []
@@ -35,31 +31,10 @@
35
  "params": {
36
  "cite": false,
37
  "frequency_penalty": 0.7,
38
- "inputs": [
39
- {
40
- "component_id": "begin@lang",
41
- "content": "English"
42
- },
43
- {
44
- "component_id": "begin@file",
45
- "content": "https://www.sohu.com/a/828560323_162522?edtsign=70AF5B785A09DF20C126EABC2EC4FB4ABA309622&edtcode=2PBU%2BTiMwCHq%2FwmFSXvzFA%3D%3D&scm=10001.663_14-200000.0.10006.&_f=index_cpc_1_0&spm=smpc.channel_258.block4_314_Y6ubu8_1_fd.11.1732094805514oPmAsKj_1090\n\u666e\u4eac\u6279\u51c6\u65b0\u7248\u4fc4\u6838\u5a01\u6151\u56fd\u5bb6\u57fa\u672c\u653f\u7b56\uff0c\u5916\u4ea4\u90e8\u56de\u5e94_\u5e03\u826f\u65af_\u7f8e\u5236_\u4e2d\u65b9\n\u3010\u73af\u7403\u65f6\u62a5-\u73af\u7403\u7f51\u62a5\u9053 \u8bb0\u8005 \u767d\u4e91\u6021\u3011\u572811\u670820\u65e5\u5916\u4ea4\u90e8\u4f8b\u884c\u8bb0\u8005\u4f1a\u4e0a\uff0c\u6709\u8bb0\u8005\u63d0\u95ee\u79f0\uff0c\u4fc4\u7f57\u65af\u603b\u7edf\u666e\u4eac19\u65e5\u7b7e\u7f72\u603b\u7edf\u4ee4\uff0c\u6279\u51c6\u65b0\u7248\u4fc4\u7f57\u65af\u6838\u5a01\u6151\u56fd\u5bb6\u57fa\u672c\u653f\u7b56\u3002\u6587\u4ef6\u79f0\uff0c\u4fc4\u7f57\u65af\u89c6\u6838\u6b66\u5668\u4e3a\u4e00\u79cd\u5a01\u6151\u624b\u6bb5\uff0c\u4f7f\u7528\u6838\u6b66\u5668\u662f\u6781\u7aef\u60c5\u51b5\u4e0b\u88ab\u8feb\u91c7\u53d6\u7684\u63aa\u65bd\u3002\u540c\u65e5\uff0c\u4fc4\u5e03\u826f\u65af\u514b\u5dde\u906d\u5230\u4e4c\u519b6\u679a\u7f8e\u5236\u5bfc\u5f39\u88ad\u51fb\u3002\u4fc4\u56fd\u9632\u90e8\u7684\u901a\u62a5\u79f0\uff0c\u7ecf\u786e\u8ba4\uff0c\u4e4c\u65b9\u4f7f\u7528\u7684\u662f\u7f8e\u5236\u9646\u519b\u6218\u672f\u5bfc\u5f39\u7cfb\u7edf\uff0c6\u679a\u5bfc\u5f39\u5168\u90e8\u88ab\u4fc4\u519b\u9632\u7a7a\u7cfb\u7edf\u62e6\u622a\uff0c\u5bfc\u5f39\u6b8b\u7247\u843d\u5165\u5e03\u826f\u65af\u514b\u5dde\u4e00\u5904\u519b\u4e8b\u533a\u57df\u5185\u3002\u4e2d\u65b9\u5bf9\u8fd9\u4e24\u4ef6\u4e8b\u60c5\u6709\u4f55\u8bc4\u8bba\uff1f\n\n\u5bf9\u6b64\uff0c\u4e2d\u56fd\u5916\u4ea4\u90e8\u53d1\u8a00\u4eba\u6797\u5251\u8868\u793a\uff0c\u6211\u4eec\u6ce8\u610f\u5230\u4e86\u6709\u5173\u62a5\u9053\u3002\u5f53\u524d\u5f62\u52bf\u4e0b\uff0c\u5404\u65b9\u5e94\u5f53\u4fdd\u6301\u51b7\u9759\u514b\u5236\uff0c\u901a\u8fc7\u5bf9\u8bdd\u534f\u5546\u5171\u540c\u63a8\u52a8\u5c40\u52bf\u7f13\u548c\uff0c\u51cf\u5c11\u6218\u7565\u98ce\u9669\u3002\n\n\u6797\u5251\u5f3a\u8c03\uff0c\u5728\u4e4c\u514b\u5170\u95ee\u9898\u4e0a\uff0c\u4e2d\u65b9\u7684\u7acb\u573a\u662f\u4e00\u8d2f\u7684\u3001\u660e\u786e\u7684\u3002\u4e2d\u65b9\u5e0c\u671b\u5404\u65b9\u63a8\u52a8\u7f13\u548c\u5c40\u52bf\u3001\u81f4\u529b\u4e8e\u653f\u6cbb\u89e3\u51b3\u4e4c\u514b\u5170\u5371\u673a\u7684\u7acb\u573a\u6ca1\u6709\u6539\u53d8\uff0c\u5e76\u5c06\u7ee7\u7eed\u4e3a\u6b64\u53d1\u6325\u5efa\u8bbe\u6027\u4f5c\u7528\u3002 \u8fd4\u56de\u641c\u72d0\uff0c\u67e5\u770b\u66f4\u591a\n\n\u8d23\u4efb\u7f16\u8f91\uff1a \u6bb7\u745e\u6c11 UN949\n----\n"
46
- },
47
- {
48
- "component_id": "Generate:RichWordsDeny",
49
- "content": " - # Putin Approves New Russian Nuclear Deterrence Policy, China Responds\n\nIn a recent routine press conference on November 20th, a reporter inquired about two significant events: Russian President Vladimir Putin's approval of the new basic policy on Russia's nuclear deterrence, and the subsequent missile attack by Ukrainian forces on the Bryansk region of Russia. The reporter sought China's stance on these developments.\n\nOn November 19th, President Putin signed a decree approving the updated policy for Russia's nuclear deterrence. The document states that Russia views nuclear weapons as a means of deterrence and that their use would be an extreme measure taken under compulsion. On the same day, the Bryansk region was targeted by six U.S.-made missiles launched by Ukrainian forces. According to a report from the Russian Defense Ministry, all six missiles were intercepted by Russia's air defense systems, with debris falling within a military area in Bryansk.\n\nIn response to these events, Chinese Foreign Ministry spokesperson Lin Jian stated that China has taken note of the relevant reports. In the current context, all parties should remain calm and restrained, engaging in dialogue and consultation to jointly promote de-escalation and reduce strategic risks.\n\nLin emphasized that China's position on the Ukraine issue has been consistent and clear. China hopes that all parties will work towards easing tensions and pursuing political resolution of the Ukraine crisis. China remains committed to playing a constructive role in this regard."
50
- },
51
- {
52
- "component_id": "Generate:SlimyFrogsArgue",
53
- "content": " - 1. **Accuracy**: The translation incorrectly states \"Chinese Foreign Ministry spokesperson Lin Jian\" instead of \"Chinese Foreign Ministry spokesperson Lin Jian.\" The correct name is \"Lin Jian,\" not \"Lin Jian.\"\n\n2. **Fluency**: The phrase \"In a recent routine press conference on November 20th, a reporter inquired about two significant events\" can be more fluently translated as \"During a regular press conference on November 20th, a reporter asked about two significant events.\"\n\n3. **Fluency**: The sentence \"The reporter sought China's stance on these developments\" can be improved to read more naturally: \"The reporter asked for China's position on these developments.\"\n\n4. **Style**: The phrase \"China has taken note of the relevant reports\" could be more stylistically aligned with the source text by using: \"We have noted the relevant reports.\"\n\n5. **Terminology**: The term \"Bryansk region\" should be consistently used throughout the translation instead of switching between \"Bryansk region\" and \"Bryansk.\""
54
- }
55
- ],
56
  "llm_id": "deepseek-chat@DeepSeek",
57
  "max_tokens": 0,
58
  "message_history_window_size": 12,
59
- "output": {
60
- "content": "# Putin Approves New Russian Nuclear Deterrence Policy, China Responds\n\nDuring a regular press conference on November 20th, a reporter asked about two significant events: Russian President Vladimir Putin's approval of the new basic policy on Russia's nuclear deterrence, and the subsequent missile attack by Ukrainian forces on the Bryansk region of Russia. The reporter asked for China's position on these developments.\n\nOn November 19th, President Putin signed a decree approving the updated policy for Russia's nuclear deterrence. The document states that Russia views nuclear weapons as a means of deterrence and that their use would be an extreme measure taken under compulsion. On the same day, the Bryansk region was targeted by six U.S.-made missiles launched by Ukrainian forces. According to a report from the Russian Defense Ministry, all six missiles were intercepted by Russia's air defense systems, with debris falling within a military area in Bryansk.\n\nIn response to these events, Chinese Foreign Ministry spokesperson Lin Jian stated that we have noted the relevant reports. In the current context, all parties should remain calm and restrained, engaging in dialogue and consultation to jointly promote de-escalation and reduce strategic risks.\n\nLin emphasized that China's position on the Ukraine issue has been consistent and clear. China hopes that all parties will work towards easing tensions and pursuing political resolution of the Ukraine crisis. China remains committed to playing a constructive role in this regard.",
61
- "reference": []
62
- },
63
  "output_var_name": "output",
64
  "parameters": [
65
  {
@@ -103,24 +78,10 @@
103
  "params": {
104
  "cite": false,
105
  "frequency_penalty": 0.7,
106
- "inputs": [
107
- {
108
- "component_id": "begin@lang",
109
- "content": "English"
110
- },
111
- {
112
- "component_id": "begin@file",
113
- "content": "https://www.sohu.com/a/828560323_162522?edtsign=70AF5B785A09DF20C126EABC2EC4FB4ABA309622&edtcode=2PBU%2BTiMwCHq%2FwmFSXvzFA%3D%3D&scm=10001.663_14-200000.0.10006.&_f=index_cpc_1_0&spm=smpc.channel_258.block4_314_Y6ubu8_1_fd.11.1732094805514oPmAsKj_1090\n\u666e\u4eac\u6279\u51c6\u65b0\u7248\u4fc4\u6838\u5a01\u6151\u56fd\u5bb6\u57fa\u672c\u653f\u7b56\uff0c\u5916\u4ea4\u90e8\u56de\u5e94_\u5e03\u826f\u65af_\u7f8e\u5236_\u4e2d\u65b9\n\u3010\u73af\u7403\u65f6\u62a5-\u73af\u7403\u7f51\u62a5\u9053 \u8bb0\u8005 \u767d\u4e91\u6021\u3011\u572811\u670820\u65e5\u5916\u4ea4\u90e8\u4f8b\u884c\u8bb0\u8005\u4f1a\u4e0a\uff0c\u6709\u8bb0\u8005\u63d0\u95ee\u79f0\uff0c\u4fc4\u7f57\u65af\u603b\u7edf\u666e\u4eac19\u65e5\u7b7e\u7f72\u603b\u7edf\u4ee4\uff0c\u6279\u51c6\u65b0\u7248\u4fc4\u7f57\u65af\u6838\u5a01\u6151\u56fd\u5bb6\u57fa\u672c\u653f\u7b56\u3002\u6587\u4ef6\u79f0\uff0c\u4fc4\u7f57\u65af\u89c6\u6838\u6b66\u5668\u4e3a\u4e00\u79cd\u5a01\u6151\u624b\u6bb5\uff0c\u4f7f\u7528\u6838\u6b66\u5668\u662f\u6781\u7aef\u60c5\u51b5\u4e0b\u88ab\u8feb\u91c7\u53d6\u7684\u63aa\u65bd\u3002\u540c\u65e5\uff0c\u4fc4\u5e03\u826f\u65af\u514b\u5dde\u906d\u5230\u4e4c\u519b6\u679a\u7f8e\u5236\u5bfc\u5f39\u88ad\u51fb\u3002\u4fc4\u56fd\u9632\u90e8\u7684\u901a\u62a5\u79f0\uff0c\u7ecf\u786e\u8ba4\uff0c\u4e4c\u65b9\u4f7f\u7528\u7684\u662f\u7f8e\u5236\u9646\u519b\u6218\u672f\u5bfc\u5f39\u7cfb\u7edf\uff0c6\u679a\u5bfc\u5f39\u5168\u90e8\u88ab\u4fc4\u519b\u9632\u7a7a\u7cfb\u7edf\u62e6\u622a\uff0c\u5bfc\u5f39\u6b8b\u7247\u843d\u5165\u5e03\u826f\u65af\u514b\u5dde\u4e00\u5904\u519b\u4e8b\u533a\u57df\u5185\u3002\u4e2d\u65b9\u5bf9\u8fd9\u4e24\u4ef6\u4e8b\u60c5\u6709\u4f55\u8bc4\u8bba\uff1f\n\n\u5bf9\u6b64\uff0c\u4e2d\u56fd\u5916\u4ea4\u90e8\u53d1\u8a00\u4eba\u6797\u5251\u8868\u793a\uff0c\u6211\u4eec\u6ce8\u610f\u5230\u4e86\u6709\u5173\u62a5\u9053\u3002\u5f53\u524d\u5f62\u52bf\u4e0b\uff0c\u5404\u65b9\u5e94\u5f53\u4fdd\u6301\u51b7\u9759\u514b\u5236\uff0c\u901a\u8fc7\u5bf9\u8bdd\u534f\u5546\u5171\u540c\u63a8\u52a8\u5c40\u52bf\u7f13\u548c\uff0c\u51cf\u5c11\u6218\u7565\u98ce\u9669\u3002\n\n\u6797\u5251\u5f3a\u8c03\uff0c\u5728\u4e4c\u514b\u5170\u95ee\u9898\u4e0a\uff0c\u4e2d\u65b9\u7684\u7acb\u573a\u662f\u4e00\u8d2f\u7684\u3001\u660e\u786e\u7684\u3002\u4e2d\u65b9\u5e0c\u671b\u5404\u65b9\u63a8\u52a8\u7f13\u548c\u5c40\u52bf\u3001\u81f4\u529b\u4e8e\u653f\u6cbb\u89e3\u51b3\u4e4c\u514b\u5170\u5371\u673a\u7684\u7acb\u573a\u6ca1\u6709\u6539\u53d8\uff0c\u5e76\u5c06\u7ee7\u7eed\u4e3a\u6b64\u53d1\u6325\u5efa\u8bbe\u6027\u4f5c\u7528\u3002 \u8fd4\u56de\u641c\u72d0\uff0c\u67e5\u770b\u66f4\u591a\n\n\u8d23\u4efb\u7f16\u8f91\uff1a \u6bb7\u745e\u6c11 UN949\n----\n"
114
- }
115
- ],
116
  "llm_id": "deepseek-chat@DeepSeek",
117
  "max_tokens": 0,
118
  "message_history_window_size": 12,
119
- "output": {
120
- "content": {
121
- "0": "# Putin Approves New Russian Nuclear Deterrence Policy, China Responds\n\nIn a recent routine press conference on November 20th, a reporter inquired about two significant events: Russian President Vladimir Putin's approval of the new basic policy on Russia's nuclear deterrence, and the subsequent missile attack by Ukrainian forces on the Bryansk region of Russia. The reporter sought China's stance on these developments.\n\nOn November 19th, President Putin signed a decree approving the updated policy for Russia's nuclear deterrence. The document states that Russia views nuclear weapons as a means of deterrence and that their use would be an extreme measure taken under compulsion. On the same day, the Bryansk region was targeted by six U.S.-made missiles launched by Ukrainian forces. According to a report from the Russian Defense Ministry, all six missiles were intercepted by Russia's air defense systems, with debris falling within a military area in Bryansk.\n\nIn response to these events, Chinese Foreign Ministry spokesperson Lin Jian stated that China has taken note of the relevant reports. In the current context, all parties should remain calm and restrained, engaging in dialogue and consultation to jointly promote de-escalation and reduce strategic risks.\n\nLin emphasized that China's position on the Ukraine issue has been consistent and clear. China hopes that all parties will work towards easing tensions and pursuing political resolution of the Ukraine crisis. China remains committed to playing a constructive role in this regard."
122
- }
123
- },
124
  "output_var_name": "output",
125
  "parameters": [
126
  {
@@ -154,28 +115,10 @@
154
  "params": {
155
  "cite": false,
156
  "frequency_penalty": 0.7,
157
- "inputs": [
158
- {
159
- "component_id": "begin@lang",
160
- "content": "English"
161
- },
162
- {
163
- "component_id": "begin@file",
164
- "content": "https://www.sohu.com/a/828560323_162522?edtsign=70AF5B785A09DF20C126EABC2EC4FB4ABA309622&edtcode=2PBU%2BTiMwCHq%2FwmFSXvzFA%3D%3D&scm=10001.663_14-200000.0.10006.&_f=index_cpc_1_0&spm=smpc.channel_258.block4_314_Y6ubu8_1_fd.11.1732094805514oPmAsKj_1090\n\u666e\u4eac\u6279\u51c6\u65b0\u7248\u4fc4\u6838\u5a01\u6151\u56fd\u5bb6\u57fa\u672c\u653f\u7b56\uff0c\u5916\u4ea4\u90e8\u56de\u5e94_\u5e03\u826f\u65af_\u7f8e\u5236_\u4e2d\u65b9\n\u3010\u73af\u7403\u65f6\u62a5-\u73af\u7403\u7f51\u62a5\u9053 \u8bb0\u8005 \u767d\u4e91\u6021\u3011\u572811\u670820\u65e5\u5916\u4ea4\u90e8\u4f8b\u884c\u8bb0\u8005\u4f1a\u4e0a\uff0c\u6709\u8bb0\u8005\u63d0\u95ee\u79f0\uff0c\u4fc4\u7f57\u65af\u603b\u7edf\u666e\u4eac19\u65e5\u7b7e\u7f72\u603b\u7edf\u4ee4\uff0c\u6279\u51c6\u65b0\u7248\u4fc4\u7f57\u65af\u6838\u5a01\u6151\u56fd\u5bb6\u57fa\u672c\u653f\u7b56\u3002\u6587\u4ef6\u79f0\uff0c\u4fc4\u7f57\u65af\u89c6\u6838\u6b66\u5668\u4e3a\u4e00\u79cd\u5a01\u6151\u624b\u6bb5\uff0c\u4f7f\u7528\u6838\u6b66\u5668\u662f\u6781\u7aef\u60c5\u51b5\u4e0b\u88ab\u8feb\u91c7\u53d6\u7684\u63aa\u65bd\u3002\u540c\u65e5\uff0c\u4fc4\u5e03\u826f\u65af\u514b\u5dde\u906d\u5230\u4e4c\u519b6\u679a\u7f8e\u5236\u5bfc\u5f39\u88ad\u51fb\u3002\u4fc4\u56fd\u9632\u90e8\u7684\u901a\u62a5\u79f0\uff0c\u7ecf\u786e\u8ba4\uff0c\u4e4c\u65b9\u4f7f\u7528\u7684\u662f\u7f8e\u5236\u9646\u519b\u6218\u672f\u5bfc\u5f39\u7cfb\u7edf\uff0c6\u679a\u5bfc\u5f39\u5168\u90e8\u88ab\u4fc4\u519b\u9632\u7a7a\u7cfb\u7edf\u62e6\u622a\uff0c\u5bfc\u5f39\u6b8b\u7247\u843d\u5165\u5e03\u826f\u65af\u514b\u5dde\u4e00\u5904\u519b\u4e8b\u533a\u57df\u5185\u3002\u4e2d\u65b9\u5bf9\u8fd9\u4e24\u4ef6\u4e8b\u60c5\u6709\u4f55\u8bc4\u8bba\uff1f\n\n\u5bf9\u6b64\uff0c\u4e2d\u56fd\u5916\u4ea4\u90e8\u53d1\u8a00\u4eba\u6797\u5251\u8868\u793a\uff0c\u6211\u4eec\u6ce8\u610f\u5230\u4e86\u6709\u5173\u62a5\u9053\u3002\u5f53\u524d\u5f62\u52bf\u4e0b\uff0c\u5404\u65b9\u5e94\u5f53\u4fdd\u6301\u51b7\u9759\u514b\u5236\uff0c\u901a\u8fc7\u5bf9\u8bdd\u534f\u5546\u5171\u540c\u63a8\u52a8\u5c40\u52bf\u7f13\u548c\uff0c\u51cf\u5c11\u6218\u7565\u98ce\u9669\u3002\n\n\u6797\u5251\u5f3a\u8c03\uff0c\u5728\u4e4c\u514b\u5170\u95ee\u9898\u4e0a\uff0c\u4e2d\u65b9\u7684\u7acb\u573a\u662f\u4e00\u8d2f\u7684\u3001\u660e\u786e\u7684\u3002\u4e2d\u65b9\u5e0c\u671b\u5404\u65b9\u63a8\u52a8\u7f13\u548c\u5c40\u52bf\u3001\u81f4\u529b\u4e8e\u653f\u6cbb\u89e3\u51b3\u4e4c\u514b\u5170\u5371\u673a\u7684\u7acb\u573a\u6ca1\u6709\u6539\u53d8\uff0c\u5e76\u5c06\u7ee7\u7eed\u4e3a\u6b64\u53d1\u6325\u5efa\u8bbe\u6027\u4f5c\u7528\u3002 \u8fd4\u56de\u641c\u72d0\uff0c\u67e5\u770b\u66f4\u591a\n\n\u8d23\u4efb\u7f16\u8f91\uff1a \u6bb7\u745e\u6c11 UN949\n----\n"
165
- },
166
- {
167
- "component_id": "Generate:RichWordsDeny",
168
- "content": " - # Putin Approves New Russian Nuclear Deterrence Policy, China Responds\n\nIn a recent routine press conference on November 20th, a reporter inquired about two significant events: Russian President Vladimir Putin's approval of the new basic policy on Russia's nuclear deterrence, and the subsequent missile attack by Ukrainian forces on the Bryansk region of Russia. The reporter sought China's stance on these developments.\n\nOn November 19th, President Putin signed a decree approving the updated policy for Russia's nuclear deterrence. The document states that Russia views nuclear weapons as a means of deterrence and that their use would be an extreme measure taken under compulsion. On the same day, the Bryansk region was targeted by six U.S.-made missiles launched by Ukrainian forces. According to a report from the Russian Defense Ministry, all six missiles were intercepted by Russia's air defense systems, with debris falling within a military area in Bryansk.\n\nIn response to these events, Chinese Foreign Ministry spokesperson Lin Jian stated that China has taken note of the relevant reports. In the current context, all parties should remain calm and restrained, engaging in dialogue and consultation to jointly promote de-escalation and reduce strategic risks.\n\nLin emphasized that China's position on the Ukraine issue has been consistent and clear. China hopes that all parties will work towards easing tensions and pursuing political resolution of the Ukraine crisis. China remains committed to playing a constructive role in this regard."
169
- }
170
- ],
171
  "llm_id": "deepseek-chat@DeepSeek",
172
  "max_tokens": 0,
173
  "message_history_window_size": 12,
174
- "output": {
175
- "content": {
176
- "0": "1. **Accuracy**: The translation incorrectly states \"Chinese Foreign Ministry spokesperson Lin Jian\" instead of \"Chinese Foreign Ministry spokesperson Lin Jian.\" The correct name is \"Lin Jian,\" not \"Lin Jian.\"\n\n2. **Fluency**: The phrase \"In a recent routine press conference on November 20th, a reporter inquired about two significant events\" can be more fluently translated as \"During a regular press conference on November 20th, a reporter asked about two significant events.\"\n\n3. **Fluency**: The sentence \"The reporter sought China's stance on these developments\" can be improved to read more naturally: \"The reporter asked for China's position on these developments.\"\n\n4. **Style**: The phrase \"China has taken note of the relevant reports\" could be more stylistically aligned with the source text by using: \"We have noted the relevant reports.\"\n\n5. **Terminology**: The term \"Bryansk region\" should be consistently used throughout the translation instead of switching between \"Bryansk region\" and \"Bryansk.\""
177
- }
178
- },
179
  "output_var_name": "output",
180
  "parameters": [
181
  {
@@ -223,14 +166,14 @@
223
  "name": "Target Language",
224
  "optional": false,
225
  "type": "line",
226
- "value": "English"
227
  },
228
  {
229
  "key": "file",
230
  "name": "Files",
231
  "optional": false,
232
  "type": "file",
233
- "value": "https://www.sohu.com/a/828560323_162522?edtsign=70AF5B785A09DF20C126EABC2EC4FB4ABA309622&edtcode=2PBU%2BTiMwCHq%2FwmFSXvzFA%3D%3D&scm=10001.663_14-200000.0.10006.&_f=index_cpc_1_0&spm=smpc.channel_258.block4_314_Y6ubu8_1_fd.11.1732094805514oPmAsKj_1090\n\u666e\u4eac\u6279\u51c6\u65b0\u7248\u4fc4\u6838\u5a01\u6151\u56fd\u5bb6\u57fa\u672c\u653f\u7b56\uff0c\u5916\u4ea4\u90e8\u56de\u5e94_\u5e03\u826f\u65af_\u7f8e\u5236_\u4e2d\u65b9\n\u3010\u73af\u7403\u65f6\u62a5-\u73af\u7403\u7f51\u62a5\u9053 \u8bb0\u8005 \u767d\u4e91\u6021\u3011\u572811\u670820\u65e5\u5916\u4ea4\u90e8\u4f8b\u884c\u8bb0\u8005\u4f1a\u4e0a\uff0c\u6709\u8bb0\u8005\u63d0\u95ee\u79f0\uff0c\u4fc4\u7f57\u65af\u603b\u7edf\u666e\u4eac19\u65e5\u7b7e\u7f72\u603b\u7edf\u4ee4\uff0c\u6279\u51c6\u65b0\u7248\u4fc4\u7f57\u65af\u6838\u5a01\u6151\u56fd\u5bb6\u57fa\u672c\u653f\u7b56\u3002\u6587\u4ef6\u79f0\uff0c\u4fc4\u7f57\u65af\u89c6\u6838\u6b66\u5668\u4e3a\u4e00\u79cd\u5a01\u6151\u624b\u6bb5\uff0c\u4f7f\u7528\u6838\u6b66\u5668\u662f\u6781\u7aef\u60c5\u51b5\u4e0b\u88ab\u8feb\u91c7\u53d6\u7684\u63aa\u65bd\u3002\u540c\u65e5\uff0c\u4fc4\u5e03\u826f\u65af\u514b\u5dde\u906d\u5230\u4e4c\u519b6\u679a\u7f8e\u5236\u5bfc\u5f39\u88ad\u51fb\u3002\u4fc4\u56fd\u9632\u90e8\u7684\u901a\u62a5\u79f0\uff0c\u7ecf\u786e\u8ba4\uff0c\u4e4c\u65b9\u4f7f\u7528\u7684\u662f\u7f8e\u5236\u9646\u519b\u6218\u672f\u5bfc\u5f39\u7cfb\u7edf\uff0c6\u679a\u5bfc\u5f39\u5168\u90e8\u88ab\u4fc4\u519b\u9632\u7a7a\u7cfb\u7edf\u62e6\u622a\uff0c\u5bfc\u5f39\u6b8b\u7247\u843d\u5165\u5e03\u826f\u65af\u514b\u5dde\u4e00\u5904\u519b\u4e8b\u533a\u57df\u5185\u3002\u4e2d\u65b9\u5bf9\u8fd9\u4e24\u4ef6\u4e8b\u60c5\u6709\u4f55\u8bc4\u8bba\uff1f\n\n\u5bf9\u6b64\uff0c\u4e2d\u56fd\u5916\u4ea4\u90e8\u53d1\u8a00\u4eba\u6797\u5251\u8868\u793a\uff0c\u6211\u4eec\u6ce8\u610f\u5230\u4e86\u6709\u5173\u62a5\u9053\u3002\u5f53\u524d\u5f62\u52bf\u4e0b\uff0c\u5404\u65b9\u5e94\u5f53\u4fdd\u6301\u51b7\u9759\u514b\u5236\uff0c\u901a\u8fc7\u5bf9\u8bdd\u534f\u5546\u5171\u540c\u63a8\u52a8\u5c40\u52bf\u7f13\u548c\uff0c\u51cf\u5c11\u6218\u7565\u98ce\u9669\u3002\n\n\u6797\u5251\u5f3a\u8c03\uff0c\u5728\u4e4c\u514b\u5170\u95ee\u9898\u4e0a\uff0c\u4e2d\u65b9\u7684\u7acb\u573a\u662f\u4e00\u8d2f\u7684\u3001\u660e\u786e\u7684\u3002\u4e2d\u65b9\u5e0c\u671b\u5404\u65b9\u63a8\u52a8\u7f13\u548c\u5c40\u52bf\u3001\u81f4\u529b\u4e8e\u653f\u6cbb\u89e3\u51b3\u4e4c\u514b\u5170\u5371\u673a\u7684\u7acb\u573a\u6ca1\u6709\u6539\u53d8\uff0c\u5e76\u5c06\u7ee7\u7eed\u4e3a\u6b64\u53d1\u6325\u5efa\u8bbe\u6027\u4f5c\u7528\u3002 \u8fd4\u56de\u641c\u72d0\uff0c\u67e5\u770b\u66f4\u591a\n\n\u8d23\u4efb\u7f16\u8f91\uff1a \u6bb7\u745e\u6c11 UN949\n----\n"
234
  }
235
  ]
236
  }
@@ -305,14 +248,14 @@
305
  "name": "Target Language",
306
  "optional": false,
307
  "type": "line",
308
- "value": "English"
309
  },
310
  {
311
  "key": "file",
312
  "name": "Files",
313
  "optional": false,
314
  "type": "file",
315
- "value": "https://www.sohu.com/a/828560323_162522?edtsign=70AF5B785A09DF20C126EABC2EC4FB4ABA309622&edtcode=2PBU%2BTiMwCHq%2FwmFSXvzFA%3D%3D&scm=10001.663_14-200000.0.10006.&_f=index_cpc_1_0&spm=smpc.channel_258.block4_314_Y6ubu8_1_fd.11.1732094805514oPmAsKj_1090\n\u666e\u4eac\u6279\u51c6\u65b0\u7248\u4fc4\u6838\u5a01\u6151\u56fd\u5bb6\u57fa\u672c\u653f\u7b56\uff0c\u5916\u4ea4\u90e8\u56de\u5e94_\u5e03\u826f\u65af_\u7f8e\u5236_\u4e2d\u65b9\n\u3010\u73af\u7403\u65f6\u62a5-\u73af\u7403\u7f51\u62a5\u9053 \u8bb0\u8005 \u767d\u4e91\u6021\u3011\u572811\u670820\u65e5\u5916\u4ea4\u90e8\u4f8b\u884c\u8bb0\u8005\u4f1a\u4e0a\uff0c\u6709\u8bb0\u8005\u63d0\u95ee\u79f0\uff0c\u4fc4\u7f57\u65af\u603b\u7edf\u666e\u4eac19\u65e5\u7b7e\u7f72\u603b\u7edf\u4ee4\uff0c\u6279\u51c6\u65b0\u7248\u4fc4\u7f57\u65af\u6838\u5a01\u6151\u56fd\u5bb6\u57fa\u672c\u653f\u7b56\u3002\u6587\u4ef6\u79f0\uff0c\u4fc4\u7f57\u65af\u89c6\u6838\u6b66\u5668\u4e3a\u4e00\u79cd\u5a01\u6151\u624b\u6bb5\uff0c\u4f7f\u7528\u6838\u6b66\u5668\u662f\u6781\u7aef\u60c5\u51b5\u4e0b\u88ab\u8feb\u91c7\u53d6\u7684\u63aa\u65bd\u3002\u540c\u65e5\uff0c\u4fc4\u5e03\u826f\u65af\u514b\u5dde\u906d\u5230\u4e4c\u519b6\u679a\u7f8e\u5236\u5bfc\u5f39\u88ad\u51fb\u3002\u4fc4\u56fd\u9632\u90e8\u7684\u901a\u62a5\u79f0\uff0c\u7ecf\u786e\u8ba4\uff0c\u4e4c\u65b9\u4f7f\u7528\u7684\u662f\u7f8e\u5236\u9646\u519b\u6218\u672f\u5bfc\u5f39\u7cfb\u7edf\uff0c6\u679a\u5bfc\u5f39\u5168\u90e8\u88ab\u4fc4\u519b\u9632\u7a7a\u7cfb\u7edf\u62e6\u622a\uff0c\u5bfc\u5f39\u6b8b\u7247\u843d\u5165\u5e03\u826f\u65af\u514b\u5dde\u4e00\u5904\u519b\u4e8b\u533a\u57df\u5185\u3002\u4e2d\u65b9\u5bf9\u8fd9\u4e24\u4ef6\u4e8b\u60c5\u6709\u4f55\u8bc4\u8bba\uff1f\n\n\u5bf9\u6b64\uff0c\u4e2d\u56fd\u5916\u4ea4\u90e8\u53d1\u8a00\u4eba\u6797\u5251\u8868\u793a\uff0c\u6211\u4eec\u6ce8\u610f\u5230\u4e86\u6709\u5173\u62a5\u9053\u3002\u5f53\u524d\u5f62\u52bf\u4e0b\uff0c\u5404\u65b9\u5e94\u5f53\u4fdd\u6301\u51b7\u9759\u514b\u5236\uff0c\u901a\u8fc7\u5bf9\u8bdd\u534f\u5546\u5171\u540c\u63a8\u52a8\u5c40\u52bf\u7f13\u548c\uff0c\u51cf\u5c11\u6218\u7565\u98ce\u9669\u3002\n\n\u6797\u5251\u5f3a\u8c03\uff0c\u5728\u4e4c\u514b\u5170\u95ee\u9898\u4e0a\uff0c\u4e2d\u65b9\u7684\u7acb\u573a\u662f\u4e00\u8d2f\u7684\u3001\u660e\u786e\u7684\u3002\u4e2d\u65b9\u5e0c\u671b\u5404\u65b9\u63a8\u52a8\u7f13\u548c\u5c40\u52bf\u3001\u81f4\u529b\u4e8e\u653f\u6cbb\u89e3\u51b3\u4e4c\u514b\u5170\u5371\u673a\u7684\u7acb\u573a\u6ca1\u6709\u6539\u53d8\uff0c\u5e76\u5c06\u7ee7\u7eed\u4e3a\u6b64\u53d1\u6325\u5efa\u8bbe\u6027\u4f5c\u7528\u3002 \u8fd4\u56de\u641c\u72d0\uff0c\u67e5\u770b\u66f4\u591a\n\n\u8d23\u4efb\u7f16\u8f91\uff1a \u6bb7\u745e\u6c11 UN949\n----\n"
316
  }
317
  ]
318
  },
 
1
  {
2
  "id": 4,
3
  "title": "Interpreter",
4
+ "description": "Translation Agent: Agentic translation using reflection workflow.\n\nThis is inspired by Andrew NG's project: https://github.com/andrewyng/translation-agent\n\n",
5
  "canvas_type": "chatbot",
6
  "dsl": {
7
  "answer": [],
 
13
  "params": {
14
  "inputs": [],
15
  "message_history_window_size": 22,
 
 
 
 
16
  "output_var_name": "output",
17
  "post_answers": [],
18
  "query": []
 
31
  "params": {
32
  "cite": false,
33
  "frequency_penalty": 0.7,
34
+ "inputs": [],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  "llm_id": "deepseek-chat@DeepSeek",
36
  "max_tokens": 0,
37
  "message_history_window_size": 12,
 
 
 
 
38
  "output_var_name": "output",
39
  "parameters": [
40
  {
 
78
  "params": {
79
  "cite": false,
80
  "frequency_penalty": 0.7,
81
+ "inputs": [],
 
 
 
 
 
 
 
 
 
82
  "llm_id": "deepseek-chat@DeepSeek",
83
  "max_tokens": 0,
84
  "message_history_window_size": 12,
 
 
 
 
 
85
  "output_var_name": "output",
86
  "parameters": [
87
  {
 
115
  "params": {
116
  "cite": false,
117
  "frequency_penalty": 0.7,
118
+ "inputs": [],
 
 
 
 
 
 
 
 
 
 
 
 
 
119
  "llm_id": "deepseek-chat@DeepSeek",
120
  "max_tokens": 0,
121
  "message_history_window_size": 12,
 
 
 
 
 
122
  "output_var_name": "output",
123
  "parameters": [
124
  {
 
166
  "name": "Target Language",
167
  "optional": false,
168
  "type": "line",
169
+ "value": ""
170
  },
171
  {
172
  "key": "file",
173
  "name": "Files",
174
  "optional": false,
175
  "type": "file",
176
+ "value": ""
177
  }
178
  ]
179
  }
 
248
  "name": "Target Language",
249
  "optional": false,
250
  "type": "line",
251
+ "value": ""
252
  },
253
  {
254
  "key": "file",
255
  "name": "Files",
256
  "optional": false,
257
  "type": "file",
258
+ "value": ""
259
  }
260
  ]
261
  },
api/apps/sdk/session.py CHANGED
@@ -77,7 +77,7 @@ def create_agent_session(tenant_id, agent_id):
77
  conv = {
78
  "id": get_uuid(),
79
  "dialog_id": cvs.id,
80
- "user_id": req.get("usr_id",""),
81
  "message": [{"role": "assistant", "content": canvas.get_prologue()}],
82
  "source": "agent"
83
  }
@@ -345,7 +345,7 @@ def agent_completion(tenant_id, agent_id):
345
  API4ConversationService.append_message(conv.id, conv.to_dict())
346
  except Exception as e:
347
  cvs.dsl = json.loads(str(canvas))
348
- UserCanvasService.update_by_id(req["id"], cvs.to_dict())
349
  yield "data:" + json.dumps({"code": 500, "message": str(e),
350
  "data": {"answer": "**ERROR**: " + str(e), "reference": []}},
351
  ensure_ascii=False) + "\n\n"
@@ -365,7 +365,6 @@ def agent_completion(tenant_id, agent_id):
365
  if final_ans.get("reference"):
366
  canvas.reference.append(final_ans["reference"])
367
  cvs.dsl = json.loads(str(canvas))
368
- UserCanvasService.update_by_id(req["id"], cvs.to_dict())
369
 
370
  result = {"answer": final_ans["content"], "reference": final_ans.get("reference", [])}
371
  fillin_conv(result)
 
77
  conv = {
78
  "id": get_uuid(),
79
  "dialog_id": cvs.id,
80
+ "user_id": req.get("usr_id","") if isinstance(req, dict) else "",
81
  "message": [{"role": "assistant", "content": canvas.get_prologue()}],
82
  "source": "agent"
83
  }
 
345
  API4ConversationService.append_message(conv.id, conv.to_dict())
346
  except Exception as e:
347
  cvs.dsl = json.loads(str(canvas))
348
+ API4ConversationService.append_message(conv.id, conv.to_dict())
349
  yield "data:" + json.dumps({"code": 500, "message": str(e),
350
  "data": {"answer": "**ERROR**: " + str(e), "reference": []}},
351
  ensure_ascii=False) + "\n\n"
 
365
  if final_ans.get("reference"):
366
  canvas.reference.append(final_ans["reference"])
367
  cvs.dsl = json.loads(str(canvas))
 
368
 
369
  result = {"answer": final_ans["content"], "reference": final_ans.get("reference", [])}
370
  fillin_conv(result)
docs/guides/configure_knowledge_base.md CHANGED
@@ -128,7 +128,7 @@ RAGFlow uses multiple recall of both full-text search and vector search in its c
128
 
129
  ## Search for knowledge base
130
 
131
- As of RAGFlow v0.13.0, the search feature is still in a rudimentary form, supporting only knowledge base search by name.
132
 
133
  ![search knowledge base](https://github.com/infiniflow/ragflow/assets/93570324/836ae94c-2438-42be-879e-c7ad2a59693e)
134
 
 
128
 
129
  ## Search for knowledge base
130
 
131
+ As of RAGFlow v0.14.0, the search feature is still in a rudimentary form, supporting only knowledge base search by name.
132
 
133
  ![search knowledge base](https://github.com/infiniflow/ragflow/assets/93570324/836ae94c-2438-42be-879e-c7ad2a59693e)
134
 
docs/guides/manage_files.md CHANGED
@@ -81,4 +81,4 @@ RAGFlow's file management allows you to download an uploaded file:
81
 
82
  ![download_file](https://github.com/infiniflow/ragflow/assets/93570324/cf3b297f-7d9b-4522-bf5f-4f45743e4ed5)
83
 
84
- > As of RAGFlow v0.13.0, bulk download is not supported, nor can you download an entire folder.
 
81
 
82
  ![download_file](https://github.com/infiniflow/ragflow/assets/93570324/cf3b297f-7d9b-4522-bf5f-4f45743e4ed5)
83
 
84
+ > As of RAGFlow v0.14.0, bulk download is not supported, nor can you download an entire folder.
docs/guides/upgrade_ragflow.mdx CHANGED
@@ -36,10 +36,10 @@ import TabItem from '@theme/TabItem';
36
  git clone https://github.com/infiniflow/ragflow.git
37
  ```
38
 
39
- 2. Switch to the latest, officially published release, e.g., `v0.13.0`:
40
 
41
  ```bash
42
- git checkout v0.13.0
43
  ```
44
 
45
  3. Update **ragflow/docker/.env** as follows:
 
36
  git clone https://github.com/infiniflow/ragflow.git
37
  ```
38
 
39
+ 2. Switch to the latest, officially published release, e.g., `v0.14.0`:
40
 
41
  ```bash
42
+ git checkout v0.14.0
43
  ```
44
 
45
  3. Update **ragflow/docker/.env** as follows:
docs/quickstart.mdx CHANGED
@@ -34,7 +34,7 @@ This section provides instructions on setting up the RAGFlow server on Linux. If
34
 
35
  `vm.max_map_count`. This value sets the maximum number of memory map areas a process may have. Its default value is 65530. While most applications require fewer than a thousand maps, reducing this value can result in abmornal behaviors, and the system will throw out-of-memory errors when a process reaches the limitation.
36
 
37
- RAGFlow v0.13.0 uses Elasticsearch for multiple recall. Setting the value of `vm.max_map_count` correctly is crucial to the proper functioning of the Elasticsearch component.
38
 
39
  <Tabs
40
  defaultValue="linux"
@@ -184,9 +184,9 @@ This section provides instructions on setting up the RAGFlow server on Linux. If
184
  $ docker compose -f docker-compose.yml up -d
185
  ```
186
 
187
- > - To download a RAGFlow slim Docker image of a specific version, update the `RAGFlow_IMAGE` variable in **docker/.env** to your desired version. For example, `RAGFLOW_IMAGE=infiniflow/ragflow:v0.13.0-slim`. After making this change, rerun the command above to initiate the download.
188
  > - To download the dev version of RAGFlow Docker image *including* embedding models and Python libraries, update the `RAGFlow_IMAGE` variable in **docker/.env** to `RAGFLOW_IMAGE=infiniflow/ragflow:dev`. After making this change, rerun the command above to initiate the download.
189
- > - To download a specific version of RAGFlow Docker image *including* embedding models and Python libraries, update the `RAGFlow_IMAGE` variable in **docker/.env** to your desired version. For example, `RAGFLOW_IMAGE=infiniflow/ragflow:v0.13.0`. After making this change, rerun the command above to initiate the download.
190
 
191
  :::tip NOTE
192
  A RAGFlow Docker image that includes embedding models and Python libraries is approximately 9GB in size and may take significantly longer time to load.
 
34
 
35
  `vm.max_map_count`. This value sets the maximum number of memory map areas a process may have. Its default value is 65530. While most applications require fewer than a thousand maps, reducing this value can result in abmornal behaviors, and the system will throw out-of-memory errors when a process reaches the limitation.
36
 
37
+ RAGFlow v0.14.0 uses Elasticsearch for multiple recall. Setting the value of `vm.max_map_count` correctly is crucial to the proper functioning of the Elasticsearch component.
38
 
39
  <Tabs
40
  defaultValue="linux"
 
184
  $ docker compose -f docker-compose.yml up -d
185
  ```
186
 
187
+ > - To download a RAGFlow slim Docker image of a specific version, update the `RAGFlow_IMAGE` variable in **docker/.env** to your desired version. For example, `RAGFLOW_IMAGE=infiniflow/ragflow:v0.14.0-slim`. After making this change, rerun the command above to initiate the download.
188
  > - To download the dev version of RAGFlow Docker image *including* embedding models and Python libraries, update the `RAGFlow_IMAGE` variable in **docker/.env** to `RAGFLOW_IMAGE=infiniflow/ragflow:dev`. After making this change, rerun the command above to initiate the download.
189
+ > - To download a specific version of RAGFlow Docker image *including* embedding models and Python libraries, update the `RAGFlow_IMAGE` variable in **docker/.env** to your desired version. For example, `RAGFLOW_IMAGE=infiniflow/ragflow:v0.14.0`. After making this change, rerun the command above to initiate the download.
190
 
191
  :::tip NOTE
192
  A RAGFlow Docker image that includes embedding models and Python libraries is approximately 9GB in size and may take significantly longer time to load.