Spaces:
Sleeping
Sleeping
| import datasets | |
| import torch | |
| from langchain_community.tools import DuckDuckGoSearchRun | |
| from langchain_community.retrievers import WikipediaRetriever | |
| from langchain_community.document_loaders import ArxivLoader, WikipediaLoader | |
| from langchain_core.documents import Document | |
| from langchain_core.tools import tool | |
| from langchain_tavily import TavilySearch | |
| from sentence_transformers import SentenceTransformer | |
| search_tool = TavilySearch( | |
| max_results=5, | |
| topic="general", | |
| # include_answer=False, | |
| # include_raw_content=False, | |
| # include_images=False, | |
| # include_image_descriptions=False, | |
| # search_depth="basic", | |
| # time_range="day", | |
| # include_domains=None, | |
| # exclude_domains=None | |
| ) | |
| def wikipedia_search(query: str) -> str: | |
| """Retrieves information for a question from wikipedia. | |
| Args: | |
| query: The query for which the information is to be retrieved. | |
| Returns: | |
| The retrieved information from wikipedia. | |
| """ | |
| loader = WikipediaLoader(query=query) | |
| results = loader.load() | |
| if results: | |
| return "\n\n".join([doc.page_content for doc in results]) | |
| else: | |
| return "No relevant information found." | |
| def arxiv_search(query: str) -> str: | |
| """Retrieves information for a question from arxiv papers. | |
| Args: | |
| query: The query for which the information is to be searched. | |
| Returns: | |
| The retrieved information from arxiv. | |
| """ | |
| loader = ArxivLoader(query=query) | |
| top_results = loader.load() | |
| if len(top_results) > 0: | |
| return "\n\n".join([doc.page_content for doc in top_results]) | |
| else: | |
| return "No relevant information found." | |
| def divide(a: float, b:float) -> str: | |
| """Divides two numbers. | |
| Args: | |
| a: The dividend. | |
| b: The divisor. | |
| Returns: | |
| The result of the division. | |
| """ | |
| if b == 0: | |
| return "Error: Division by zero is not allowed." | |
| return str(a / b) | |
| def multiply(a: float, b:float) -> str: | |
| """Multiplies two numbers. | |
| Args: | |
| a: The first number. | |
| b: The second number. | |
| Returns: | |
| The result of the multiplication. | |
| """ | |
| return str(a * b) | |
| def add(a: float, b:float) -> str: | |
| """Adds two numbers. | |
| Args: | |
| a: The first number. | |
| b: The second number. | |
| Returns: | |
| The result of the addition. | |
| """ | |
| return str(a + b) | |
| def subtract(a: float, b:float) -> str: | |
| """Subtracts two numbers. | |
| Args: | |
| a: The first number. | |
| b: The second number. | |
| Returns: | |
| The result of the subtraction. | |
| """ | |
| return str(a - b) | |
| def modulus(a: int, b:int) -> str: | |
| """Calculates the modulus of two numbers. | |
| Args: | |
| a: The first number. | |
| b: The second number. | |
| Returns: | |
| The result of the modulus operation. | |
| """ | |
| if b == 0: | |
| return "Error: Modulus by zero is not allowed." | |
| return str(a % b) | |