This commit is contained in:
shamoon 2025-04-21 11:34:09 -07:00
parent 16d7d95517
commit 131ae28794
No known key found for this signature in database
2 changed files with 14 additions and 9 deletions

View File

@ -77,12 +77,6 @@ from rest_framework.viewsets import ViewSet
from documents import bulk_edit from documents import bulk_edit
from documents import index from documents import index
from documents.ai.llm_classifier import get_ai_document_classification
from documents.ai.matching import extract_unmatched_names
from documents.ai.matching import match_correspondents_by_name
from documents.ai.matching import match_document_types_by_name
from documents.ai.matching import match_storage_paths_by_name
from documents.ai.matching import match_tags_by_name
from documents.bulk_download import ArchiveOnlyStrategy from documents.bulk_download import ArchiveOnlyStrategy
from documents.bulk_download import OriginalAndArchiveStrategy from documents.bulk_download import OriginalAndArchiveStrategy
from documents.bulk_download import OriginalsOnlyStrategy from documents.bulk_download import OriginalsOnlyStrategy
@ -176,6 +170,12 @@ from documents.tasks import sanity_check
from documents.tasks import train_classifier from documents.tasks import train_classifier
from documents.templating.filepath import validate_filepath_template_and_render from documents.templating.filepath import validate_filepath_template_and_render
from paperless import version from paperless import version
from paperless.ai.ai_classifier import get_ai_document_classification
from paperless.ai.matching import extract_unmatched_names
from paperless.ai.matching import match_correspondents_by_name
from paperless.ai.matching import match_document_types_by_name
from paperless.ai.matching import match_storage_paths_by_name
from paperless.ai.matching import match_tags_by_name
from paperless.celery import app as celery_app from paperless.celery import app as celery_app
from paperless.config import GeneralConfig from paperless.config import GeneralConfig
from paperless.db import GnuPG from paperless.db import GnuPG

View File

@ -4,7 +4,7 @@ import logging
from documents.models import Document from documents.models import Document
from paperless.ai.client import run_llm_query from paperless.ai.client import run_llm_query
logger = logging.getLogger("paperless.ai.llm_classifier") logger = logging.getLogger("paperless.ai.ai_classifier")
def get_ai_document_classification(document: Document) -> dict: def get_ai_document_classification(document: Document) -> dict:
@ -50,14 +50,14 @@ def get_ai_document_classification(document: Document) -> dict:
try: try:
result = run_llm_query(prompt) result = run_llm_query(prompt)
suggestions = parse_llm_classification_response(result) suggestions = parse_ai_classification_response(result)
return suggestions or {} return suggestions or {}
except Exception: except Exception:
logger.exception("Error during LLM classification: %s", exc_info=True) logger.exception("Error during LLM classification: %s", exc_info=True)
return {} return {}
def parse_llm_classification_response(text: str) -> dict: def parse_ai_classification_response(text: str) -> dict:
""" """
Parses LLM output and ensures it conforms to expected schema. Parses LLM output and ensures it conforms to expected schema.
""" """
@ -77,4 +77,9 @@ def parse_llm_classification_response(text: str) -> dict:
} }
except json.JSONDecodeError: except json.JSONDecodeError:
# fallback: try to extract JSON manually? # fallback: try to extract JSON manually?
logger.exception(
"Failed to parse LLM classification response: %s",
text,
exc_info=True,
)
return {} return {}