from modules.interfaces.interface_web_model import ( WebCrawlActionResult, WebSearchActionResult, WebSearchRequest, WebCrawlRequest, WebScrapeActionResult, WebScrapeRequest, ) from dataclasses import dataclass from modules.connectors.connector_tavily import ConnectorTavily @dataclass class WebInterface: connector_tavily: ConnectorTavily = None @classmethod async def create(cls) -> "WebInterface": connector_tavily = await ConnectorTavily.create() return WebInterface(connector_tavily=connector_tavily) async def search( self, web_search_request: WebSearchRequest ) -> WebSearchActionResult: # NOTE: Add connectors here return await self.connector_tavily.search_urls(web_search_request) async def crawl(self, web_crawl_request: WebCrawlRequest) -> WebCrawlActionResult: # NOTE: Add connectors here return await self.connector_tavily.crawl_urls(web_crawl_request) async def scrape( self, web_scrape_request: WebScrapeRequest ) -> WebScrapeActionResult: # NOTE: Add connectors here return await self.connector_tavily.scrape(web_scrape_request)