From 4235875f788e4b6ae06454158be0652e610f647b Mon Sep 17 00:00:00 2001 From: Siddharth Kumar Sah Date: Sun, 12 Apr 2026 18:34:47 +0800 Subject: [PATCH] feat(ocr): update TypeScript bridge for quality tiers --- packages/ai/src/ocr.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/ai/src/ocr.ts b/packages/ai/src/ocr.ts index 3bf8f1f9..be9c938a 100644 --- a/packages/ai/src/ocr.ts +++ b/packages/ai/src/ocr.ts @@ -2,14 +2,18 @@ import { writeFile } from "node:fs/promises"; import { join } from "node:path"; import { type ProgressCallback, runPythonWithProgress } from "./bridge.js"; +export type OcrQuality = "fast" | "balanced" | "best"; + export interface OcrOptions { - engine?: "tesseract" | "paddleocr"; + quality?: OcrQuality; language?: string; + enhance?: boolean; + /** @deprecated Use quality instead. Kept for backward compat. */ + engine?: "tesseract" | "paddleocr"; } export interface OcrResult { text: string; - engine: string; } export async function extractText( @@ -23,6 +27,7 @@ export async function extractText( await writeFile(inputPath, inputBuffer); const { stdout } = await runPythonWithProgress("ocr.py", [inputPath, JSON.stringify(options)], { onProgress, + timeout: 600_000, // 10 min timeout for VLM on CPU }); const result = JSON.parse(stdout); @@ -32,6 +37,5 @@ export async function extractText( return { text: result.text, - engine: result.engine, }; }