Spaces:
Runtime error
Runtime error
File size: 2,226 Bytes
bbf2928 ded1fc2 bbf2928 ded1fc2 bbf2928 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
import streamlit as st
import pandas as pd
from modal import Function
import os
import modal
# Initialize Modal with token
if 'MODAL_TOKEN' in os.environ:
modal.config.auth.token = os.environ['MODAL_TOKEN']
def main():
st.title("Financial Statement Analyzer")
# Check Modal token
if 'MODAL_TOKEN' not in os.environ:
st.error("Modal token not found. Please add MODAL_TOKEN to Space secrets.")
return
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() |