Articles → LANGCHAIN → How To Read Invoice Data In Multi-Language Using Langchain

How To Read Invoice Data In Multi-Language Using Langchain






Scenario





Sample Receipt




Picture showing the sample receipt



Requirements.Txt File


streamlit
google-generativeai
python-dotenv
langchain
PyPDF2
chromadb



Code


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

# Configure Gemini API
genai.configure(api_key="your_key")

# Function to load Gemini Pro Vision
model = genai.GenerativeModel("gemini-3.6-flash")


def get_gemini_response(input_text, image, prompt):
    response = model.generate_content([input_text, 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")


# Streamlit page configuration
st.set_page_config(page_title="Multilanguage Invoice Extractor")

st.header("Gemini Application")

input_text = st.text_input(
    "Input Prompt:",
    key="input"
)

uploaded_file = st.file_uploader(
    "Choose an image of invoice...",
    type=["jpg", "jpeg", "png"]
)

image = None

if uploaded_file is not None:
    image = Image.open(uploaded_file)

    st.image(
        image,
        caption="Uploaded Image.",
        use_container_width=True
    )


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


input_prompt = """
You are an expert in understanding invoices.
We will upload an image as an invoice and you will have to
answer any questions based on the uploaded invoice image.
"""


# If submit button is clicked
if submit:
    image_data = input_image_details(uploaded_file)

    response = get_gemini_response(
        input_prompt,
        image_data,
        input_text
    )

    st.subheader("The Response is")
    st.write(response)



Output




Picture showing the user interface of the application when page is loaded for the first time




Picture showing the user interface when receipt is selected using the file upload control




Picture showing the response from llm





Posted By  -  Karan Gupta
 
Posted On  -  Tuesday, August 25, 2026

Query/Feedback


Your Email Id
 
Subject
 
Query/FeedbackCharacters remaining 250