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() |