Merge branch 'sdk-improv/async' of https://github.com/mendableai/firecrawl into sdk-improv/async

This commit is contained in:
Nicolas 2025-04-17 23:50:57 -07:00
commit 287032017b

View File

@ -84,6 +84,15 @@ class FirecrawlDocumentMetadata(pydantic.BaseModel):
statusCode: Optional[int] = None statusCode: Optional[int] = None
error: Optional[str] = None error: Optional[str] = None
class AgentOptions(pydantic.BaseModel):
"""Configuration for the agent."""
model: Literal["FIRE-1"] = "FIRE-1"
prompt: Optional[str] = None
class AgentOptionsExtract(pydantic.BaseModel):
"""Configuration for the agent in extract operations."""
model: Literal["FIRE-1"] = "FIRE-1"
class ActionsResult(pydantic.BaseModel): class ActionsResult(pydantic.BaseModel):
"""Result of actions performed during scraping.""" """Result of actions performed during scraping."""
screenshots: List[str] screenshots: List[str]
@ -172,17 +181,24 @@ class ExecuteJavascriptAction(pydantic.BaseModel):
type: Literal["executeJavascript"] type: Literal["executeJavascript"]
script: str script: str
class ExtractAgent(pydantic.BaseModel):
"""Configuration for the agent in extract operations."""
model: Literal["FIRE-1"] = "FIRE-1"
class ExtractConfig(pydantic.BaseModel): class ExtractConfig(pydantic.BaseModel):
"""Configuration for extraction.""" """Configuration for extraction."""
prompt: Optional[str] = None prompt: Optional[str] = None
schema: Optional[Any] = None schema: Optional[Any] = None
systemPrompt: Optional[str] = None systemPrompt: Optional[str] = None
agent: Optional[ExtractAgent] = None
class ScrapeParams(CommonOptions): class ScrapeParams(CommonOptions):
"""Parameters for scraping operations.""" """Parameters for scraping operations."""
extract: Optional[ExtractConfig] = None extract: Optional[ExtractConfig] = None
jsonOptions: Optional[ExtractConfig] = None jsonOptions: Optional[ExtractConfig] = None
actions: Optional[List[Union[WaitAction, ScreenshotAction, ClickAction, WriteAction, PressAction, ScrollAction, ScrapeAction, ExecuteJavascriptAction]]] = None actions: Optional[List[Union[WaitAction, ScreenshotAction, ClickAction, WriteAction, PressAction, ScrollAction, ScrapeAction, ExecuteJavascriptAction]]] = None
agent: Optional[AgentOptions] = None
class ScrapeResponse(FirecrawlDocument[T], Generic[T]): class ScrapeResponse(FirecrawlDocument[T], Generic[T]):
"""Response from scraping operations.""" """Response from scraping operations."""
@ -371,44 +387,39 @@ class ChangeTrackingData(pydantic.BaseModel):
visibility: str # "visible" | "hidden" visibility: str # "visible" | "hidden"
diff: Optional[Dict[str, Any]] = None diff: Optional[Dict[str, Any]] = None
json: Optional[Any] = None json: Optional[Any] = None
class SearchResponse(pydantic.BaseModel):
"""
Response from the search operation.
"""
success: bool
data: List[Dict[str, Any]]
warning: Optional[str] = None
error: Optional[str] = None
class SearchResponse(pydantic.BaseModel): class ExtractParams(pydantic.BaseModel):
""" """
Response from the search operation. Parameters for the extract operation.
""" """
success: bool prompt: Optional[str] = None
data: List[Dict[str, Any]] schema_: Optional[Any] = pydantic.Field(None, alias='schema')
warning: Optional[str] = None system_prompt: Optional[str] = None
error: Optional[str] = None allow_external_links: Optional[bool] = False
enable_web_search: Optional[bool] = False
# Just for backwards compatibility
enableWebSearch: Optional[bool] = False
show_sources: Optional[bool] = False
agent: Optional[Dict[str, Any]] = None
class ExtractParams(pydantic.BaseModel): class ExtractResponse(pydantic.BaseModel):
""" """
Parameters for the extract operation. Response from the extract operation.
""" """
prompt: Optional[str] = None success: bool
schema_: Optional[Any] = pydantic.Field(None, alias='schema') data: Optional[Any] = None
system_prompt: Optional[str] = None error: Optional[str] = None
allow_external_links: Optional[bool] = False
enable_web_search: Optional[bool] = False
# Just for backwards compatibility
enableWebSearch: Optional[bool] = False
show_sources: Optional[bool] = False
agent: Optional[Dict[str, Any]] = None
class ExtractResponse(pydantic.BaseModel):
"""
Response from the extract operation.
"""
success: bool
data: Optional[Any] = None
error: Optional[str] = None
class FirecrawlApp: class FirecrawlApp:
def __init__(self, api_key: Optional[str] = None, api_url: Optional[str] = None) -> None: def __init__(self, api_key: Optional[str] = None, api_url: Optional[str] = None) -> None:
""" """
Initialize the FirecrawlApp instance with API key, API URL. Initialize the FirecrawlApp instance with API key, API URL.