ExcelExtractor / app.py
xellDart13's picture
Create app.py
40fc766 verified
raw
history blame
1.88 kB
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()