Download handler.py from PrimWong/PrimWong-layout_qa_hparam_tuning: direct link, hf CLI and curl.
- Browser
- Download file 1.8 kB
-
https://huggingface.co/spaces/PrimWong/PrimWong-layout_qa_hparam_tuning/resolve/refs%2Fpr%2F1/handler.py
- Command line
-
hf download hf://spaces/PrimWong/PrimWong-layout_qa_hparam_tuning@refs/pr/1/handler.py
-
curl -L -o handler.py https://huggingface.co/spaces/PrimWong/PrimWong-layout_qa_hparam_tuning/resolve/refs%2Fpr%2F1/handler.py
1.8 kB
| from typing import Dict, Any | |
| from transformers import pipeline | |
| import holidays | |
| import PIL.Image | |
| import io | |
| import pytesseract | |
| class PreTrainedPipeline(): | |
| def __init__(self, model_path="PrimWong/layout_qa_hparam_tuning"): | |
| # Initializing the document-question-answering pipeline with the specified model | |
| self.pipeline = pipeline("document-question-answering", model=model_path) | |
| self.holidays = holidays.US() | |
| def __call__(self, data: Dict[str, Any]) -> str: | |
| """ | |
| Process input data for document question answering with optional holiday checking. | |
| Args: | |
| data (Dict[str, Any]): Input data containing an 'inputs' field with 'image' and 'question', | |
| and optionally a 'date' field. | |
| Returns: | |
| str: The answer to the question or a holiday message if applicable. | |
| """ | |
| inputs = data.get('inputs', {}) | |
| date = data.get("date") | |
| # Check if date is provided and if it's a holiday | |
| if date and date in self.holidays: | |
| return "Today is a holiday!" | |
| # Process the image and question for document question answering | |
| image_path = inputs.get("image") | |
| question = inputs.get("question") | |
| # Load and process an image | |
| image = PIL.Image.open(image_path) | |
| image_text = pytesseract.image_to_string(image) # Use OCR to extract text | |
| # Run prediction (Note: this now uses the extracted text, not the image directly) | |
| prediction = self.pipeline(question=question, context=image_text) | |
| return prediction["answer"] # Adjust based on actual output format of the model | |
| # Note: This script assumes the use of pytesseract for OCR to process images. Ensure pytesseract is configured properly. | |