Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| from dataclasses import dataclass | |
| import pytesseract | |
| from PIL import Image | |
| import io | |
| import re | |
| import cv2 | |
| import numpy as np | |
| import OCR | |
| import os | |
| from OCR import * | |
| if "messages" not in st.session_state: | |
| st.session_state.messages = [{"role": "Invoice Reader", "content": "Submit an invoice and I will read it."}] | |
| for message in st.session_state.messages: | |
| with st.chat_message(message["role"]): | |
| st.markdown(message["content"]) | |
| HF_TOKEN = os.environ.get("HF_TOKEN") | |
| USER = "user" | |
| ASSISTANT = "Invoice Reader" | |
| uploaded_file = st.file_uploader("Upload an invoice", type=["pdf", "png", "jpg", "jpeg"]) | |
| if uploaded_file is not None: | |
| file_content = uploaded_file.getvalue() | |
| st.session_state.messages.append({"role": USER, "content": f"Uploaded file: {uploaded_file.name}"}) | |
| with st.chat_message(USER): | |
| st.markdown(f"Uploaded file: {uploaded_file.name}") | |
| # Preprocess and extract text from image or PDF | |
| try: | |
| text = extract_text_from_image(file_content) | |
| # Extract specific details | |
| details = extract_invoice_details(text) | |
| # Create and display assistant's response to extracted text | |
| assistant_response = ( | |
| f"Extracted text from the uploaded file:\n\n{text}\n\n" | |
| f"**Extracted Details:**\n" | |
| f"**Invoice Number:** {details['Invoice Number']}\n" | |
| f"**Amount:** {details['Amount']}\n" | |
| f"**Invoice Date:** {details['Invoice Date']}\n" | |
| ) | |
| st.session_state.messages.append({"role": ASSISTANT, "content": assistant_response}) | |
| with st.chat_message(ASSISTANT): | |
| st.markdown(assistant_response) | |
| except Exception as e: | |
| error_message = f"An error occurred while processing the file: {e}" | |
| st.session_state.messages.append({"role": ASSISTANT, "content": error_message}) | |
| with st.chat_message(ASSISTANT): | |
| st.markdown(error_message) | |
| #streamlit run C:/Users/leahw/PycharmProjects/Int-to-Artificial-Intelligence-Final-Project/app.py |