ocr_typhoon / app.py
trapezius60's picture
Update app.py
f45bd2b verified
import os
from dotenv import load_dotenv
from huggingface_hub import InferenceClient
import gradio as gr
from PIL import Image
from io import BytesIO
load_dotenv()
# Initialize Hugging Face Inference client
hf_token = os.getenv("HF_API_TOKEN")
client = InferenceClient(token=hf_token)
def run_ocr(file):
if file is None:
return "No file uploaded"
# Read uploaded file
data = file.read()
# Call the Typhoon OCR model
result = client.text_generation(
model="scb10x/typhoon-ocr1.5-2b",
inputs=data
)
# Extract generated text
ocr_text = result[0]["generated_text"]
return ocr_text
# Build Gradio interface
with gr.Blocks() as demo:
gr.Markdown("## Typhoon OCR Web App")
file_input = gr.File(label="Upload PDF or Image", file_types=[".pdf", ".png", ".jpg", ".jpeg"])
output_text = gr.Textbox(label="OCR Result", lines=20)
run_btn = gr.Button("Run OCR")
run_btn.click(fn=run_ocr, inputs=file_input, outputs=output_text)
demo.launch()