Getting Started: Document Loaders
Document loaders make it easy to create Documents from a variety of sources. These documents can then be loaded onto Vector Stores to load documents from a source.
interface DocumentLoader {
load(): Promise<Document[]>;
loadAndSplit(textSplitter?: TextSplitter): Promise<Document[]>;
}
Document Loaders expose two methods, load
and loadAndSplit
. load
will load the documents from the source and return them as an array of Documents. loadAndSplit
will load the documents from the source, split them using the provided TextSplitter, and return them as an array of Documents.
All Document Loaders
🗃️ Examples
2 items
Advanced
If you want to implement your own Document Loader, you have a few options.
Subclassing BaseDocumentLoader
You can extend the BaseDocumentLoader
class directly. The BaseDocumentLoader
class provides a few convenience methods for loading documents from a variety of sources.
abstract class BaseDocumentLoader implements DocumentLoader {
abstract load(): Promise<Document[]>;
}
Subclassing TextLoader
If you want to load documents from a text file, you can extend the TextLoader
class. The TextLoader
class takes care of reading the file, so all you have to do is implement a parse method.
abstract class TextLoader extends BaseDocumentLoader {
abstract parse(raw: string): Promise<string[]>;
}
Subclassing BufferLoader
If you want to load documents from a binary file, you can extend the BufferLoader
class. The BufferLoader
class takes care of reading the file, so all you have to do is implement a parse method.
abstract class BufferLoader extends BaseDocumentLoader {
abstract parse(
raw: Buffer,
metadata: Document["metadata"]
): Promise<Document[]>;
}