extraer-url / app.py
Francogv's picture
Update app.py
c41cc8c verified
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)