Source code for tooluniverse.semantic_scholar_tool

import os
import requests
from .base_tool import BaseTool
from .tool_registry import register_tool


[docs] @register_tool("SemanticScholarTool") class SemanticScholarTool(BaseTool): """ Tool to search for papers on Semantic Scholar including abstracts. API key is read from environment variable SEMANTIC_SCHOLAR_API_KEY. Request an API key at: https://www.semanticscholar.org/product/api Rate limits: - Without API key: 1 request/second - With API key: 100 requests/second """
[docs] def __init__( self, tool_config, base_url="https://api.semanticscholar.org/graph/v1/paper/search", ): super().__init__(tool_config) self.base_url = base_url # Get API key from environment as fallback self.default_api_key = os.environ.get("SEMANTIC_SCHOLAR_API_KEY", "")
[docs] def run(self, arguments): query = arguments.get("query") limit = arguments.get("limit", 5) if not query: return {"error": "`query` parameter is required."} return self._search(query, limit)