mirror of
https://github.com/hwchase17/langchain.git
synced 2025-06-22 14:49:29 +00:00
for ChatVectorDBChain, add top_k_docs_for_context to allow control how many chunks of context will be retrieved (#1155)
given that we allow user define chunk size, think it would be useful for user to define how many chunks of context will be retrieved.
This commit is contained in:
parent
955c89fccb
commit
ed37fbaeff
@ -32,6 +32,7 @@ class ChatVectorDBChain(Chain, BaseModel):
|
|||||||
question_generator: LLMChain
|
question_generator: LLMChain
|
||||||
output_key: str = "answer"
|
output_key: str = "answer"
|
||||||
return_source_documents: bool = False
|
return_source_documents: bool = False
|
||||||
|
top_k_docs_for_context: int = 4
|
||||||
"""Return the source documents."""
|
"""Return the source documents."""
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@ -88,7 +89,9 @@ class ChatVectorDBChain(Chain, BaseModel):
|
|||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
new_question = question
|
new_question = question
|
||||||
docs = self.vectorstore.similarity_search(new_question, k=4, **vectordbkwargs)
|
docs = self.vectorstore.similarity_search(
|
||||||
|
new_question, k=self.top_k_docs_for_context, **vectordbkwargs
|
||||||
|
)
|
||||||
new_inputs = inputs.copy()
|
new_inputs = inputs.copy()
|
||||||
new_inputs["question"] = new_question
|
new_inputs["question"] = new_question
|
||||||
new_inputs["chat_history"] = chat_history_str
|
new_inputs["chat_history"] = chat_history_str
|
||||||
@ -109,7 +112,9 @@ class ChatVectorDBChain(Chain, BaseModel):
|
|||||||
else:
|
else:
|
||||||
new_question = question
|
new_question = question
|
||||||
# TODO: This blocks the event loop, but it's not clear how to avoid it.
|
# TODO: This blocks the event loop, but it's not clear how to avoid it.
|
||||||
docs = self.vectorstore.similarity_search(new_question, k=4, **vectordbkwargs)
|
docs = self.vectorstore.similarity_search(
|
||||||
|
new_question, k=self.top_k_docs_for_context, **vectordbkwargs
|
||||||
|
)
|
||||||
new_inputs = inputs.copy()
|
new_inputs = inputs.copy()
|
||||||
new_inputs["question"] = new_question
|
new_inputs["question"] = new_question
|
||||||
new_inputs["chat_history"] = chat_history_str
|
new_inputs["chat_history"] = chat_history_str
|
||||||
|
Loading…
Reference in New Issue
Block a user