Improve firecrawl tool

This commit is contained in:
Brandon Hancock
2024-11-01 17:19:54 -04:00
parent 9eac65f9f6
commit 2061f8ca41
3 changed files with 19 additions and 7 deletions

View File

@@ -1,9 +1,13 @@
from typing import Any, Dict, List, Optional, Type
from typing import TYPE_CHECKING, Any, Dict, Optional, Type
from pydantic import BaseModel, Field
from crewai_tools.tools.base_tool import BaseTool
# Type checking import
if TYPE_CHECKING:
from firecrawl import FirecrawlApp
class FirecrawlCrawlWebsiteToolSchema(BaseModel):
url: str = Field(description="Website URL")
@@ -20,7 +24,7 @@ class FirecrawlCrawlWebsiteTool(BaseTool):
description: str = "Crawl webpages using Firecrawl and return the contents"
args_schema: Type[BaseModel] = FirecrawlCrawlWebsiteToolSchema
api_key: Optional[str] = None
firecrawl: Optional[Any] = None
firecrawl: Optional["FirecrawlApp"] = None
def __init__(self, api_key: Optional[str] = None, **kwargs):
super().__init__(**kwargs)

View File

@@ -1,9 +1,13 @@
from typing import Any, Dict, Optional, Type
from typing import TYPE_CHECKING, Any, Dict, Optional, Type
from pydantic import BaseModel, Field
from crewai_tools.tools.base_tool import BaseTool
# Type checking import
if TYPE_CHECKING:
from firecrawl import FirecrawlApp
class FirecrawlScrapeWebsiteToolSchema(BaseModel):
url: str = Field(description="Website URL")
@@ -24,7 +28,7 @@ class FirecrawlScrapeWebsiteTool(BaseTool):
description: str = "Scrape webpages url using Firecrawl and return the contents"
args_schema: Type[BaseModel] = FirecrawlScrapeWebsiteToolSchema
api_key: Optional[str] = None
firecrawl: Optional[Any] = None
firecrawl: Optional["FirecrawlApp"] = None # Updated to use TYPE_CHECKING
def __init__(self, api_key: Optional[str] = None, **kwargs):
super().__init__(**kwargs)

View File

@@ -1,9 +1,13 @@
from typing import Any, Dict, List, Optional, Type
from typing import TYPE_CHECKING, Any, Dict, Optional, Type
from pydantic import BaseModel, Field
from crewai_tools.tools.base_tool import BaseTool
# Type checking import
if TYPE_CHECKING:
from firecrawl import FirecrawlApp
class FirecrawlSearchToolSchema(BaseModel):
query: str = Field(description="Search query")
@@ -20,7 +24,7 @@ class FirecrawlSearchTool(BaseTool):
description: str = "Search webpages using Firecrawl and return the results"
args_schema: Type[BaseModel] = FirecrawlSearchToolSchema
api_key: Optional[str] = None
firecrawl: Optional[Any] = None
firecrawl: Optional["FirecrawlApp"] = None
def __init__(self, api_key: Optional[str] = None, **kwargs):
super().__init__(**kwargs)
@@ -45,4 +49,4 @@ class FirecrawlSearchTool(BaseTool):
result_options = {}
options = {"pageOptions": page_options, "resultOptions": result_options}
return self.firecrawl.search(query, options)
return self.firecrawl.search(query, **options)