""" Sample script to demonstrate how to use the Gift Finder API with SerpAPI integration for real product searches in third-party applications. """ import os import json from dotenv import load_dotenv from gift_finder_api import GiftFinderAPI # Load environment variables from .env file load_dotenv() # Get API keys from environment variables HF_TOKEN = os.getenv("HF_TOKEN") SERPAPI_KEY = os.getenv("SERPAPI_API_KEY") def test_gift_finder_with_serpapi(): """ Test the Gift Finder API with SerpAPI integration. """ print("Testing Gift Finder API with SerpAPI integration") print("-" * 50) # Initialize the Gift Finder API api = GiftFinderAPI(hf_token=HF_TOKEN) # Example conversation conversation = """ USER: I need to find a gift for my sister's birthday. She's 28 and loves hiking, photography, and cooking. My budget is around $75. ASSISTANT: I'd be happy to help you find a birthday gift for your sister who enjoys hiking, photography, and cooking. USER: She especially likes taking landscape photos during her hikes and experimenting with new recipes. """ print("Processing conversation...") # Extract gift data extracted_data = api.extract_gift_data(conversation) print("\nExtracted Gift Data:") print(json.dumps(extracted_data, indent=2)) # Generate gift search query search_query = api.generate_gift_query(conversation) print("\nGenerated Gift Search Query:") print(search_query) # Get gift recommendations print("\nGetting gift recommendations...") # First, try without SerpAPI (example recommendations) print("\n1. Example recommendations (without SerpAPI):") recommendations = api.get_gift_recommendations( conversation=conversation, num_recommendations=3 ) print_recommendations(recommendations) # Then, try with SerpAPI if key is available if SERPAPI_KEY: print("\n2. Real product recommendations (with SerpAPI):") try: recommendations = api.get_gift_recommendations( conversation=conversation, num_recommendations=3, search_api_key=SERPAPI_KEY ) print_recommendations(recommendations) print("\nProduct data source:", recommendations[0].get("source", "unknown")) except Exception as e: print(f"Error using SerpAPI: {str(e)}") else: print("\nSerpAPI key not available. Skipping real product search.") print("To use SerpAPI, set the SERPAPI_API_KEY environment variable.") def print_recommendations(recommendations): """Print gift recommendations in a formatted way.""" for i, rec in enumerate(recommendations, 1): print(f"{i}. {rec['name']} - {rec['price']}") print(f" {rec.get('description', '')}") print(f" {rec['url']}") print() if __name__ == "__main__": test_gift_finder_with_serpapi()