Add top_k for create_chat and update_chat api (#4294)

### What problem does this PR solve?

Add top_k for create_chat and update_chat api #4157

### Type of change

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

---------

Co-authored-by: liuhua <10215101452@stu.ecun.edu.cn>
This commit is contained in:
liuhua 2024-12-30 19:22:57 +08:00 committed by GitHub
parent d42e78bce2
commit b52b0f68fc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 6 additions and 2 deletions

View File

@ -65,7 +65,7 @@ def create(tenant_id):
"system": "prompt", "system": "prompt",
"rerank_id": "rerank_model", "rerank_id": "rerank_model",
"vector_similarity_weight": "keywords_similarity_weight"} "vector_similarity_weight": "keywords_similarity_weight"}
key_list = ["similarity_threshold", "vector_similarity_weight", "top_n", "rerank_id"] key_list = ["similarity_threshold", "vector_similarity_weight", "top_n", "rerank_id","top_k"]
if prompt: if prompt:
for new_key, old_key in key_mapping.items(): for new_key, old_key in key_mapping.items():
if old_key in prompt: if old_key in prompt:
@ -200,7 +200,7 @@ def update(tenant_id, chat_id):
"system": "prompt", "system": "prompt",
"rerank_id": "rerank_model", "rerank_id": "rerank_model",
"vector_similarity_weight": "keywords_similarity_weight"} "vector_similarity_weight": "keywords_similarity_weight"}
key_list = ["similarity_threshold", "vector_similarity_weight", "top_n", "rerank_id"] key_list = ["similarity_threshold", "vector_similarity_weight", "top_n", "rerank_id","top_k"]
if prompt: if prompt:
for new_key, old_key in key_mapping.items(): for new_key, old_key in key_mapping.items():
if old_key in prompt: if old_key in prompt:

View File

@ -1389,6 +1389,7 @@ curl --request POST \
- All the variables in 'System' should be curly bracketed. - All the variables in 'System' should be curly bracketed.
- The default value is `[{"key": "knowledge", "optional": true}]`. - The default value is `[{"key": "knowledge", "optional": true}]`.
- `"rerank_model"`: `string` If it is not specified, vector cosine similarity will be used; otherwise, reranking score will be used. - `"rerank_model"`: `string` If it is not specified, vector cosine similarity will be used; otherwise, reranking score will be used.
- `top_k`: `int` Refers to the process of reordering or selecting the top-k items from a list or set based on a specific ranking criterion. Default to 1024.
- `"empty_response"`: `string` If nothing is retrieved in the dataset for the user's question, this will be used as the response. To allow the LLM to improvise when nothing is found, leave this blank. - `"empty_response"`: `string` If nothing is retrieved in the dataset for the user's question, this will be used as the response. To allow the LLM to improvise when nothing is found, leave this blank.
- `"opener"`: `string` The opening greeting for the user. Defaults to `"Hi! I am your assistant, can I help you?"`. - `"opener"`: `string` The opening greeting for the user. Defaults to `"Hi! I am your assistant, can I help you?"`.
- `"show_quote`: `boolean` Indicates whether the source of text should be displayed. Defaults to `true`. - `"show_quote`: `boolean` Indicates whether the source of text should be displayed. Defaults to `true`.

View File

@ -965,6 +965,7 @@ Instructions for the LLM to follow. A `Prompt` object contains the following at
- All the variables in 'System' should be curly bracketed. - All the variables in 'System' should be curly bracketed.
- The default value is `[{"key": "knowledge", "optional": True}]`. - The default value is `[{"key": "knowledge", "optional": True}]`.
- `rerank_model`: `str` If it is not specified, vector cosine similarity will be used; otherwise, reranking score will be used. Defaults to `""`. - `rerank_model`: `str` If it is not specified, vector cosine similarity will be used; otherwise, reranking score will be used. Defaults to `""`.
- `top_k`: `int` Refers to the process of reordering or selecting the top-k items from a list or set based on a specific ranking criterion. Default to 1024.
- `empty_response`: `str` If nothing is retrieved in the dataset for the user's question, this will be used as the response. To allow the LLM to improvise when nothing is found, leave this blank. Defaults to `None`. - `empty_response`: `str` If nothing is retrieved in the dataset for the user's question, this will be used as the response. To allow the LLM to improvise when nothing is found, leave this blank. Defaults to `None`.
- `opener`: `str` The opening greeting for the user. Defaults to `"Hi! I am your assistant, can I help you?"`. - `opener`: `str` The opening greeting for the user. Defaults to `"Hi! I am your assistant, can I help you?"`.
- `show_quote`: `bool` Indicates whether the source of text should be displayed. Defaults to `True`. - `show_quote`: `bool` Indicates whether the source of text should be displayed. Defaults to `True`.

View File

@ -28,6 +28,7 @@ class Chat(Base):
self.similarity_threshold = 0.2 self.similarity_threshold = 0.2
self.keywords_similarity_weight = 0.7 self.keywords_similarity_weight = 0.7
self.top_n = 8 self.top_n = 8
self.top_k = 1024
self.variables = [{"key": "knowledge", "optional": True}] self.variables = [{"key": "knowledge", "optional": True}]
self.rerank_model = None self.rerank_model = None
self.empty_response = None self.empty_response = None

View File

@ -108,6 +108,7 @@ class RAGFlow:
prompt = Chat.Prompt(self, {"similarity_threshold": 0.2, prompt = Chat.Prompt(self, {"similarity_threshold": 0.2,
"keywords_similarity_weight": 0.7, "keywords_similarity_weight": 0.7,
"top_n": 8, "top_n": 8,
"top_k": 1024,
"variables": [{ "variables": [{
"key": "knowledge", "key": "knowledge",
"optional": True "optional": True