Refactor: dataset / kb API to RESTFul style (#13690)

### What problem does this PR solve?

1. Split dataset api to gateway and service, and modify web UI to use
restful http api.
2. Old KB releated APIs are commented.

### Type of change

- [x] Refactoring

---------

Co-authored-by: Yingfeng <yingfeng.zhang@gmail.com>
This commit is contained in:
Lynn
2026-03-19 14:41:36 +08:00
committed by GitHub
parent 7827f0fce5
commit 4bb1acaa5b
53 changed files with 1721 additions and 1207 deletions

View File

@ -764,14 +764,14 @@ class RAGFlowClient:
iterations = command.get("iterations", 1)
if iterations > 1:
response = self.http_client.request("POST", "/kb/list", use_api_base=False, auth_kind="web",
response = self.http_client.request("GET", "/datasets", use_api_base=True, auth_kind="web",
iterations=iterations)
return response
else:
response = self.http_client.request("POST", "/kb/list", use_api_base=False, auth_kind="web")
response = self.http_client.request("GET", "/datasets", use_api_base=True, auth_kind="web")
res_json = response.json()
if response.status_code == 200:
self._print_table_simple(res_json["data"]["kbs"])
self._print_table_simple(res_json["data"])
else:
print(f"Fail to list datasets, code: {res_json['code']}, message: {res_json['message']}")
return None
@ -781,13 +781,13 @@ class RAGFlowClient:
print("This command is only allowed in USER mode")
payload = {
"name": command["dataset_name"],
"embd_id": command["embedding"]
"embedding_model": command["embedding"]
}
if "parser_id" in command:
payload["parser_id"] = command["parser"]
payload["chunk_method"] = command["parser"]
if "pipeline" in command:
payload["pipeline_id"] = command["pipeline"]
response = self.http_client.request("POST", "/kb/create", json_body=payload, use_api_base=False,
response = self.http_client.request("POST", "/datasets", json_body=payload, use_api_base=True,
auth_kind="web")
res_json = response.json()
if response.status_code == 200:
@ -803,8 +803,8 @@ class RAGFlowClient:
dataset_id = self._get_dataset_id(dataset_name)
if dataset_id is None:
return
payload = {"kb_id": dataset_id}
response = self.http_client.request("POST", "/kb/rm", json_body=payload, use_api_base=False, auth_kind="web")
payload = {"ids": [dataset_id]}
response = self.http_client.request("DELETE", "/datasets", json_body=payload, use_api_base=True, auth_kind="web")
res_json = response.json()
if response.status_code == 200:
print(f"Drop dataset {dataset_name} successfully")
@ -1349,13 +1349,13 @@ class RAGFlowClient:
return res_json["data"]["docs"]
def _get_dataset_id(self, dataset_name: str):
response = self.http_client.request("POST", "/kb/list", use_api_base=False, auth_kind="web")
response = self.http_client.request("GET", "/datasets", use_api_base=True, auth_kind="web")
res_json = response.json()
if response.status_code != 200:
print(f"Fail to list datasets, code: {res_json['code']}, message: {res_json['message']}")
return None
dataset_list = res_json["data"]["kbs"]
dataset_list = res_json["data"]
dataset_id: str = ""
for dataset in dataset_list:
if dataset["name"] == dataset_name: