Move off v1

This commit is contained in:
Brandon Hancock
2024-09-03 15:57:29 -04:00
parent d19bba72b0
commit 35fe222ca1
39 changed files with 752 additions and 550 deletions

View File

@@ -1,11 +1,19 @@
from typing import Optional, Any, Type, Dict, List
from pydantic.v1 import BaseModel, Field
from typing import Any, Dict, List, Optional, Type
from pydantic import BaseModel, Field
from crewai_tools.tools.base_tool import BaseTool
class FirecrawlSearchToolSchema(BaseModel):
query: str = Field(description="Search query")
page_options: Optional[Dict[str, Any]] = Field(default=None, description="Options for result formatting")
search_options: Optional[Dict[str, Any]] = Field(default=None, description="Options for searching")
page_options: Optional[Dict[str, Any]] = Field(
default=None, description="Options for result formatting"
)
search_options: Optional[Dict[str, Any]] = Field(
default=None, description="Options for searching"
)
class FirecrawlSearchTool(BaseTool):
name: str = "Firecrawl web search tool"
@@ -17,22 +25,24 @@ class FirecrawlSearchTool(BaseTool):
def __init__(self, api_key: Optional[str] = None, **kwargs):
super().__init__(**kwargs)
try:
from firecrawl import FirecrawlApp # type: ignore
from firecrawl import FirecrawlApp # type: ignore
except ImportError:
raise ImportError(
"`firecrawl` package not found, please run `pip install firecrawl-py`"
)
raise ImportError(
"`firecrawl` package not found, please run `pip install firecrawl-py`"
)
self.firecrawl = FirecrawlApp(api_key=api_key)
def _run(self, query: str, page_options: Optional[Dict[str, Any]] = None, result_options: Optional[Dict[str, Any]] = None):
if (page_options is None):
def _run(
self,
query: str,
page_options: Optional[Dict[str, Any]] = None,
result_options: Optional[Dict[str, Any]] = None,
):
if page_options is None:
page_options = {}
if (result_options is None):
if result_options is None:
result_options = {}
options = {
"pageOptions": page_options,
"resultOptions": result_options
}
options = {"pageOptions": page_options, "resultOptions": result_options}
return self.firecrawl.search(query, options)