stackexchange.py 1.2 KB

12345678910111213141516171819202122232425262728293031
  1. from core.tools.entities.values import ToolLabelEnum
  2. from core.tools.errors import ToolProviderCredentialValidationError
  3. from core.tools.provider.builtin.stackexchange.tools.searchStackExQuestions import SearchStackExQuestionsTool
  4. from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController
  5. class StackExchangeProvider(BuiltinToolProviderController):
  6. def _validate_credentials(self, credentials: dict) -> None:
  7. try:
  8. SearchStackExQuestionsTool().fork_tool_runtime(
  9. runtime={
  10. "credentials": credentials,
  11. }
  12. ).invoke(
  13. user_id='',
  14. tool_parameters={
  15. "intitle": "Test",
  16. "sort": "relevance",
  17. "order": "desc",
  18. "site": "stackoverflow",
  19. "accepted": True,
  20. "pagesize": 1
  21. },
  22. )
  23. except Exception as e:
  24. raise ToolProviderCredentialValidationError(str(e))
  25. def _get_tool_labels(self) -> list[ToolLabelEnum]:
  26. return [
  27. ToolLabelEnum.SEARCH, ToolLabelEnum.UTILITIES
  28. ]