firecrawl icon indicating copy to clipboard operation
firecrawl copied to clipboard

[Bug] Python SDK extract method argument not correctly using Pydantic model

Open JamesLloydPartingtonSerendipityai opened this issue 5 days ago • 0 comments

Describe the Bug The method uses dictionaries methods on a typed pydantic model instance

def extract(self, urls: List[str], params: Optional[ExtractParams] = None) -> Any:
        """
        Extracts information from a URL using the Firecrawl API.

        Args:
            urls (List[str]): The URLs to extract information from.
            params (Optional[ExtractParams]): Additional parameters for the extract request.

        Returns:
            Union[ExtractResponse, ErrorResponse]: The response from the extract operation.
        """
        headers = self._prepare_headers()

        if not params or (not params.get('prompt') and not params.get('schema')):
            raise ValueError("Either prompt or schema is required")


class SearchParams(pydantic.BaseModel):
    query: str
    limit: Optional[int] = 5
    tbs: Optional[str] = None
    filter: Optional[str] = None
    lang: Optional[str] = "en"
    country: Optional[str] = "us"
    location: Optional[str] = None
    origin: Optional[str] = "api"
    timeout: Optional[int] = 60000
    scrapeOptions: Optional[Dict[str, Any]] = None