Spaces:
Paused
Paused
def get_product_details(asin, domain): | |
payload = { | |
'source': 'amazon_product', | |
'domain': domain, | |
'query': asin, | |
'parse': True, | |
'context': [{'key': 'autoselect_variant', 'value': True}] | |
} | |
response = requests.post(OXYLABS_ENDPOINT, auth=OXYLABS_AUTH, json=payload) | |
data = response.json() | |
# Check if 'results' and 'content' keys are present in the data | |
if 'results' in data and len(data['results']) > 0 and 'content' in data['results'][0]: | |
content = data['results'][0]['content'] | |
product_info = { | |
"asin": content.get("asin", "N/A"), | |
"title": content.get("title", "N/A"), | |
"brand": content.get("brand", "N/A"), | |
"price": content.get("price", "N/A"), | |
"rating": content.get("rating", "N/A"), | |
"description": content.get("description", "N/A") | |
} | |
return json.dumps(product_info, indent=4) | |
else: | |
return "Failed to retrieve product details." | |
def get_reviews(asin, domain): | |
payload = { | |
'source': 'amazon_reviews', | |
'domain': domain, | |
'query': asin, | |
'parse': True | |
} | |
response = requests.post(OXYLABS_ENDPOINT, auth=OXYLABS_AUTH, json=payload) | |
data = response.json() | |
# Check if 'results', 'content', and 'reviews' keys are present in the data | |
if 'results' in data and len(data['results']) > 0 and 'content' in data['results'][0] and 'reviews' in data['results'][0]['content']: | |
reviews = data['results'][0]['content']['reviews'] | |
review_texts = "\n\n".join([review["content"] for review in reviews]) | |
openai_payload = { | |
'prompt': f"Summarize the following reviews:\n\n{review_texts}", | |
'max_tokens': 150 | |
} | |
headers = { | |
'Authorization': OPENAI_AUTH, | |
'Content-Type': 'application/json' | |
} | |
response = requests.post(OPENAI_ENDPOINT, headers=headers, json=openai_payload) | |
summary = response.json()["choices"][0]["text"].strip() | |
return summary | |
else: | |
return "Failed to retrieve reviews." | |