Spaces:
Runtime error
Runtime error
Commit ·
d058037
1
Parent(s): 9108d37
fix: output
Browse files
app.py
CHANGED
|
@@ -70,29 +70,27 @@ def sort_by_nearest_location(df, user_lat, user_lon):
|
|
| 70 |
lambda row: geodesic((user_lat, user_lon), (row['latitude'], row['longitude'])).km,
|
| 71 |
axis=1
|
| 72 |
)
|
|
|
|
| 73 |
return df.sort_values(by='distance_km')
|
| 74 |
|
| 75 |
# --- Fungsi Utama Gradio ---
|
| 76 |
def wisata_rekomendasi(deskripsi, lokasi):
|
| 77 |
if df.empty:
|
| 78 |
-
return "Data
|
| 79 |
|
| 80 |
keywords = extract_keywords(deskripsi)
|
| 81 |
if "Error:" in str(keywords):
|
| 82 |
-
return
|
| 83 |
|
| 84 |
user_description_joined = " ".join(keywords)
|
| 85 |
lat, lon = get_coordinates_from_location(lokasi)
|
| 86 |
if lat is None or lon is None:
|
| 87 |
-
return "Lokasi tidak ditemukan."
|
| 88 |
|
| 89 |
-
reverse_location = get_location_name_from_coordinates(lat, lon)
|
| 90 |
top_place = prepare_and_recommend(df.copy(), user_description_joined)
|
| 91 |
sorted_place = sort_by_nearest_location(top_place, lat, lon)
|
| 92 |
|
| 93 |
-
|
| 94 |
-
hasil += sorted_place[['nama', 'distance_km', 'description']].to_string(index=False)
|
| 95 |
-
return hasil
|
| 96 |
|
| 97 |
# --- UI Gradio ---
|
| 98 |
demo = gr.Interface(
|
|
@@ -101,7 +99,10 @@ demo = gr.Interface(
|
|
| 101 |
gr.Textbox(label="Deskripsi Wisata yang Anda Inginkan"),
|
| 102 |
gr.Textbox(label="Lokasi Anda (Contoh: Gunung Kidul, Yogyakarta)")
|
| 103 |
],
|
| 104 |
-
outputs=
|
|
|
|
|
|
|
|
|
|
| 105 |
title="Sistem Rekomendasi Wisata",
|
| 106 |
description="Masukkan deskripsi dan lokasi, lalu dapatkan rekomendasi tempat wisata terdekat"
|
| 107 |
)
|
|
|
|
| 70 |
lambda row: geodesic((user_lat, user_lon), (row['latitude'], row['longitude'])).km,
|
| 71 |
axis=1
|
| 72 |
)
|
| 73 |
+
df['distance_km'] = df['distance_km'].round(2)
|
| 74 |
return df.sort_values(by='distance_km')
|
| 75 |
|
| 76 |
# --- Fungsi Utama Gradio ---
|
| 77 |
def wisata_rekomendasi(deskripsi, lokasi):
|
| 78 |
if df.empty:
|
| 79 |
+
return "Data tidak tersedia.", pd.DataFrame([["Data tidak tersedia", "", ""]], columns=["nama", "distance_km", "description"])
|
| 80 |
|
| 81 |
keywords = extract_keywords(deskripsi)
|
| 82 |
if "Error:" in str(keywords):
|
| 83 |
+
return f"Kata kunci gagal diambil: {keywords[0]}", pd.DataFrame([[keywords[0], "", ""]], columns=["nama", "distance_km", "description"])
|
| 84 |
|
| 85 |
user_description_joined = " ".join(keywords)
|
| 86 |
lat, lon = get_coordinates_from_location(lokasi)
|
| 87 |
if lat is None or lon is None:
|
| 88 |
+
return "Lokasi tidak ditemukan.", pd.DataFrame([["Lokasi tidak ditemukan", "", ""]], columns=["nama", "distance_km", "description"])
|
| 89 |
|
|
|
|
| 90 |
top_place = prepare_and_recommend(df.copy(), user_description_joined)
|
| 91 |
sorted_place = sort_by_nearest_location(top_place, lat, lon)
|
| 92 |
|
| 93 |
+
return f"Kata kunci: {', '.join(keywords)}", sorted_place[['nama', 'distance_km', 'description']]
|
|
|
|
|
|
|
| 94 |
|
| 95 |
# --- UI Gradio ---
|
| 96 |
demo = gr.Interface(
|
|
|
|
| 99 |
gr.Textbox(label="Deskripsi Wisata yang Anda Inginkan"),
|
| 100 |
gr.Textbox(label="Lokasi Anda (Contoh: Gunung Kidul, Yogyakarta)")
|
| 101 |
],
|
| 102 |
+
outputs=[
|
| 103 |
+
gr.Textbox(label="Kata Kunci yang Diekstrak"),
|
| 104 |
+
gr.Dataframe(headers=["nama", "distance_km", "description"], label="Rekomendasi Tempat Wisata")
|
| 105 |
+
],
|
| 106 |
title="Sistem Rekomendasi Wisata",
|
| 107 |
description="Masukkan deskripsi dan lokasi, lalu dapatkan rekomendasi tempat wisata terdekat"
|
| 108 |
)
|