Files
paperless-ngx/src/paperless_ai/prompts/context.py
T
b17a512539 Refactor: render paperless_ai prompts via Jinja2 templates instead of f-strings (#13698)
* Refactor: render paperless_ai prompts via Jinja2 templates instead of f-strings

* Apply suggestions from code review

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2026-08-18 18:32:21 +00:00

57 lines
1.6 KiB
Python

from dataclasses import dataclass
from typing import ClassVar
from paperless_ai.prompts.render import PromptContext
from paperless_ai.prompts.render import PromptName
@dataclass(frozen=True, slots=True)
class AssignedBlockPromptContext(PromptContext):
template_name: ClassVar[PromptName] = PromptName.ASSIGNED_BLOCK
tags: list[str]
document_type: str | None
correspondent: str | None
storage_path: str | None
@dataclass(frozen=True, slots=True)
class TaxonomyBlockPromptContext(PromptContext):
template_name: ClassVar[PromptName] = PromptName.TAXONOMY_BLOCK
assigned_block: str
candidate_payload_json: str
@dataclass(frozen=True, slots=True)
class ClassificationPromptContext(PromptContext):
template_name: ClassVar[PromptName] = PromptName.CLASSIFICATION
filename: str
content: str
taxonomy_block: str
has_candidates: bool
@dataclass(frozen=True, slots=True)
class RagContextPromptContext(PromptContext):
template_name: ClassVar[PromptName] = PromptName.CLASSIFICATION_RAG_CONTEXT
base_prompt: str
context: str
@dataclass(frozen=True, slots=True)
class LocalizationPromptContext(PromptContext):
template_name: ClassVar[PromptName] = PromptName.LOCALIZATION
language_name: str
suggestions_json: str
@dataclass(frozen=True, slots=True)
class ChatQaPromptContext(PromptContext):
template_name: ClassVar[PromptName] = PromptName.CHAT_QA
output_language: str | None
@dataclass(frozen=True, slots=True)
class ChatRefinePromptContext(PromptContext):
template_name: ClassVar[PromptName] = PromptName.CHAT_REFINE
output_language: str | None