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.
48 lines
1.7 KiB
48 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, max_iter: int = 3) -> 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
|
|
return default_searcher.query(original_query, max_iter=max_iter)
|
|
|
|
|
|
def retrieve(
|
|
original_query: str, max_iter: int = 3
|
|
) -> 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, consume_tokens, metadata = default_searcher.retrieve(
|
|
original_query, max_iter=max_iter
|
|
)
|
|
return retrieved_results, consume_tokens
|
|
|