sterepando commited on
Commit
ea17727
·
verified ·
1 Parent(s): 1bd2be8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -3
app.py CHANGED
@@ -35,6 +35,8 @@ app = FastAPI(
35
 
36
  # --- 2. Эндпоинт API ---
37
 
 
 
38
  @app.post(
39
  "/api/ocr",
40
  summary="Запустить OCR по изображению",
@@ -52,12 +54,22 @@ async def run_ocr(file: UploadFile = File(..., description="Изображени
52
  contents = await file.read()
53
 
54
  # 2. Конвертация байтов в объект PIL Image
 
55
  image = Image.open(io.BytesIO(contents)).convert("RGB")
56
 
57
- # 3. Запуск пайплайна (САМЫЙ БЫСТРЫЙ ЭТАП)
58
- results = ocr_pipeline(image, generate_kwargs={"max_new_tokens": 1024})
 
 
 
 
 
 
 
 
 
59
 
60
- # 4. Извлечение текста
61
  if results and isinstance(results, list) and 'generated_text' in results[0]:
62
  decoded_text = results[0]['generated_text']
63
  return {"text": decoded_text}
 
35
 
36
  # --- 2. Эндпоинт API ---
37
 
38
+ # ... (остальной код)
39
+
40
  @app.post(
41
  "/api/ocr",
42
  summary="Запустить OCR по изображению",
 
54
  contents = await file.read()
55
 
56
  # 2. Конвертация байтов в объект PIL Image
57
+ # Важно: .convert("RGB") гарантирует 3 канала, что часто требуется для VLM.
58
  image = Image.open(io.BytesIO(contents)).convert("RGB")
59
 
60
+ # --- ИСПРАВЛЕНИЕ: ДОБАВЛЕНИЕ ПРОМПТА И ИЗМЕНЕНИЕ ФОРМАТА ВЫЗОВА ---
61
+
62
+ # Рекомендуемый промпт для OCR с этой моделью
63
+ # (взято из документации LightOnOCR)
64
+ ocr_prompt = "Perform Optical Character Recognition (OCR) on the image. Transcribe all the text."
65
+
66
+ # 3. Запуск пайплайна с использованием кортежа (изображение, промпт)
67
+ results = ocr_pipeline(
68
+ (image, ocr_prompt),
69
+ generate_kwargs={"max_new_tokens": 1024}
70
+ )
71
 
72
+ # 4. Извлечение текста (остается прежним)
73
  if results and isinstance(results, list) and 'generated_text' in results[0]:
74
  decoded_text = results[0]['generated_text']
75
  return {"text": decoded_text}