Spaces:
Runtime error
Runtime error
import streamlit as st | |
import pandas as pd | |
from modal import Function | |
def main(): | |
st.title("Financial Statement Analyzer") | |
uploaded_files = st.file_uploader( | |
"Choose PDF files", | |
type="pdf", | |
accept_multiple_files=True, | |
help="Upload Consolidated Financial Statements in Russian" | |
) | |
if uploaded_files: | |
for file in uploaded_files: | |
with st.expander(f"Processing {file.name}", expanded=True): | |
progress_bar = st.progress(0) | |
status = st.empty() | |
try: | |
status.info("Starting PDF processing...") | |
progress_bar.progress(25) | |
# Process PDF through Modal backend | |
pdf_processor = Function.lookup("stem", "process_pdf") | |
financial_data = pdf_processor.remote(file) | |
progress_bar.progress(75) | |
if financial_data: | |
# Display results in tabs | |
tab1, tab2 = st.tabs(["Financial Ratios", "Raw Data"]) | |
with tab1: | |
st.subheader("Key Financial Ratios") | |
st.dataframe(pd.DataFrame([financial_data])) | |
with tab2: | |
st.subheader("Extracted Financial Data") | |
st.json(financial_data) | |
status.success("Processing complete!") | |
else: | |
status.error("Failed to extract financial data") | |
except Exception as e: | |
status.error(f"Error: {str(e)}") | |
progress_bar.empty() | |
if __name__ == "__main__": | |
main() |