esgenius-ai / app.py
GirishaBuilds01's picture
Create app.py
20bcc01 verified
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()