File size: 1,446 Bytes
394fb33 7b9a129 910b9c8 6b54bba 7b9a129 910b9c8 4289b02 7b9a129 6b54bba 910b9c8 7b9a129 910b9c8 7b9a129 910b9c8 6b54bba 910b9c8 6b54bba 394fb33 6b54bba 394fb33 4289b02 6b54bba |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
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)
|