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
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
| Posted By - | Karan Gupta |
| |
| Posted On - | Tuesday, August 25, 2026 |