Spaces:
Running
Running
| import requests | |
| class RandomCharatorGeneratorTool: | |
| name = "random_character" | |
| description = "This tool fetches a random character from the 'https://randomuser.me/api/' open API." | |
| inputs = ["text"] # Adding an empty list for inputs | |
| outputs = ["json"] | |
| def __call__(self, inputs: str): | |
| API_URL = "https://randomuser.me/api/" | |
| response = requests.get(API_URL) | |
| data = response.json()['results'][0] | |
| # Extract the relevant character information | |
| character = { | |
| "gender": data['gender'], | |
| "name": { | |
| "title": data['name']['title'], | |
| "first": data['name']['first'], | |
| "last": data['name']['last'] | |
| }, | |
| "location": { | |
| "street": { | |
| "number": data['location']['street']['number'], | |
| "name": data['location']['street']['name'] | |
| }, | |
| "city": data['location']['city'], | |
| "state": data['location']['state'], | |
| "country": data['location']['country'], | |
| "postcode": data['location']['postcode'], | |
| "coordinates": { | |
| "latitude": data['location']['coordinates']['latitude'], | |
| "longitude": data['location']['coordinates']['longitude'] | |
| }, | |
| "timezone": { | |
| "offset": data['location']['timezone']['offset'], | |
| "description": data['location']['timezone']['description'] | |
| } | |
| }, | |
| "email": data['email'], | |
| "login": { | |
| "uuid": data['login']['uuid'], | |
| "username": data['login']['username'], | |
| "password": data['login']['password'], | |
| "salt": data['login']['salt'], | |
| "md5": data['login']['md5'], | |
| "sha1": data['login']['sha1'], | |
| "sha256": data['login']['sha256'] | |
| }, | |
| "dob": { | |
| "date": data['dob']['date'], | |
| "age": data['dob']['age'] | |
| }, | |
| "registered": { | |
| "date": data['registered']['date'], | |
| "age": data['registered']['age'] | |
| }, | |
| "phone": data['phone'], | |
| "cell": data['cell'], | |
| "id": { | |
| "name": data['id']['name'], | |
| "value": data['id']['value'] | |
| }, | |
| "picture": { | |
| "large": data['picture']['large'], | |
| "medium": data['picture']['medium'], | |
| "thumbnail": data['picture']['thumbnail'] | |
| }, | |
| "nat": data['nat'] | |
| } | |
| return {"character": character} | |