-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.py
More file actions
78 lines (47 loc) · 1.81 KB
/
Copy pathapp.py
File metadata and controls
78 lines (47 loc) · 1.81 KB
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
##Invoice Extractor
from dotenv import load_dotenv
# load all environment variables from .env file
load_dotenv()
import streamlit as st
import os
from PIL import Image
import google.generativeai as genai
## config api key
genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
### function to load Gemini Pro vision model and get response
def get_gemini_response(input,image,promot):
# Load the Gemini Pro vision model
gemini = genai.GenerativeModel("gemini-1.5-flash")
# Get the response from the model
response = gemini.generate_content([input,image[0],promot])
return response.text
def input_image_setup(uploaded_file):
if uploaded_file is not None:
#Read the file in bytes
bytes_data = uploaded_file.getvalue()
image_part=[
{
"mime_type": uploaded_file.type,
"data": bytes_data
}
]
return image_part
else:
raise FileNotFoundError("No File Uploaded")
##initalize your streamlit app
st.set_page_config(page_title="Invoice Extractor", page_icon=":moneybag:", layout="wide")
input=st.text_input("Input Promopt: ",key="input")
uploaded_file = st.file_uploader("Upload Invoice Image", type=["jpg", "png", "jpeg"])
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_promot="""" You are an expert in undersatnding invoices.
You will receive input image as invoice and you have to extract the information
from the invoice also answer question based on input image."""
if submit:
image_part=input_image_setup(uploaded_file)
response=get_gemini_response(input_promot,image_part,input)
st.subheader("The Response is ")
st.write(response)