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."