Spaces:
Build error
Build error
| import gradio as gr | |
| from extraction import process_pdf | |
| from retriever import Retriever | |
| from generator import Generator | |
| from mote_router import compute_modality_weights | |
| from analytics import generate_dashboard | |
| from benchmark import run_benchmark | |
| from export_utils import export_json | |
| retriever = Retriever() | |
| generator = Generator() | |
| def ingest_pdf(file): | |
| chunks = process_pdf(file.name) | |
| retriever.build_index(chunks) | |
| return "β ESG Report Processed Successfully" | |
| def answer_query(query): | |
| weights = compute_modality_weights(query) | |
| results = retriever.search(query) | |
| answer = generator.generate(query, results) | |
| fig = generate_dashboard(weights) | |
| evidence = "\n\n".join(results) | |
| return answer, evidence, fig, weights | |
| def export_results(answer, evidence, weights): | |
| return export_json(answer, evidence, weights) | |
| with gr.Blocks(theme=gr.themes.Soft()) as demo: | |
| gr.Markdown("# ESGenius-AI π") | |
| gr.Markdown("Enterprise Multimodal ESG Intelligence Engine") | |
| with gr.Tab("Upload"): | |
| file_input = gr.File() | |
| upload_btn = gr.Button("Process ESG Report") | |
| upload_output = gr.Textbox() | |
| upload_btn.click(ingest_pdf, inputs=file_input, outputs=upload_output) | |
| with gr.Tab("Ask ESG Question"): | |
| query = gr.Textbox(label="Enter ESG Question") | |
| ask_btn = gr.Button("Generate Answer") | |
| answer = gr.Textbox(label="Answer") | |
| evidence = gr.Textbox(label="Retrieved Evidence") | |
| dashboard = gr.Plot() | |
| weights = gr.JSON() | |
| ask_btn.click( | |
| answer_query, | |
| inputs=query, | |
| outputs=[answer, evidence, dashboard, weights] | |
| ) | |
| export_btn = gr.Button("Download ESG JSON") | |
| export_btn.click( | |
| export_results, | |
| inputs=[answer, evidence, weights], | |
| outputs=gr.File() | |
| ) | |
| with gr.Tab("Benchmark"): | |
| bench_btn = gr.Button("Show Benchmark") | |
| bench_output = gr.JSON() | |
| bench_btn.click(run_benchmark, outputs=bench_output) | |
| demo.launch() | |