Spaces:
Sleeping
Sleeping
| from langchain_community.tools import ArxivQueryRun | |
| from langchain_community.utilities import ArxivAPIWrapper | |
| from langgraph.prebuilt import ToolNode | |
| def get_arxiv_tools(): | |
| """ | |
| Return the list of ArXiv tools for research assistance | |
| """ | |
| # Initialize ArXiv API wrapper with configuration | |
| arxiv_wrapper = ArxivAPIWrapper( | |
| top_k_results=5, # Return top 5 most relevant papers | |
| doc_content_chars_max=5000 # Limit content to 5000 characters per paper | |
| ) | |
| # Create ArXiv query tool | |
| arxiv_tool = ArxivQueryRun(api_wrapper=arxiv_wrapper) | |
| tools = [arxiv_tool] | |
| return tools | |
| def create_arxiv_tool_node(tools): | |
| """ | |
| Creates and returns a tool node for ArXiv research tools | |
| """ | |
| return ToolNode(tools=tools) | |
| def get_research_assistant_tools(): | |
| """ | |
| Return combined tools for research assistant (ArXiv + web search if needed) | |
| """ | |
| from .search_tool import get_tools as get_web_tools | |
| # Get ArXiv tools | |
| arxiv_tools = get_arxiv_tools() | |
| # Get web search tools | |
| web_tools = get_web_tools() | |
| # Combine both tool sets for comprehensive research | |
| combined_tools = arxiv_tools + web_tools | |
| return combined_tools |