You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

45 lines
1.7 KiB

# from deepsearcher.configuration import vector_db, embedding_model, llm
from deepsearcher import configuration
from deepsearcher.vector_db.base import RetrievalResult
def query(original_query: str, **kwargs) -> tuple[str, list[RetrievalResult]]:
"""
Query the knowledge base with a question and get an answer.
This function uses the default searcher to query the knowledge base and generate
an answer based on the retrieved information.
Args:
original_query: The question or query to search for.
max_iter: Maximum number of iterations for the search process.
Returns:
A tuple containing:
- The generated answer as a string
- A list of retrieval results that were used to generate the answer
"""
default_searcher = configuration.default_searcher
max_iter = kwargs.get("max_iter", 3)
return default_searcher.query(original_query, max_iter=max_iter)
def retrieve(original_query: str, max_iter: int | None = None) -> tuple[list[RetrievalResult], list[str]]:
"""
Retrieve relevant information from the knowledge base without generating an answer.
This function uses the default searcher to retrieve information from the knowledge base
that is relevant to the query.
Args:
original_query: The question or query to search for.
max_iter: Maximum number of iterations for the search process.
Returns:
A tuple containing:
- A list of retrieval results
- A list of strings representing consumed tokens
"""
default_searcher = configuration.default_searcher
retrieved_results, metadata = default_searcher.retrieve(original_query, max_iter=max_iter)
return retrieved_results