File size: 1,951 Bytes
090f783
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f2ac064
090f783
 
 
 
 
 
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
from dotenv import load_dotenv

load_dotenv() # load all the environment variables from .env


import streamlit as st
import os
from PIL import Image
import google.generativeai as genai

genai.configure(api_key=os.getenv('GOOGLE_API_KEY'))


# function to load gemini pro vision


def get_response(model, input, image, prompt):
    response = model.generate_content([input, image[0], prompt])

    return response.text


def input_image_details(uploaded_file):
    if uploaded_file is not None:
        # read the file into bytes
        bytes_data = uploaded_file.getvalue()

        image_parts = [
            {
                "mime_type": uploaded_file.type,
                "data": bytes_data
            }
        ]
        return image_parts
    else:
        raise FileNotFoundError("No file uploaded")



# Initialize streamlit
st.set_page_config(page_title='MultiLanguage Invoice Extractor')

st.header("Multilanguage Invoice Extractor")
input = st.text_input("Input Prompt: ", key='input')
uploaded_file = st.file_uploader('Choose an image of the invoice...', type=['jpg', 'jpeg', 'png'])

image = ''
if uploaded_file is not None:
    image = Image.open(uploaded_file)
    st.image(image, caption='Uploaded image', use_column_width=True)

submit = st.button("Tell me about the invoice")


input_prompt = """
You are a skilled professional specializing in the interpretation of invoices across various languages. Users will upload images of invoices, and you will provide accurate responses to any questions related specifically to invoices. Your task is to offer precise and insightful assistance in invoice interpretation, ensuring clarity, structured and accuracy in your responses.

"""
if submit:
    model = genai.GenerativeModel('gemini-2.5-flash')
    image_data = input_image_details(uploaded_file)
    response = get_response(model, input_prompt, image_data, input)
    st.subheader('The Resposne is')
    st.write(response)