Spaces:
Runtime error
Runtime error
| import os | |
| import torch | |
| from flask import Flask, render_template, request | |
| from transformers import AutoProcessor, AutoModelForVision2Seq | |
| from PIL import Image | |
| from dotenv import load_dotenv | |
| # โหลด token | |
| load_dotenv() | |
| token = os.getenv("HUGGINGFACE_TOKEN") | |
| if not token: | |
| raise ValueError("HUGGINGFACE_TOKEN is not set or .env file not loaded") | |
| # Flask setup | |
| app = Flask(__name__) | |
| UPLOAD_FOLDER = "static/uploads" | |
| app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER | |
| os.makedirs(UPLOAD_FOLDER, exist_ok=True) | |
| # โหลดโมเดลและ processor | |
| processor = AutoProcessor.from_pretrained("scb10x/typhoon-ocr-7b", token=token) | |
| model = AutoModelForVision2Seq.from_pretrained( | |
| "scb10x/typhoon-ocr-7b", | |
| torch_dtype=torch.float16, | |
| device_map="auto", | |
| token=token | |
| ) | |
| def index(): | |
| result_text = "" | |
| image_path = "" | |
| if request.method == 'POST': | |
| file = request.files['image'] | |
| if file: | |
| filepath = os.path.join(app.config['UPLOAD_FOLDER'], file.filename) | |
| file.save(filepath) | |
| image_path = filepath | |
| image = Image.open(filepath).convert("RGB") | |
| pixel_values = processor(images=image, return_tensors="pt").pixel_values.to(model.device) | |
| generated_ids = model.generate(pixel_values, max_new_tokens=256) | |
| result_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0] | |
| return render_template("index.html", result=result_text, image_path=image_path) | |
| if __name__ == '__main__': | |
| app.run(debug=True) | |