celikn commited on
Commit
acd267e
·
verified ·
1 Parent(s): a978be1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +33 -0
app.py CHANGED
@@ -342,6 +342,25 @@ def generate_overpass_query_from_llm(prompt: str, model_name: str) -> str:
342
  query_text = query_text.replace("```ql", "").replace("```QL", "").replace("```", "")
343
  return query_text.strip()
344
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
345
 
346
 
347
 
@@ -593,6 +612,7 @@ def run_overpass_to_map(query: str):
593
  Overpass QL sorgusunu çalıştırır ve sonucu Folium haritası olarak HTML döndürür.
594
  Shapely / GeoPandas KULLANMIYOR.
595
  """
 
596
  if not query or not query.strip():
597
  return "<b>Overpass sorgusu boş.</b>"
598
 
@@ -603,6 +623,11 @@ def run_overpass_to_map(query: str):
603
  resp.raise_for_status()
604
  data = resp.json()
605
  except Exception as e:
 
 
 
 
 
606
  print("Overpass isteği hatası:", e)
607
  return f"<b>Overpass isteği hatası:</b> {e}"
608
 
@@ -667,6 +692,11 @@ def run_overpass_to_map(query: str):
667
  folium.LayerControl().add_to(m)
668
  return m._repr_html_()
669
 
 
 
 
 
 
670
  def llm_overpass_to_map(natural_prompt: str, model_name: str):
671
  """
672
  1) Doğal dil prompt'tan LLM ile Overpass QL üretir
@@ -687,6 +717,9 @@ def llm_overpass_to_map(natural_prompt: str, model_name: str):
687
  return query, map_html
688
 
689
 
 
 
 
690
  # ==========================================
691
  # LLM SOHBET FONKSİYONU
692
  # ==========================================
 
342
  query_text = query_text.replace("```ql", "").replace("```QL", "").replace("```", "")
343
  return query_text.strip()
344
 
345
+ def normalize_overpass_query(raw_query: str) -> str:
346
+ """
347
+ Kullanıcının yapıştırdığı sorgudan markdown / gereksiz metinleri temizler.
348
+ ```ql, ``` gibi blokları, 'Üretilen Overpass Sorgusu:' gibi başlıkları atar.
349
+ """
350
+ if not raw_query:
351
+ return ""
352
+
353
+ q = raw_query.strip()
354
+
355
+ # Başlık metnini temizle
356
+ if "Üretilen Overpass Sorgusu:" in q:
357
+ q = q.split("Üretilen Overpass Sorgusu:", 1)[-1].strip()
358
+
359
+ # Markdown code fence'leri temizle
360
+ for token in ("```ql", "```QL", "```", "<code>", "</code>", "<pre>", "</pre>"):
361
+ q = q.replace(token, "")
362
+
363
+ return q.strip()
364
 
365
 
366
 
 
612
  Overpass QL sorgusunu çalıştırır ve sonucu Folium haritası olarak HTML döndürür.
613
  Shapely / GeoPandas KULLANMIYOR.
614
  """
615
+ query = normalize_overpass_query(query)
616
  if not query or not query.strip():
617
  return "<b>Overpass sorgusu boş.</b>"
618
 
 
623
  resp.raise_for_status()
624
  data = resp.json()
625
  except Exception as e:
626
+ # Overpass'ın text çıktısını da logla (çoğu zaman içinde 'line X: parse error' yazar)
627
+ try:
628
+ print("Overpass response text:", resp.text[:500])
629
+ except Exception:
630
+ pass
631
  print("Overpass isteği hatası:", e)
632
  return f"<b>Overpass isteği hatası:</b> {e}"
633
 
 
692
  folium.LayerControl().add_to(m)
693
  return m._repr_html_()
694
 
695
+
696
+
697
+
698
+
699
+
700
  def llm_overpass_to_map(natural_prompt: str, model_name: str):
701
  """
702
  1) Doğal dil prompt'tan LLM ile Overpass QL üretir
 
717
  return query, map_html
718
 
719
 
720
+
721
+
722
+
723
  # ==========================================
724
  # LLM SOHBET FONKSİYONU
725
  # ==========================================