Source code for tooluniverse.arxiv_tool

import requests
import xml.etree.ElementTree as ET
from .base_tool import BaseTool
from .tool_registry import register_tool


[docs] @register_tool("ArXivTool") class ArXivTool(BaseTool): """ Search arXiv for papers by keyword using the public arXiv API. """
[docs] def __init__( self, tool_config, base_url="http://export.arxiv.org/api/query", ): super().__init__(tool_config) self.base_url = base_url
[docs] def run(self, arguments): query = arguments.get("query") limit = int(arguments.get("limit", 10)) # sort_by: relevance | lastUpdatedDate | submittedDate sort_by = arguments.get("sort_by", "relevance") # sort_order: ascending | descending sort_order = arguments.get("sort_order", "descending") if not query: return {"error": "`query` parameter is required."} return self._search(query, limit, sort_by, sort_order)