Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import json | |
| from fuzzywuzzy import process | |
| import requests | |
| url = "https://csrlc421nb.execute-api.us-east-2.amazonaws.com/dev/predict" | |
| # Load stations data from the JSON file | |
| with open('stations.json') as f: | |
| stations_data = json.load(f) | |
| stations = stations_data['stations'] | |
| # Create a mapping from station name to station ID | |
| station_name_to_id = {station['name']: station['station_id'] for station in stations} | |
| # Define a function to find the closest matching station | |
| def find_station(user_input): | |
| # Use fuzzy matching to find the top 3 closest station names | |
| matches = process.extract(user_input, station_name_to_id.keys(), limit=3) | |
| # If the best match has a score of 90 or above, we assume it's a good match | |
| if matches[0][1] >= 90: | |
| best_match = matches[0][0] | |
| station_id = station_name_to_id[best_match] | |
| response = requests.get(url, params={"station_id": station_id}) | |
| return response.json() | |
| # If ambiguous, return suggestions | |
| suggestions = [match[0] for match in matches] | |
| return f"Did you mean one of these stations? {', '.join(suggestions)}" | |
| # Create Gradio interface | |
| station_input = gr.Textbox(label="Enter Station Name") # Use gr.Textbox for input | |
| output_text = gr.Textbox(label="Station ID or Suggestions") # Use gr.Textbox for output | |
| # Launch the Gradio interface | |
| gr.Interface(fn=find_station, inputs=station_input, outputs=output_text, title="Ebike Finder").launch() |