santoshmds21 commited on
Commit
384600a
·
verified ·
1 Parent(s): 44cef15

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +60 -0
app.py ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from dotenv import load_dotenv
2
+ from dotenv import find_dotenv
3
+
4
+ load_dotenv(find_dotenv())#load all env variables
5
+
6
+ import streamlit as st
7
+ import os
8
+ from PIL import Image
9
+ import google.generativeai as genai
10
+
11
+ genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
12
+ model = genai.GenerativeModel("gemini-pro-vision")
13
+
14
+ def get_gemini_response(input,image,prompt):
15
+ response = model.generate_content([input, image[0],prompt])
16
+ return response.text
17
+
18
+ def input_image_details(uploaded_file):
19
+ if uploaded_file is not None:
20
+ bytes_data = uploaded_file.getvalue()
21
+
22
+
23
+ image_parts=[
24
+ {
25
+ "mime_type": uploaded_file.type,
26
+ "data":bytes_data
27
+ }
28
+ ]
29
+ return image_parts
30
+ else:
31
+ raise FileNotFoundError("No file uploaded")
32
+
33
+
34
+
35
+
36
+ st.set_page_config(page_title="Multilanguage Invoice Extractor")
37
+ st.header("Multilanguage Invoice Extractor")
38
+ input = st.text_input("Input Prompt:", key="input")
39
+ uploaded_file = st.file_uploader("Choose an image of the invoice...", type=["jpg","jpeg"])
40
+ image=""
41
+
42
+
43
+ if uploaded_file is not None:
44
+ image=Image.open(uploaded_file)
45
+ st.image(image,caption="Uploaded Image", use_column_width=True)
46
+
47
+ submit=st.button("Tell me about the invoice")
48
+
49
+ input_prompt="""
50
+ You are an expert in understanding invoices. We will upload an image as an invoice
51
+ and you will have to answer any questions based on the uploaded invoice image
52
+ """
53
+
54
+ #If submit button is clicked
55
+
56
+ if submit:
57
+ image_data = input_image_details(uploaded_file)
58
+ response = get_gemini_response(input_prompt,image_data,input)
59
+ st.subheader("The response is")
60
+ st.write(response)