Spaces:
Build error
Build error
import streamlit as st | |
from utils.process_files import process_uploaded_files | |
from utils.document_display import display_based_on_card | |
import os | |
import pandas as pd | |
import json | |
from llm.document_analyzer import analyze_files | |
from PIL import Image | |
from utils import setup_logger | |
logger = setup_logger(__name__) | |
st.set_page_config(layout="wide") | |
if len(st.session_state) == 0: | |
if 'tab_ocr' not in st.session_state: | |
# if st.session_state['tab_ocr']['file_groups'] is None: | |
st.session_state = { | |
'tab_ocr': { | |
'file_groups': None, | |
'values_raw': None, | |
'values_display': None | |
} | |
} | |
logger.info(f"st.session_state: {st.session_state}") | |
st.title("ID Analyser") | |
uploaded_files = st.file_uploader("Upload Images, PDFs", accept_multiple_files=True, type=[ | |
"png", "jpg", "jpeg", "pdf", "zip"]) | |
if uploaded_files: | |
st.session_state = { | |
'tab_ocr': { | |
'file_groups': None, | |
'values_raw': None, | |
'values_display': None | |
} | |
} | |
file_paths, file_groups, temp_dir = process_uploaded_files( | |
uploaded_files) # Remove file paths later | |
if st.session_state['tab_ocr']['file_groups'] is None: | |
st.session_state['tab_ocr']['file_groups'] = file_groups | |
analyze_clicked = st.button("Analyze") | |
if analyze_clicked: | |
st.session_state['tab_ocr']['values_raw'] = None | |
st.session_state['tab_ocr']['values_display'] = None | |
if analyze_clicked or st.session_state['tab_ocr']['values_display']: | |
# if st.button("Analyze") or st.session_state['tab_ocr']['values_display'] is not None: | |
if st.session_state['tab_ocr']['values_raw'] is None: | |
analysis_results_groups, json_output_path = analyze_files( | |
file_groups=st.session_state['tab_ocr']['file_groups'], | |
temp_dir=temp_dir) | |
st.session_state['tab_ocr']['values_raw'] = analysis_results_groups | |
if st.session_state['tab_ocr']['values_display'] is None: | |
st.session_state['tab_ocr']['values_display'] = {} | |
for original_file, extracted_files in st.session_state['tab_ocr']['file_groups'].items(): | |
analysis_results_for_id = display_based_on_card( | |
original_file=original_file, | |
analysis_results_for_original_file=st.session_state[ | |
'tab_ocr']['values_raw'][original_file], | |
extracted_files=extracted_files) | |
st.download_button( | |
label="Download Analysis JSON", | |
data=json.dumps( | |
st.session_state['tab_ocr']['values_raw'], indent=4), | |
file_name="analysis_results.json", | |
mime="application/json" | |
) | |