codekingpro/portable-devtools
114k
1from pathlib import Path2from typing import List, Union3 4from langchain_core.documents import Document5 6from langchain_community.document_loaders.base import BaseLoader7 8 9class RoamLoader(BaseLoader):10 """Load `Roam` files from a directory."""11 12 def __init__(self, path: Union[str, Path]):13 """Initialize with a path."""14 self.file_path = path15 16 def load(self) -> List[Document]:17 """Load documents."""18 ps = list(Path(self.file_path).glob("**/*.md"))19 docs = []20 for p in ps:21 with open(p) as f:22 text = f.read()23 metadata = {"source": str(p)}24 docs.append(Document(page_content=text, metadata=metadata))25 return docs26 