import gradio as gr from product_recommender import DynamicRecommender import asyncio async def get_recommendations(text: str) -> dict: try: recommender = DynamicRecommender() recommendations = await recommender.get_recommendations(text) return {"recommendations": recommendations} except Exception as e: return {"error": str(e)} demo = gr.Interface( fn=lambda x: asyncio.run(get_recommendations(x)), inputs=gr.Textbox( lines=3, placeholder="Describe who you're buying a gift for (age, interests, etc.)" ), outputs=gr.JSON(), title="🎁 Smart Gift Recommender", description="Get personalized gift suggestions with real-time price comparison!" ) if __name__ == "__main__": # Run on all interfaces and port 7860 by default demo.launch(server_name="0.0.0.0", server_port=7860) else: app = demo.app