-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathsample.py
executable file
·66 lines (51 loc) · 1.75 KB
/
sample.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/usr/bin/env python3
"""Example of using API4AI fashion."""
import os
import sys
import requests
# Use 'demo' mode just to try api4ai for free. Free demo is rate limited.
# For more details visit:
# https://api4.ai
#
# Use 'rapidapi' if you want to try api4ai via RapidAPI marketplace.
# For more details visit:
# https://rapidapi.com/api4ai-api4ai-default/api/fashion4/details
MODE = 'demo'
# Your RapidAPI key. Fill this variable with the proper value if you want
# to try api4ai via RapidAPI marketplace.
RAPIDAPI_KEY = ''
OPTIONS = {
'demo': {
'url': 'https://demo.api4ai.cloud/fashion/v1/results',
'headers': {'A4A-CLIENT-APP-ID': 'sample'}
},
'rapidapi': {
'url': 'https://fashion4.p.rapidapi.com/v1/results',
'headers': {'X-RapidAPI-Key': RAPIDAPI_KEY}
}
}
if __name__ == '__main__':
# Parse args.
image = sys.argv[1] if len(sys.argv) > 1 else 'https://storage.googleapis.com/api4ai-static/samples/fashion-2.jpg'
if '://' in image:
# POST image via URL.
response = requests.post(
OPTIONS[MODE]['url'],
headers=OPTIONS[MODE]['headers'],
data={'url': image})
else:
# POST image as file.
with open(image, 'rb') as image_file:
response = requests.post(
OPTIONS[MODE]['url'],
headers=OPTIONS[MODE]['headers'],
files={'image': (os.path.basename(image), image_file)}
)
# Print raw response.
print(f'💬 Raw response:\n{response.text}\n')
# Parse response and print top 5 classes.
top5 = sorted(
response.json()['results'][0]['entities'][0]['classes'].items(),
key=lambda i: -i[1]
)[:5]
print(f'💬 Top 5 classes:\n{top5}\n')