output / src /app.py
jayanth-2005's picture
Update src/app.py
34c602a verified
Raw History Blame Contribute Delete
1.01 kB
import streamlit as st
import pandas as pd
import numpy as np
from PIL import Image
from ocr_engine import extract_text
from classifier import classify_invoice
from extractor import extract_fields
from formatter import format_for_ca
from validator import validate
st.set_page_config(page_title="Invoice AI")
st.title("AI Invoice Automation for CA Firms")
uploaded_file = st.file_uploader("Upload Invoice", type=["jpg","png","jpeg"])
if uploaded_file:
image = Image.open(uploaded_file).convert("RGB")
image_np = np.array(image)
with st.spinner("Running OCR..."):
text = extract_text(image_np)
invoice_type = classify_invoice(text)
extracted = extract_fields(text)
formatted = format_for_ca(extracted, invoice_type)
validated = validate(formatted)
df = pd.DataFrame([validated])
st.dataframe(df)
df.to_excel("output.xlsx", index=False)
with open("output.xlsx", "rb") as f:
st.download_button("Download Excel", f, "invoice.xlsx")