|
import importlib |
|
|
|
__all__ = ['WeatherApi'] |
|
|
|
|
|
class WeatherApi(): |
|
dependencies = ["requests==2.32.3"] |
|
|
|
inputSchema = { |
|
"name": "WeatherApi", |
|
"description": "Returns weather information for a given location", |
|
"parameters": { |
|
"type": "object", |
|
"properties": { |
|
"location": { |
|
"type": "string", |
|
"description": "The location for which to get the weather information", |
|
}, |
|
}, |
|
"required": ["location"], |
|
}, |
|
"invoke_resource_cost": 0.1, |
|
} |
|
|
|
def run(self, **kwargs): |
|
print("Running Weather API test tool") |
|
location = kwargs.get("location") |
|
print(f"Location: {location}") |
|
|
|
requests = importlib.import_module("requests") |
|
|
|
response = requests.get( |
|
f"http://api.openweathermap.org/data/2.5/weather?q={location}&appid=ea50e63a3bea67adaf50fbecbe5b3c1e") |
|
if response.status_code == 200: |
|
return { |
|
"status": "success", |
|
"message": "Weather API test tool executed successfully", |
|
"error": None, |
|
"output": response.json() |
|
} |
|
else: |
|
return { |
|
"status": "error", |
|
"message": "Weather API test tool failed", |
|
"error": response.text, |
|
"output": None |
|
} |
|
|