Spaces:
Sleeping
Sleeping
import gradio as gr | |
import requests | |
import json | |
API_URL = "https://ia.nebuia.com/api/v1/integrator/extractor/from/excel" | |
API_KEY = "2J7NFWQ-236PGAM-2S9RD3C-2DG54CY" | |
API_SECRET = "a47abf97-866b-4154-b29c-346c9b02919e" | |
def send_excel_to_api(file_path, json_structure): | |
headers = { | |
'key': API_KEY, | |
'secret': API_SECRET | |
} | |
files = { | |
'file': open(file_path, 'rb') | |
} | |
data = { | |
'structure': json_structure | |
} | |
try: | |
response = requests.post(API_URL, headers=headers, files=files, data=data) | |
if response.status_code == 200: | |
result = response.json() | |
return json.dumps(result, indent=2) | |
else: | |
return f"Error: Received status code {response.status_code}\n{response.text}" | |
except requests.RequestException as e: | |
return f"Error sending request: {e}" | |
finally: | |
files['file'].close() | |
def gradio_interface(file, json_structure): | |
if file is None: | |
return "Please upload an Excel file." | |
return send_excel_to_api(file.name, json_structure) | |
# Create the Gradio interface | |
iface = gr.Interface( | |
fn=gradio_interface, | |
inputs=[ | |
gr.File(label="Upload Excel File"), | |
gr.Code(label="JSON Structure", language="json", lines=15, value='''{ | |
"activo a corto plazo": { | |
"valor inventarios - ejercicio 2023": "", | |
"valor inventarios - ejercicio 2022": "" | |
}, | |
"pasivo a corto plazo": { | |
"impuestos por pagar - ejercicio 2023": "", | |
"impuestos por pagar - ejercicio 2022": "" | |
}, | |
"perdida_del_ejercicio": "", | |
"rfc": "" | |
}''') | |
], | |
outputs=gr.Textbox(label="API Response", lines=10), | |
title="NebuIA Excel Structure Extractor", | |
description="Upload an Excel file and provide a JSON structure to send to the API." | |
) | |
# Launch the interface | |
iface.launch() |