feat: add maintenance receipt extraction pipeline with Gemini + regex (refs #150)

- New MaintenanceReceiptExtractor: Gemini-primary extraction with regex
  cross-validation for dates, amounts, and odometer readings
- New maintenance_receipt_validation.py: cross-validation patterns for
  structured field confidence adjustment
- New POST /extract/maintenance-receipt endpoint reusing
  ReceiptExtractionResponse model
- Per-field confidence scores (0.0-1.0) with Gemini base 0.85,
  boosted/reduced by regex agreement

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Eric Gullickson
2026-02-12 21:14:13 -06:00
parent 0e97128a31
commit 90401dc1ba
5 changed files with 713 additions and 0 deletions

View File

@@ -4,6 +4,10 @@ from app.patterns.currency_patterns import CurrencyPatternMatcher, currency_matc
from app.patterns.fuel_patterns import FuelPatternMatcher, fuel_matcher
from app.patterns.maintenance_patterns import MaintenancePatternMatcher, maintenance_matcher
from app.patterns.service_mapping import ServiceMapper, service_mapper
from app.patterns.maintenance_receipt_validation import (
MaintenanceReceiptValidator,
maintenance_receipt_validator,
)
__all__ = [
"DatePatternMatcher",
@@ -16,4 +20,6 @@ __all__ = [
"maintenance_matcher",
"ServiceMapper",
"service_mapper",
"MaintenanceReceiptValidator",
"maintenance_receipt_validator",
]