Merge pull request #134 from caike/fix-firecrawl-crawl-pydantic-errors

Fix pydantic related errors on FirecrawlCrawlWebsiteTool
This commit is contained in:
João Moura
2024-12-05 11:55:26 -03:00
committed by GitHub

View File

@@ -1,6 +1,6 @@
from typing import TYPE_CHECKING, Any, Dict, Optional, Type
from pydantic import BaseModel, Field
from pydantic import BaseModel, Field, ConfigDict
from crewai_tools.tools.base_tool import BaseTool
@@ -20,6 +20,11 @@ class FirecrawlCrawlWebsiteToolSchema(BaseModel):
class FirecrawlCrawlWebsiteTool(BaseTool):
model_config = ConfigDict(
arbitrary_types_allowed=True,
validate_assignment=True,
frozen=False
)
name: str = "Firecrawl web crawl tool"
description: str = "Crawl webpages using Firecrawl and return the contents"
args_schema: Type[BaseModel] = FirecrawlCrawlWebsiteToolSchema
@@ -50,3 +55,14 @@ class FirecrawlCrawlWebsiteTool(BaseTool):
options = {"crawlerOptions": crawler_options, "pageOptions": page_options}
return self.firecrawl.crawl_url(url, options)
try:
from firecrawl import FirecrawlApp
# Must rebuild model after class is defined
FirecrawlCrawlWebsiteTool.model_rebuild()
except ImportError:
"""
When this tool is not used, then exception can be ignored.
"""
pass