import requests from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() # Modelo de datos para la solicitud POST class ConsultaRequest(BaseModel): consulta: str # --- Configuración de Google CSE --- API_KEY = "AIzaSyAej8rDfcGTBKos8UtOSJ8KYyfwK9QLa1k" CX = "d453e209e2d3042bd" def busqueda_google(consulta: str): """ Busca en Google CSE y devuelve los dos primeros resultados. """ try: url = "https://www.googleapis.com/customsearch/v1" params = { "q": consulta, "key": API_KEY, "cx": CX, "hl": "es" } response = requests.get(url, params=params) data = response.json() if "items" not in data: return None items = data["items"][:2] resultados = { f"resultado_{i+1}": { "texto": it.get("title"), "url": it.get("link") } for i, it in enumerate(items) } return resultados if resultados else None except Exception as e: print(f"Error en la búsqueda de Google CSE: {e}") return None @app.post("/leer") async def buscar(request_body: ConsultaRequest): """ Endpoint principal para la búsqueda. """ consulta = request_body.consulta if not consulta: return {"error": "Falta la consulta"}, 400 print(f"Consulta recibida: {consulta}") resultado = busqueda_google(consulta) if resultado: return { "tipo": "google_web", "resultados": resultado } return {"error": "No se encontraron resultados"}, 404 # Para Hugging Face Spaces if __name__ == "__main__": uvicorn.run(app, host="0.0.0.0", port=7860)