Articles → LANGCHAIN → How To Read Invoice Data In Multi-Language Using Langchain
How To Read Invoice Data In Multi-Language Using Langchain
Scenario
Sample Challan
Requirements.Txt File
streamlitgoogle-generativeaipython-dotenvlangchainPyPDF2chromadb
Code
import streamlit as stimport osfrom PIL import Imageimport google.generativeai as genai# Configure Gemini APIgenai.configure(api_key="your_key")# Function to load Gemini Pro Visionmodel = 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.textdef 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 configurationst.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 = Noneif 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 toanswer any questions based on the uploaded invoice image."""# If submit button is clickedif 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 |