Lightweight, stateless Python library for extracting structured data from product packaging labels using OCR and LLM-based parsing.
—
Features
Stateless & In-Memory: Processes raw image bytes—no disk I/O, ideal for serverless (FastAPI/Flask).
OCR + LLM Powered: Uses PaddleOCR for text extraction and Mistral AI (mistral-small-latest) for structured parsing.
Noise Filtering: Automatically cleans low-confidence OCR text and groups spatial blocks (rows/columns/proximity).
Flexible Auth: Pass api_key directly or via MISTRAL_API_KEY environment variable.
Structured JSON Output: Extracts brand, product name, ingredients, nutrition facts, allergens, and more.
—
Installation
pip install tejas-label-ocr
—
Usage
Front Label Processing
from label_ocr import process_front_label
with open("product_label.jpg", "rb") as f:
image_bytes = f.read()
result = process_front_label(image_bytes, api_key="your-mistral-api-key")
print(result)
# Output: {"brand": "Nestlé", "product_name": "Organic Oats", "claims": ["Gluten-Free", "Non-GMO"], ...}
Nutrition Label Processing
from label_ocr import process_nutrition_label
with open("nutrition_panel.jpg", "rb") as f:
image_bytes = f.read()
result = process_nutrition_label(image_bytes, api_key="your-mistral-api-key")
print(result)
# Output: {"serving_size": "30g", "nutrients": [{"name": "Calories", "value": 120, "unit": "kcal", "%RDA": 6}], ...}
— Notes —–
Requires a Mistral AI API key (sign up at Mistral AI).
For best results, use high-resolution images of labels with clear text.
Metadata
Release files for tejas-label-ocr 0.1.9.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tejas_label_ocr-0.1.9.3.tar.gz | 8.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tejas_label_ocr-0.1.9.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 16.7 kB
Release files / tejas_label_ocr-0.1.9.3.tar.gz
| Download URL | tejas_label_ocr-0.1.9.3.tar.gz |
|---|---|
| Size | 8.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c941adfa4648add379c13bc5d365229e5d2df895ead32a138efd9d575ada5d5f
|
|
BLAKE2b-256 checksum How to use checksums |
7893260eab2e87d96bb9f9d6d2cb884312d0066fb8868b84fe6cde6a735f38db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.9
|
Release files / tejas_label_ocr-0.1.9.3-py3-none-any.whl
| Download URL | tejas_label_ocr-0.1.9.3-py3-none-any.whl |
|---|---|
| Size | 8.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1baae72082e9ffd5efce3196e334889e5292bbc65a88c7c8b36e6f3dfb181ead
|
|
BLAKE2b-256 checksum How to use checksums |
eaf2455f9874cf9c7bf38b05fe554553ed9ee0e68ee5c077f3ef117fcd536211
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.9
|