Spaces:
Runtime error
Runtime error
File size: 2,577 Bytes
bbf2928 ded1fc2 ca609d2 c228a82 ded1fc2 c228a82 ca609d2 e4c8347 cba456b 37fc8c9 c228a82 2c5fe24 ca609d2 a4161cb c228a82 ca609d2 c228a82 2c5fe24 c228a82 2c5fe24 c228a82 bbf2928 a6966e2 c228a82 e4c8347 ded1fc2 a6966e2 bbf2928 c228a82 bbf2928 9f7c458 2c5fe24 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 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
import streamlit as st
import pandas as pd
import os
import modal
from modal import Function
def init_modal():
"""Initialize Modal with direct token"""
try:
token = os.environ.get('MODAL_TOKEN')
if not token:
st.error("MODAL_TOKEN not found in environment variables")
return False
# Set Modal token directly
modal.config.token = token
st.success("Modal token set successfully")
return True
except Exception as e:
st.error(f"Failed to initialize Modal: {str(e)}")
st.exception(e)
return False
def main():
st.title("Financial Statement Analyzer")
# Initialize Modal
if not init_modal():
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:
st.error("Error during processing")
st.exception(e)
progress_bar.empty()
if __name__ == "__main__":
main() |