fix: mock
This commit is contained in:
@@ -43,6 +43,17 @@ def _ocr_available() -> bool:
|
||||
return bool(url and key and model)
|
||||
|
||||
|
||||
def _missing_ocr_fields() -> list[str]:
|
||||
missing: list[str] = []
|
||||
if not (settings.OCR_API_URL or settings.LLM_API_URL):
|
||||
missing.append("OCR_API_URL(or LLM_API_URL)")
|
||||
if not (settings.OCR_API_KEY or settings.LLM_API_KEY):
|
||||
missing.append("OCR_API_KEY(or LLM_API_KEY)")
|
||||
if not (settings.OCR_MODEL or settings.LLM_MODEL):
|
||||
missing.append("OCR_MODEL(or LLM_MODEL)")
|
||||
return missing
|
||||
|
||||
|
||||
def _llm_available() -> bool:
|
||||
url, key, model = _llm_config()
|
||||
return bool(url and key and model)
|
||||
@@ -54,6 +65,10 @@ async def classify_page(image_path: str) -> tuple[SourceApp, PageType]:
|
||||
"""Identify the source app and page type of a screenshot."""
|
||||
if _ocr_available():
|
||||
return await _classify_via_api(image_path)
|
||||
if not settings.OCR_ALLOW_MOCK_FALLBACK:
|
||||
missing = ", ".join(_missing_ocr_fields()) or "unknown"
|
||||
raise RuntimeError(f"OCR configuration missing: {missing}")
|
||||
logger.warning("OCR unavailable, falling back to mock classification for image: %s", image_path)
|
||||
return _classify_mock(image_path)
|
||||
|
||||
|
||||
@@ -63,6 +78,10 @@ async def extract_transaction_fields(
|
||||
"""Extract structured transaction fields from a screenshot."""
|
||||
if _ocr_available():
|
||||
return await _extract_via_api(image_path, source_app, page_type)
|
||||
if not settings.OCR_ALLOW_MOCK_FALLBACK:
|
||||
missing = ", ".join(_missing_ocr_fields()) or "unknown"
|
||||
raise RuntimeError(f"OCR configuration missing: {missing}")
|
||||
logger.warning("OCR unavailable, falling back to mock extraction for image: %s", image_path)
|
||||
mock_data = _extract_mock(image_path, source_app, page_type)
|
||||
return mock_data, json.dumps(mock_data, ensure_ascii=False)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user