mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2026-08-20 09:43:29 +00:00
* 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>
57 lines
1.6 KiB
Python
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
|