gaode.py 1.3 KB

1234567891011121314151617181920212223242526
  1. import urllib.parse
  2. import requests
  3. from core.tools.errors import ToolProviderCredentialValidationError
  4. from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController
  5. class GaodeProvider(BuiltinToolProviderController):
  6. def _validate_credentials(self, credentials: dict) -> None:
  7. try:
  8. if 'api_key' not in credentials or not credentials.get('api_key'):
  9. raise ToolProviderCredentialValidationError("Gaode API key is required.")
  10. try:
  11. response = requests.get(url="https://restapi.amap.com/v3/geocode/geo?address={address}&key={apikey}"
  12. "".format(address=urllib.parse.quote('广东省广州市天河区广州塔'),
  13. apikey=credentials.get('api_key')))
  14. if response.status_code == 200 and (response.json()).get('info') == 'OK':
  15. pass
  16. else:
  17. raise ToolProviderCredentialValidationError((response.json()).get('info'))
  18. except Exception as e:
  19. raise ToolProviderCredentialValidationError("Gaode API Key is invalid. {}".format(e))
  20. except Exception as e:
  21. raise ToolProviderCredentialValidationError(str(e))