Spaces:
Sleeping
Sleeping
from src.utils.tooling import tool | |
def format_the(query, results): | |
if results == "No relevant data found in the knowledge database. Have you checked any webpages or use any tools? If so, please try to find more relevant data.": | |
return results | |
else: | |
formatted_text = f"# Knowledge for '{query}' \n\n" | |
formatted_text += f"Fetched {len(results['documents'])} relevant documents.\n\n" | |
try: | |
for i in range(len(results['documents'])): | |
formatted_text += f"## Document {i + 1} ---\n" | |
formatted_text += f"- Content: '''\n{results['documents'][i]}\n'''\n" | |
formatted_text += f"- Metadata: {results['metadatas'][i]}\n" | |
formatted_text += f"---\n\n" | |
except Exception as e: | |
return f"Error: Index out of range. Please check the results structure. {str(e)}" | |
return formatted_text | |
def retrieve_knowledge(query: str, n_results: int = 2) -> str: | |
""" | |
Retrieves knowledge from a database with a provided query. | |
Args: | |
query (str): The query to search for in the vector store. | |
n_results (int, optional): The number of results to return. Default is 1. | |
""" | |
try: | |
from src.utils.vector_store import retrieve_from_database | |
distance_threshold = 0.4 | |
results = retrieve_from_database( | |
query=query, | |
n_results=n_results, | |
distance_threshold=distance_threshold | |
) | |
results_formatted = format_the(query, results) | |
if results_formatted: | |
return results_formatted | |
else: | |
return "No relevant data found in the knowledge database. Have you checked any webpages or use any tools? If so, please try to find more relevant data." | |
except Exception as e: | |
print(f"Error retrieving knowledge: {e}") | |
return f"No relevant data found in the knowledge database. Have you checked any webpages or use any tools? If so, please try to find more relevant data." | |