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)