import gradio as gr import json from transformers import pipeline # Cargar el archivo GeoJSON una sola vez with open("cuba.geojson", encoding="utf-8") as f: geojson = json.load(f) # Convertir a lista de calles con coordenadas calles = [] for feature in geojson["features"]: nombre = feature["properties"].get("name", "") coords = feature["geometry"]["coordinates"] if nombre and coords and isinstance(coords, list) and len(coords) == 2: lon, lat = coords[0], coords[1] calles.append(f"{nombre} → [{lon}, {lat}]") # Preparar el modelo LLM modelo = pipeline("text2text-generation", model="declare-lab/flan-alpaca-gpt4-xl") # Función de consulta def buscar_coordenadas(direccion): lista = "\n".join(calles[:300]) prompt = f"Tengo esta dirección: '{direccion}'. Aquí hay calles en La Habana con coordenadas:\n{lista}\n" \ f"¿Cuál es la intersección más cercana o relevante para esa dirección? Devuélveme solo las coordenadas en formato [lon, lat]." respuesta = modelo(prompt, max_new_tokens=100)[0]["generated_text"] return respuesta.strip() # Interfaz Gradio gr.Interface(fn=buscar_coordenadas, inputs="text", outputs="text", title="Geocodificador Cubano").launch()