tavily.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  1. from typing import Any
  2. from core.tools.entities.values import ToolLabelEnum
  3. from core.tools.errors import ToolProviderCredentialValidationError
  4. from core.tools.provider.builtin.tavily.tools.tavily_search import TavilySearchTool
  5. from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController
  6. class TavilyProvider(BuiltinToolProviderController):
  7. def _validate_credentials(self, credentials: dict[str, Any]) -> None:
  8. try:
  9. TavilySearchTool().fork_tool_runtime(
  10. runtime={
  11. "credentials": credentials,
  12. }
  13. ).invoke(
  14. user_id='',
  15. tool_parameters={
  16. "query": "Sachin Tendulkar",
  17. "search_depth": "basic",
  18. "include_answer": True,
  19. "include_images": False,
  20. "include_raw_content": False,
  21. "max_results": 5,
  22. "include_domains": "",
  23. "exclude_domains": ""
  24. },
  25. )
  26. except Exception as e:
  27. raise ToolProviderCredentialValidationError(str(e))
  28. def _get_tool_labels(self) -> list[ToolLabelEnum]:
  29. return [
  30. ToolLabelEnum.SEARCH
  31. ]