Sometimes the first question is not 'What model should I train?' but 'Can I operationalize the decision before I operationalize the training loop?'
In a document-processing project, I needed to classify images into architectural plans vs. site photos.
The traditional approach takes weeks: collect 5000+ labeled images, train a CNN (ResNet, EfficientNet), validate, tune hyperparameters, deploy endpoint, monitor drift.
Instead of starting with dataset creation and CNN training, I used a different pattern:
That changed the entire delivery timeline.
from pydantic import BaseModel
class PhotoPlanResponse(BaseModel):
is_plan: bool
description: str
# Structured prompting + schema-enforced output
# No manual reading, no regex over prose
# No "maybe this means yes"
# No ambiguity for downstream systemsHundreds, not millions
Documents look very different
Classification rules change monthly
No pre-existing training set
More than benchmark purity
Design insight: The key was not 'prompting' in the casual sense. It was structured prompting + schema-enforced output. That combination removes the fragile middle layer between model output and system behavior.