38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
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)
|