from pathlib import Path from api_client import APIClientProtocol _ALLOWED_EXTENSIONS = {".pdf", ".txt"} class DocumentService: def __init__(self, api_client: APIClientProtocol): self._api = api_client async def ingest(self, file_path: str) -> dict: path = Path(file_path) if not path.is_file(): raise ValueError(f"파일을 찾을 수 없습니다: {file_path}") if path.suffix.lower() not in _ALLOWED_EXTENSIONS: raise ValueError(f"지원하지 않는 파일 형식입니다: {path.suffix} (허용: pdf, txt)") return await self._api.ingest(file_path) async def list_documents(self) -> list[str]: return await self._api.list_documents() async def delete_document(self, source: str) -> None: await self._api.delete_document(source)