Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| from chromadblocal import DataHandler | |
| from queryhandler import QueryHandler | |
| # Initialize the DataHandler to access the ChromaDB collection and get unique cities | |
| data_handler = DataHandler() | |
| available_cities = data_handler.get_unique_cities() # Get list of unique cities | |
| # Initialize the QueryHandler with the ChromaDB collection | |
| query_handler = QueryHandler(data_handler.get_collection()) | |
| # Function to handle user queries | |
| def process_query(user_prompt): | |
| # Query the collection and return top results | |
| results = query_handler.query(user_prompt, n_results=5) | |
| # Generate the response based on the query results | |
| recommendation_text, image_paths = query_handler.generate_response(results, user_prompt) | |
| # Return response text and image paths (not gr.Image components) | |
| return recommendation_text, image_paths # Return text and image paths | |
| # Display greeting message along with available cities | |
| def display_greeting_and_cities(): | |
| greeting = ("Hi there! Got questions about restaurants, cuisines, locations, ratings, or costs in these cities?" | |
| " Just ask, and I’ll be thrilled to help you find what you need!") | |
| cities_list = ", ".join(available_cities) | |
| return f"{greeting}\n\nAvailable cities: {cities_list}" | |
| # Create a Gradio interface | |
| iface = gr.Interface( | |
| fn=process_query, # Function to process input | |
| inputs=gr.Textbox(label="Ask about restaurants, cuisines, or more"), # Custom label for input | |
| outputs=[ | |
| gr.Textbox(label="Recommended Restaurants"), # Text output for recommendations | |
| gr.Gallery(label="Restaurant Images") # Gallery to display images | |
| ], | |
| title="Restaurant Query System", | |
| description=display_greeting_and_cities() # Show greeting and cities above the input prompt | |
| ) | |
| # Launch the Gradio app with allowed_paths specified | |
| if __name__ == "__main__": | |
| iface.launch( | |
| server_name="127.0.0.1", | |
| server_port=7860, | |
| share=True, | |
| allowed_paths=["D:/Projects/Liminal/AI_Guide/resources/uuid_images"] # Specify allowed paths during launch | |
| ) | |