Spaces:
Paused
Paused
Update app.py
Browse files
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 |
-
#
|
| 58 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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}
|