Marik1337's picture
Add application file
6059138
raw
history blame contribute delete
991 Bytes
from __future__ import annotations
from dataclasses import dataclass
from pathlib import Path
@dataclass(frozen=True)
class PromptSet:
system_prompt: str
user_prompt: str
class PromptLoader:
def __init__(self, prompts_dir: Path | None = None) -> None:
default_dir = Path(__file__).resolve().parent.parent / "prompts"
self._prompts_dir = prompts_dir or default_dir
def load(self) -> PromptSet:
system_prompt = self._read_text("system_prompt.txt")
user_prompt = self._read_text("user_prompt.txt")
return PromptSet(system_prompt=system_prompt, user_prompt=user_prompt)
def _read_text(self, file_name: str) -> str:
path = self._prompts_dir / file_name
if not path.exists():
raise FileNotFoundError(f"Prompt file not found: {path}")
content = path.read_text(encoding="utf-8").strip()
if not content:
raise ValueError(f"Prompt file is empty: {path}")
return content