feat: add VIN decode endpoint to OCR Python service (refs #224)

Add POST /decode/vin endpoint using Gemini 2.5 Flash for VIN string
decoding. Returns structured vehicle data (year, make, model, trim,
body/drive/fuel type, engine, transmission) with confidence score.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Eric Gullickson
2026-02-18 21:40:10 -06:00
parent 00aa2a5411
commit a75f7b5583
7 changed files with 403 additions and 5 deletions

View File

@@ -6,7 +6,7 @@ from typing import AsyncIterator
from fastapi import FastAPI
from app.config import settings
from app.routers import extract_router, jobs_router
from app.routers import decode_router, extract_router, jobs_router
from app.services import job_queue
# Configure logging
@@ -36,6 +36,7 @@ app = FastAPI(
)
# Include routers
app.include_router(decode_router)
app.include_router(extract_router)
app.include_router(jobs_router)
@@ -54,6 +55,7 @@ async def root() -> dict:
"version": "1.0.0",
"log_level": settings.log_level,
"endpoints": [
"POST /decode/vin - VIN string decode via Gemini",
"POST /extract - Synchronous OCR extraction",
"POST /extract/vin - VIN-specific extraction with validation",
"POST /extract/receipt - Receipt extraction (fuel, general)",