Spaces:
Runtime error
Runtime error
| ## Invoice Extractor.. | |
| from dotenv import load_dotenv | |
| load_dotenv() ## load all environment variables into the project | |
| import streamlit as st | |
| import os | |
| from PIL import Image | |
| import google.generativeai as genai | |
| ## Configuring 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, prompt): | |
| # Loading the Gemini Model | |
| model = genai.GenerativeModel('gemini-pro-vision') | |
| response = model.generate_content([input, image[0], prompt]) | |
| return response.text | |
| def input_image_setup(uploaded_file): | |
| if uploaded_file is not None: | |
| # read the file into 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...") | |
| # Initialize our streamlit app | |
| st.set_page_config(page_title= "Invoice Extractor") | |
| st.markdown("<h1 style='font-size:24px;'>Query with LangChain & GenAI: Image file(Jpeg,Jpg,Png)</h1>", unsafe_allow_html=True) | |
| # st.header("Gemini Application") | |
| input = st.text_input("Input Prompt: ", key = "input") | |
| uploaded_file= st.file_uploader("Choose an Image....", 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 an expert in understanding invoices. | |
| you will receive input images as invoices and you will | |
| have to answer questions based on the input image. | |
| """ | |
| ## If Submit button is clicked... | |
| if submit: | |
| image_data = input_image_setup(uploaded_file) | |
| response = get_gemini_response(input_prompt, image_data, input) | |
| st.subheader("The Response is :") | |
| st.write(response) |