firecrawl.py 1.1 KB

1234567891011121314151617181920212223242526272829
  1. from core.tools.entities.values import ToolLabelEnum
  2. from core.tools.errors import ToolProviderCredentialValidationError
  3. from core.tools.provider.builtin.firecrawl.tools.crawl import CrawlTool
  4. from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController
  5. class FirecrawlProvider(BuiltinToolProviderController):
  6. def _validate_credentials(self, credentials: dict) -> None:
  7. try:
  8. # Example validation using the Crawl tool
  9. CrawlTool().fork_tool_runtime(
  10. runtime={"credentials": credentials}
  11. ).invoke(
  12. user_id='',
  13. tool_parameters={
  14. "url": "https://example.com",
  15. "includes": '',
  16. "excludes": '',
  17. "limit": 1,
  18. "onlyMainContent": True,
  19. }
  20. )
  21. except Exception as e:
  22. raise ToolProviderCredentialValidationError(str(e))
  23. def _get_tool_labels(self) -> list[ToolLabelEnum]:
  24. return [
  25. ToolLabelEnum.SEARCH, ToolLabelEnum.UTILITIES
  26. ]