serpo / app.py
tx3bas's picture
Update app.py
394fb33 verified
from flask import Flask, request, jsonify
from flask_cors import CORS
import os
import requests
import gradio as gr
# Recuperar la clave API desde las variables de entorno
API_KEY = os.getenv('API_KEY')
def make_request(query):
url = f'https://us-east-1.serp.ing/api/v1/google/serp?q={query}&hl=en&gl=us&num=10&snapshot=off&thumbnail=on'
headers = {
'X-API-KEY': API_KEY,
'Content-Type': 'application/json'
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.json()
else:
return {"error": f"Failed to fetch data. Status code: {response.status_code}"}
# Interfaz de Gradio
def query_interface(query):
result = make_request(query)
return result
# Crear la interfaz de Gradio
iface = gr.Interface(
fn=query_interface,
inputs=gr.Textbox(label="Search Query"),
outputs="json",
title="API Query Interface",
description="Enter a search query to fetch data from the API."
)
app = Flask(__name__)
CORS(app) # Habilitar CORS para todas las rutas
@app.route('/api/search', methods=['GET'])
def api_search():
query = request.args.get('query')
if not query:
return jsonify({"error": "No query provided"}), 400
return jsonify(query_interface(query))
if __name__ == "__main__":
iface.launch(server_name="0.0.0.0", server_port=7860, debug=True, inline=False)
app.run(host="0.0.0.0", port=7861)