liuhua
liuhua
commited on
Commit
·
9a8dfa4
1
Parent(s):
4138aee
Turn resource to plural form (#3061)
Browse files### What problem does this PR solve?
Turn resource to plural form
### Type of change
- [x] Refactoring
Co-authored-by: liuhua <10215101452@stu.ecun.edu.cn>
- api/apps/sdk/dify_retrieval.py +1 -1
- api/apps/sdk/doc.py +1 -1
- api/http_api_reference.md +3 -3
- sdk/python/ragflow/modules/chat.py +4 -4
- sdk/python/ragflow/modules/chunk.py +1 -1
- sdk/python/ragflow/modules/dataset.py +6 -6
- sdk/python/ragflow/modules/document.py +5 -5
- sdk/python/ragflow/modules/session.py +2 -2
- sdk/python/ragflow/ragflow.py +6 -6
api/apps/sdk/dify_retrieval.py
CHANGED
|
@@ -22,7 +22,7 @@ from api.settings import retrievaler, kg_retrievaler, RetCode
|
|
| 22 |
from api.utils.api_utils import validate_request, build_error_result, apikey_required
|
| 23 |
|
| 24 |
|
| 25 |
-
@manager.route('/dify/
|
| 26 |
@apikey_required
|
| 27 |
@validate_request("knowledge_id", "query")
|
| 28 |
def retrieval(tenant_id):
|
|
|
|
| 22 |
from api.utils.api_utils import validate_request, build_error_result, apikey_required
|
| 23 |
|
| 24 |
|
| 25 |
+
@manager.route('/dify/retrieval', methods=['POST'])
|
| 26 |
@apikey_required
|
| 27 |
@validate_request("knowledge_id", "query")
|
| 28 |
def retrieval(tenant_id):
|
api/apps/sdk/doc.py
CHANGED
|
@@ -574,7 +574,7 @@ def update_chunk(tenant_id,dataset_id,document_id,chunk_id):
|
|
| 574 |
|
| 575 |
|
| 576 |
|
| 577 |
-
@manager.route('/
|
| 578 |
@token_required
|
| 579 |
def retrieval_test(tenant_id):
|
| 580 |
req = request.json
|
|
|
|
| 574 |
|
| 575 |
|
| 576 |
|
| 577 |
+
@manager.route('/retrieval', methods=['POST'])
|
| 578 |
@token_required
|
| 579 |
def retrieval_test(tenant_id):
|
| 580 |
req = request.json
|
api/http_api_reference.md
CHANGED
|
@@ -1169,14 +1169,14 @@ Failure:
|
|
| 1169 |
|
| 1170 |
## Retrieve chunks
|
| 1171 |
|
| 1172 |
-
**GET** `/api/v1/
|
| 1173 |
|
| 1174 |
Retrieves chunks from specified datasets.
|
| 1175 |
|
| 1176 |
### Request
|
| 1177 |
|
| 1178 |
- Method: POST
|
| 1179 |
-
- URL: `/api/v1/
|
| 1180 |
- Headers:
|
| 1181 |
- `'content-Type: application/json'`
|
| 1182 |
- `'Authorization: Bearer {YOUR_API_KEY}'`
|
|
@@ -1197,7 +1197,7 @@ Retrieves chunks from specified datasets.
|
|
| 1197 |
|
| 1198 |
```bash
|
| 1199 |
curl --request POST \
|
| 1200 |
-
--url http://{address}/api/v1/
|
| 1201 |
--header 'Content-Type: application/json' \
|
| 1202 |
--header 'Authorization: {YOUR_API_KEY}' \
|
| 1203 |
--data '
|
|
|
|
| 1169 |
|
| 1170 |
## Retrieve chunks
|
| 1171 |
|
| 1172 |
+
**GET** `/api/v1/retrieval`
|
| 1173 |
|
| 1174 |
Retrieves chunks from specified datasets.
|
| 1175 |
|
| 1176 |
### Request
|
| 1177 |
|
| 1178 |
- Method: POST
|
| 1179 |
+
- URL: `/api/v1/retrieval`
|
| 1180 |
- Headers:
|
| 1181 |
- `'content-Type: application/json'`
|
| 1182 |
- `'Authorization: Bearer {YOUR_API_KEY}'`
|
|
|
|
| 1197 |
|
| 1198 |
```bash
|
| 1199 |
curl --request POST \
|
| 1200 |
+
--url http://{address}/api/v1/retrieval \
|
| 1201 |
--header 'Content-Type: application/json' \
|
| 1202 |
--header 'Authorization: {YOUR_API_KEY}' \
|
| 1203 |
--data '
|
sdk/python/ragflow/modules/chat.py
CHANGED
|
@@ -43,7 +43,7 @@ class Chat(Base):
|
|
| 43 |
super().__init__(rag, res_dict)
|
| 44 |
|
| 45 |
def update(self, update_message: dict):
|
| 46 |
-
res = self.put(f'/
|
| 47 |
update_message)
|
| 48 |
res = res.json()
|
| 49 |
if res.get("code") != 0:
|
|
@@ -51,7 +51,7 @@ class Chat(Base):
|
|
| 51 |
|
| 52 |
|
| 53 |
def create_session(self, name: str = "New session") -> Session:
|
| 54 |
-
res = self.post(f"/
|
| 55 |
res = res.json()
|
| 56 |
if res.get("code") == 0:
|
| 57 |
return Session(self.rag, res['data'])
|
|
@@ -59,7 +59,7 @@ class Chat(Base):
|
|
| 59 |
|
| 60 |
def list_sessions(self,page: int = 1, page_size: int = 1024, orderby: str = "create_time", desc: bool = True,
|
| 61 |
id: str = None, name: str = None) -> List[Session]:
|
| 62 |
-
res = self.get(f'/
|
| 63 |
res = res.json()
|
| 64 |
if res.get("code") == 0:
|
| 65 |
result_list = []
|
|
@@ -69,7 +69,7 @@ class Chat(Base):
|
|
| 69 |
raise Exception(res["message"])
|
| 70 |
|
| 71 |
def delete_sessions(self,ids):
|
| 72 |
-
res = self.rm(f"/
|
| 73 |
res = res.json()
|
| 74 |
if res.get("code") != 0:
|
| 75 |
raise Exception(res.get("message"))
|
|
|
|
| 43 |
super().__init__(rag, res_dict)
|
| 44 |
|
| 45 |
def update(self, update_message: dict):
|
| 46 |
+
res = self.put(f'/chats/{self.id}',
|
| 47 |
update_message)
|
| 48 |
res = res.json()
|
| 49 |
if res.get("code") != 0:
|
|
|
|
| 51 |
|
| 52 |
|
| 53 |
def create_session(self, name: str = "New session") -> Session:
|
| 54 |
+
res = self.post(f"/chats/{self.id}/sessions", {"name": name})
|
| 55 |
res = res.json()
|
| 56 |
if res.get("code") == 0:
|
| 57 |
return Session(self.rag, res['data'])
|
|
|
|
| 59 |
|
| 60 |
def list_sessions(self,page: int = 1, page_size: int = 1024, orderby: str = "create_time", desc: bool = True,
|
| 61 |
id: str = None, name: str = None) -> List[Session]:
|
| 62 |
+
res = self.get(f'/chats/{self.id}/sessions',{"page": page, "page_size": page_size, "orderby": orderby, "desc": desc, "id": id, "name": name} )
|
| 63 |
res = res.json()
|
| 64 |
if res.get("code") == 0:
|
| 65 |
result_list = []
|
|
|
|
| 69 |
raise Exception(res["message"])
|
| 70 |
|
| 71 |
def delete_sessions(self,ids):
|
| 72 |
+
res = self.rm(f"/chats/{self.id}/sessions", {"ids": ids})
|
| 73 |
res = res.json()
|
| 74 |
if res.get("code") != 0:
|
| 75 |
raise Exception(res.get("message"))
|
sdk/python/ragflow/modules/chunk.py
CHANGED
|
@@ -19,7 +19,7 @@ class Chunk(Base):
|
|
| 19 |
|
| 20 |
|
| 21 |
def update(self,update_message:dict):
|
| 22 |
-
res = self.put(f"/
|
| 23 |
res = res.json()
|
| 24 |
if res.get("code") != 0 :
|
| 25 |
raise Exception(res["message"])
|
|
|
|
| 19 |
|
| 20 |
|
| 21 |
def update(self,update_message:dict):
|
| 22 |
+
res = self.put(f"/datasets/{self.dataset_id}/documents/{self.document_id}/chunks/{self.id}",update_message)
|
| 23 |
res = res.json()
|
| 24 |
if res.get("code") != 0 :
|
| 25 |
raise Exception(res["message"])
|
sdk/python/ragflow/modules/dataset.py
CHANGED
|
@@ -31,14 +31,14 @@ class DataSet(Base):
|
|
| 31 |
super().__init__(rag, res_dict)
|
| 32 |
|
| 33 |
def update(self, update_message: dict):
|
| 34 |
-
res = self.put(f'/
|
| 35 |
update_message)
|
| 36 |
res = res.json()
|
| 37 |
if res.get("code") != 0:
|
| 38 |
raise Exception(res["message"])
|
| 39 |
|
| 40 |
def upload_documents(self,document_list: List[dict]):
|
| 41 |
-
url = f"/
|
| 42 |
files = [("file",(ele["displayed_name"],ele["blob"])) for ele in document_list]
|
| 43 |
res = self.post(path=url,json=None,files=files)
|
| 44 |
res = res.json()
|
|
@@ -51,7 +51,7 @@ class DataSet(Base):
|
|
| 51 |
raise Exception(res.get("message"))
|
| 52 |
|
| 53 |
def list_documents(self, id: str = None, keywords: str = None, offset: int =1, limit: int = 1024, orderby: str = "create_time", desc: bool = True):
|
| 54 |
-
res = self.get(f"/
|
| 55 |
res = res.json()
|
| 56 |
documents = []
|
| 57 |
if res.get("code") == 0:
|
|
@@ -61,19 +61,19 @@ class DataSet(Base):
|
|
| 61 |
raise Exception(res["message"])
|
| 62 |
|
| 63 |
def delete_documents(self,ids: List[str] = None):
|
| 64 |
-
res = self.rm(f"/
|
| 65 |
res = res.json()
|
| 66 |
if res.get("code") != 0:
|
| 67 |
raise Exception(res["message"])
|
| 68 |
|
| 69 |
def async_parse_documents(self,document_ids):
|
| 70 |
-
res = self.post(f"/
|
| 71 |
res = res.json()
|
| 72 |
if res.get("code") != 0:
|
| 73 |
raise Exception(res.get("message"))
|
| 74 |
|
| 75 |
def async_cancel_parse_documents(self,document_ids):
|
| 76 |
-
res = self.rm(f"/
|
| 77 |
res = res.json()
|
| 78 |
if res.get("code") != 0:
|
| 79 |
raise Exception(res.get("message"))
|
|
|
|
| 31 |
super().__init__(rag, res_dict)
|
| 32 |
|
| 33 |
def update(self, update_message: dict):
|
| 34 |
+
res = self.put(f'/datasets/{self.id}',
|
| 35 |
update_message)
|
| 36 |
res = res.json()
|
| 37 |
if res.get("code") != 0:
|
| 38 |
raise Exception(res["message"])
|
| 39 |
|
| 40 |
def upload_documents(self,document_list: List[dict]):
|
| 41 |
+
url = f"/datasets/{self.id}/documents"
|
| 42 |
files = [("file",(ele["displayed_name"],ele["blob"])) for ele in document_list]
|
| 43 |
res = self.post(path=url,json=None,files=files)
|
| 44 |
res = res.json()
|
|
|
|
| 51 |
raise Exception(res.get("message"))
|
| 52 |
|
| 53 |
def list_documents(self, id: str = None, keywords: str = None, offset: int =1, limit: int = 1024, orderby: str = "create_time", desc: bool = True):
|
| 54 |
+
res = self.get(f"/datasets/{self.id}/documents",params={"id": id,"keywords": keywords,"offset": offset,"limit": limit,"orderby": orderby,"desc": desc})
|
| 55 |
res = res.json()
|
| 56 |
documents = []
|
| 57 |
if res.get("code") == 0:
|
|
|
|
| 61 |
raise Exception(res["message"])
|
| 62 |
|
| 63 |
def delete_documents(self,ids: List[str] = None):
|
| 64 |
+
res = self.rm(f"/datasets/{self.id}/documents",{"ids":ids})
|
| 65 |
res = res.json()
|
| 66 |
if res.get("code") != 0:
|
| 67 |
raise Exception(res["message"])
|
| 68 |
|
| 69 |
def async_parse_documents(self,document_ids):
|
| 70 |
+
res = self.post(f"/datasets/{self.id}/chunks",{"document_ids":document_ids})
|
| 71 |
res = res.json()
|
| 72 |
if res.get("code") != 0:
|
| 73 |
raise Exception(res.get("message"))
|
| 74 |
|
| 75 |
def async_cancel_parse_documents(self,document_ids):
|
| 76 |
+
res = self.rm(f"/datasets/{self.id}/chunks",{"document_ids":document_ids})
|
| 77 |
res = res.json()
|
| 78 |
if res.get("code") != 0:
|
| 79 |
raise Exception(res.get("message"))
|
sdk/python/ragflow/modules/document.py
CHANGED
|
@@ -35,14 +35,14 @@ class Document(Base):
|
|
| 35 |
|
| 36 |
|
| 37 |
def update(self, update_message: dict):
|
| 38 |
-
res = self.put(f'/
|
| 39 |
update_message)
|
| 40 |
res = res.json()
|
| 41 |
if res.get("code") != 0:
|
| 42 |
raise Exception(res["message"])
|
| 43 |
|
| 44 |
def download(self):
|
| 45 |
-
res = self.get(f"/
|
| 46 |
try:
|
| 47 |
res = res.json()
|
| 48 |
raise Exception(res.get("message"))
|
|
@@ -52,7 +52,7 @@ class Document(Base):
|
|
| 52 |
|
| 53 |
def list_chunks(self,offset=0, limit=30, keywords="", id:str=None):
|
| 54 |
data={"document_id": self.id,"keywords": keywords,"offset":offset,"limit":limit,"id":id}
|
| 55 |
-
res = self.get(f'/
|
| 56 |
res = res.json()
|
| 57 |
if res.get("code") == 0:
|
| 58 |
chunks=[]
|
|
@@ -64,14 +64,14 @@ class Document(Base):
|
|
| 64 |
|
| 65 |
|
| 66 |
def add_chunk(self, content: str,important_keywords:List[str]=[]):
|
| 67 |
-
res = self.post(f'/
|
| 68 |
res = res.json()
|
| 69 |
if res.get("code") == 0:
|
| 70 |
return Chunk(self.rag,res["data"].get("chunk"))
|
| 71 |
raise Exception(res.get("message"))
|
| 72 |
|
| 73 |
def delete_chunks(self,ids:List[str] = None):
|
| 74 |
-
res = self.rm(f"
|
| 75 |
res = res.json()
|
| 76 |
if res.get("code")!=0:
|
| 77 |
raise Exception(res.get("message"))
|
|
|
|
| 35 |
|
| 36 |
|
| 37 |
def update(self, update_message: dict):
|
| 38 |
+
res = self.put(f'/datasets/{self.dataset_id}/documents/{self.id}',
|
| 39 |
update_message)
|
| 40 |
res = res.json()
|
| 41 |
if res.get("code") != 0:
|
| 42 |
raise Exception(res["message"])
|
| 43 |
|
| 44 |
def download(self):
|
| 45 |
+
res = self.get(f"/datasets/{self.dataset_id}/documents/{self.id}")
|
| 46 |
try:
|
| 47 |
res = res.json()
|
| 48 |
raise Exception(res.get("message"))
|
|
|
|
| 52 |
|
| 53 |
def list_chunks(self,offset=0, limit=30, keywords="", id:str=None):
|
| 54 |
data={"document_id": self.id,"keywords": keywords,"offset":offset,"limit":limit,"id":id}
|
| 55 |
+
res = self.get(f'/datasets/{self.dataset_id}/documents/{self.id}/chunks', data)
|
| 56 |
res = res.json()
|
| 57 |
if res.get("code") == 0:
|
| 58 |
chunks=[]
|
|
|
|
| 64 |
|
| 65 |
|
| 66 |
def add_chunk(self, content: str,important_keywords:List[str]=[]):
|
| 67 |
+
res = self.post(f'/datasets/{self.dataset_id}/documents/{self.id}/chunks', {"content":content,"important_keywords":important_keywords})
|
| 68 |
res = res.json()
|
| 69 |
if res.get("code") == 0:
|
| 70 |
return Chunk(self.rag,res["data"].get("chunk"))
|
| 71 |
raise Exception(res.get("message"))
|
| 72 |
|
| 73 |
def delete_chunks(self,ids:List[str] = None):
|
| 74 |
+
res = self.rm(f"datasets/{self.dataset_id}/documents/{self.id}/chunks",{"ids":ids})
|
| 75 |
res = res.json()
|
| 76 |
if res.get("code")!=0:
|
| 77 |
raise Exception(res.get("message"))
|
sdk/python/ragflow/modules/session.py
CHANGED
|
@@ -15,7 +15,7 @@ class Session(Base):
|
|
| 15 |
for message in self.messages:
|
| 16 |
if "reference" in message:
|
| 17 |
message.pop("reference")
|
| 18 |
-
res = self.post(f"/
|
| 19 |
{"question": question, "stream": True,"session_id":self.id}, stream=stream)
|
| 20 |
for line in res.iter_lines():
|
| 21 |
line = line.decode("utf-8")
|
|
@@ -53,7 +53,7 @@ class Session(Base):
|
|
| 53 |
yield message
|
| 54 |
|
| 55 |
def update(self,update_message):
|
| 56 |
-
res = self.put(f"/
|
| 57 |
update_message)
|
| 58 |
res = res.json()
|
| 59 |
if res.get("code") != 0:
|
|
|
|
| 15 |
for message in self.messages:
|
| 16 |
if "reference" in message:
|
| 17 |
message.pop("reference")
|
| 18 |
+
res = self.post(f"/chats/{self.chat_id}/completions",
|
| 19 |
{"question": question, "stream": True,"session_id":self.id}, stream=stream)
|
| 20 |
for line in res.iter_lines():
|
| 21 |
line = line.decode("utf-8")
|
|
|
|
| 53 |
yield message
|
| 54 |
|
| 55 |
def update(self,update_message):
|
| 56 |
+
res = self.put(f"/chats/{self.chat_id}/sessions/{self.id}",
|
| 57 |
update_message)
|
| 58 |
res = res.json()
|
| 59 |
if res.get("code") != 0:
|
sdk/python/ragflow/ragflow.py
CHANGED
|
@@ -53,7 +53,7 @@ class RAGFlow:
|
|
| 53 |
parser_config: DataSet.ParserConfig = None) -> DataSet:
|
| 54 |
if parser_config:
|
| 55 |
parser_config = parser_config.to_json()
|
| 56 |
-
res = self.post("/
|
| 57 |
{"name": name, "avatar": avatar, "description": description, "language": language,
|
| 58 |
"permission": permission, "chunk_method": chunk_method,
|
| 59 |
"parser_config": parser_config
|
|
@@ -65,7 +65,7 @@ class RAGFlow:
|
|
| 65 |
raise Exception(res["message"])
|
| 66 |
|
| 67 |
def delete_datasets(self, ids: List[str]):
|
| 68 |
-
res = self.delete("/
|
| 69 |
res=res.json()
|
| 70 |
if res.get("code") != 0:
|
| 71 |
raise Exception(res["message"])
|
|
@@ -79,7 +79,7 @@ class RAGFlow:
|
|
| 79 |
def list_datasets(self, page: int = 1, page_size: int = 1024, orderby: str = "create_time", desc: bool = True,
|
| 80 |
id: str = None, name: str = None) -> \
|
| 81 |
List[DataSet]:
|
| 82 |
-
res = self.get("/
|
| 83 |
{"page": page, "page_size": page_size, "orderby": orderby, "desc": desc, "id": id, "name": name})
|
| 84 |
res = res.json()
|
| 85 |
result_list = []
|
|
@@ -129,14 +129,14 @@ class RAGFlow:
|
|
| 129 |
"dataset_ids": dataset_list,
|
| 130 |
"llm": llm.to_json(),
|
| 131 |
"prompt": prompt.to_json()}
|
| 132 |
-
res = self.post("/
|
| 133 |
res = res.json()
|
| 134 |
if res.get("code") == 0:
|
| 135 |
return Chat(self, res["data"])
|
| 136 |
raise Exception(res["message"])
|
| 137 |
|
| 138 |
def delete_chats(self,ids: List[str] = None,names: List[str] = None ) -> bool:
|
| 139 |
-
res = self.delete('/
|
| 140 |
{"ids":ids, "names":names})
|
| 141 |
res = res.json()
|
| 142 |
if res.get("code") != 0:
|
|
@@ -144,7 +144,7 @@ class RAGFlow:
|
|
| 144 |
|
| 145 |
def list_chats(self, page: int = 1, page_size: int = 1024, orderby: str = "create_time", desc: bool = True,
|
| 146 |
id: str = None, name: str = None) -> List[Chat]:
|
| 147 |
-
res = self.get("/
|
| 148 |
res = res.json()
|
| 149 |
result_list = []
|
| 150 |
if res.get("code") == 0:
|
|
|
|
| 53 |
parser_config: DataSet.ParserConfig = None) -> DataSet:
|
| 54 |
if parser_config:
|
| 55 |
parser_config = parser_config.to_json()
|
| 56 |
+
res = self.post("/datasets",
|
| 57 |
{"name": name, "avatar": avatar, "description": description, "language": language,
|
| 58 |
"permission": permission, "chunk_method": chunk_method,
|
| 59 |
"parser_config": parser_config
|
|
|
|
| 65 |
raise Exception(res["message"])
|
| 66 |
|
| 67 |
def delete_datasets(self, ids: List[str]):
|
| 68 |
+
res = self.delete("/datasets",{"ids": ids})
|
| 69 |
res=res.json()
|
| 70 |
if res.get("code") != 0:
|
| 71 |
raise Exception(res["message"])
|
|
|
|
| 79 |
def list_datasets(self, page: int = 1, page_size: int = 1024, orderby: str = "create_time", desc: bool = True,
|
| 80 |
id: str = None, name: str = None) -> \
|
| 81 |
List[DataSet]:
|
| 82 |
+
res = self.get("/datasets",
|
| 83 |
{"page": page, "page_size": page_size, "orderby": orderby, "desc": desc, "id": id, "name": name})
|
| 84 |
res = res.json()
|
| 85 |
result_list = []
|
|
|
|
| 129 |
"dataset_ids": dataset_list,
|
| 130 |
"llm": llm.to_json(),
|
| 131 |
"prompt": prompt.to_json()}
|
| 132 |
+
res = self.post("/chats", temp_dict)
|
| 133 |
res = res.json()
|
| 134 |
if res.get("code") == 0:
|
| 135 |
return Chat(self, res["data"])
|
| 136 |
raise Exception(res["message"])
|
| 137 |
|
| 138 |
def delete_chats(self,ids: List[str] = None,names: List[str] = None ) -> bool:
|
| 139 |
+
res = self.delete('/chats',
|
| 140 |
{"ids":ids, "names":names})
|
| 141 |
res = res.json()
|
| 142 |
if res.get("code") != 0:
|
|
|
|
| 144 |
|
| 145 |
def list_chats(self, page: int = 1, page_size: int = 1024, orderby: str = "create_time", desc: bool = True,
|
| 146 |
id: str = None, name: str = None) -> List[Chat]:
|
| 147 |
+
res = self.get("/chats",{"page": page, "page_size": page_size, "orderby": orderby, "desc": desc, "id": id, "name": name})
|
| 148 |
res = res.json()
|
| 149 |
result_list = []
|
| 150 |
if res.get("code") == 0:
|