Spaces:
Sleeping
Sleeping
| from src.agent.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.agent.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." | |