Spaces:
Sleeping
Sleeping
from dotenv import load_dotenv | |
load_dotenv() | |
import streamlit as st | |
import os | |
import google.generativeai as genai | |
from PIL import Image | |
genai.configure(api_key=os.getenv("GOOGLE_API_KEY")) | |
# load gemini model | |
model=genai.GenerativeModel("gemini-1.5-flash") | |
def get_gemini_response(input,image,prompt): | |
response=model.generate_content([input,image[0],prompt]) | |
return response.text | |
def input_image_setup(uploaded_img): | |
if uploaded_img is not None: | |
bytes_data = uploaded_img.getvalue() | |
image_parts=[ | |
{ | |
"mime_type": uploaded_img.type, | |
"data": bytes_data | |
} | |
] | |
return image_parts | |
else: | |
raise FileNotFoundError("Image not found") | |
st.set_page_config(page_title="Invoice extractor", page_icon="๐ฎ") | |
st.title("Invoice Extractor using LLM") | |
st.write("Upload your invoice and we will give you all the information we can based on your query") | |
input = st.text_input("Ask a question", key="input") | |
uploaded_img = st.file_uploader("Upload an image", type=["jpg", "jpeg", "png"]) | |
image="" | |
if uploaded_img is not None: | |
image = Image.open(uploaded_img) | |
st.image(image, caption="Uploaded Image.", use_column_width=True) | |
submit=st.button("Submit") | |
input_prompt=""" | |
You are expert in understanding invoices. We will show you an invoice and you have to answer the following questions based on the invoice: | |
""" | |
if submit: | |
image_data=input_image_setup(uploaded_img) | |
response=get_gemini_response(input_prompt,image_data,input) | |
st.subheader("Response:") | |
st.write(response) |