mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-07-12 06:35:44 +08:00
### What problem does this PR solve?
This reverts commit 1a608ac411.
### Type of change
- [x] Other (please describe):
This commit is contained in:
@@ -49,10 +49,6 @@ class RAGFlow:
|
||||
res = requests.put(url=self.api_url + path, json=json, headers=self.authorization_header)
|
||||
return res
|
||||
|
||||
def patch(self, path, json):
|
||||
res = requests.patch(url=self.api_url + path, json=json, headers=self.authorization_header)
|
||||
return res
|
||||
|
||||
def create_dataset(
|
||||
self,
|
||||
name: str,
|
||||
@@ -115,25 +111,55 @@ class RAGFlow:
|
||||
return result_list
|
||||
raise Exception(res["message"])
|
||||
|
||||
def create_chat(
|
||||
self,
|
||||
name: str,
|
||||
icon: str = "",
|
||||
dataset_ids: list[str] | None = None,
|
||||
llm_id: str | None = None,
|
||||
llm_setting: dict | None = None,
|
||||
prompt_config: dict | None = None,
|
||||
**kwargs,
|
||||
) -> Chat:
|
||||
payload = {"name": name, "icon": icon, "dataset_ids": dataset_ids or []}
|
||||
if llm_id is not None:
|
||||
payload["llm_id"] = llm_id
|
||||
if llm_setting is not None:
|
||||
payload["llm_setting"] = llm_setting
|
||||
if prompt_config is not None:
|
||||
payload["prompt_config"] = prompt_config
|
||||
payload.update(kwargs)
|
||||
res = self.post("/chats", payload)
|
||||
def create_chat(self, name: str, avatar: str = "", dataset_ids=None, llm: Chat.LLM | None = None, prompt: Chat.Prompt | None = None) -> Chat:
|
||||
if dataset_ids is None:
|
||||
dataset_ids = []
|
||||
dataset_list = []
|
||||
for id in dataset_ids:
|
||||
dataset_list.append(id)
|
||||
|
||||
if llm is None:
|
||||
llm = Chat.LLM(
|
||||
self,
|
||||
{
|
||||
"model_name": None,
|
||||
"temperature": 0.1,
|
||||
"top_p": 0.3,
|
||||
"presence_penalty": 0.4,
|
||||
"frequency_penalty": 0.7,
|
||||
"max_tokens": 512,
|
||||
},
|
||||
)
|
||||
if prompt is None:
|
||||
prompt = Chat.Prompt(
|
||||
self,
|
||||
{
|
||||
"similarity_threshold": 0.2,
|
||||
"keywords_similarity_weight": 0.7,
|
||||
"top_n": 8,
|
||||
"top_k": 1024,
|
||||
"variables": [{"key": "knowledge", "optional": True}],
|
||||
"rerank_model": "",
|
||||
"empty_response": None,
|
||||
"opener": None,
|
||||
"show_quote": True,
|
||||
"prompt": None,
|
||||
},
|
||||
)
|
||||
if prompt.opener is None:
|
||||
prompt.opener = "Hi! I'm your assistant. What can I do for you?"
|
||||
if prompt.prompt is None:
|
||||
prompt.prompt = (
|
||||
"You are an intelligent assistant. Your primary function is to answer questions based strictly on the provided knowledge base."
|
||||
"**Essential Rules:**"
|
||||
"- Your answer must be derived **solely** from this knowledge base: `{knowledge}`."
|
||||
"- **When information is available**: Summarize the content to give a detailed answer."
|
||||
"- **When information is unavailable**: Your response must contain this exact sentence: 'The answer you are looking for is not found in the knowledge base!' "
|
||||
"- **Always consider** the entire conversation history."
|
||||
)
|
||||
|
||||
temp_dict = {"name": name, "avatar": avatar, "dataset_ids": dataset_list if dataset_list else [], "llm": llm.to_json(), "prompt": prompt.to_json()}
|
||||
res = self.post("/chats", temp_dict)
|
||||
res = res.json()
|
||||
if res.get("code") == 0:
|
||||
return Chat(self, res["data"])
|
||||
@@ -145,24 +171,7 @@ class RAGFlow:
|
||||
if res.get("code") != 0:
|
||||
raise Exception(res["message"])
|
||||
|
||||
def get_chat(self, chat_id: str) -> Chat:
|
||||
res = self.get(f"/chats/{chat_id}")
|
||||
res = res.json()
|
||||
if res.get("code") == 0:
|
||||
return Chat(self, res["data"])
|
||||
raise Exception(res["message"])
|
||||
|
||||
def list_chats(
|
||||
self,
|
||||
page: int = 1,
|
||||
page_size: int = 30,
|
||||
orderby: str = "create_time",
|
||||
desc: bool = True,
|
||||
id: str | None = None,
|
||||
name: str | None = None,
|
||||
keywords: str | None = None,
|
||||
owner_ids: str | list[str] | None = None,
|
||||
) -> list[Chat]:
|
||||
def list_chats(self, page: int = 1, page_size: int = 30, orderby: str = "create_time", desc: bool = True, id: str | None = None, name: str | None = None) -> list[Chat]:
|
||||
res = self.get(
|
||||
"/chats",
|
||||
{
|
||||
@@ -172,14 +181,12 @@ class RAGFlow:
|
||||
"desc": desc,
|
||||
"id": id,
|
||||
"name": name,
|
||||
"keywords": keywords,
|
||||
"owner_ids": owner_ids,
|
||||
},
|
||||
)
|
||||
res = res.json()
|
||||
result_list = []
|
||||
if res.get("code") == 0:
|
||||
for data in res["data"]["chats"]:
|
||||
for data in res["data"]:
|
||||
result_list.append(Chat(self, data))
|
||||
return result_list
|
||||
raise Exception(res["message"])
|
||||
|
||||
Reference in New Issue
Block a user