@jackhua/mini-langchain
Version:
A lightweight TypeScript implementation of LangChain with cost optimization features
50 lines • 1.38 kB
TypeScript
/**
* Base text splitter interface
*/
import { Document } from '../core/types';
/**
* Text splitter interface
*/
export interface TextSplitterParams {
chunkSize: number;
chunkOverlap: number;
lengthFunction?: (text: string) => number;
keepSeparator?: boolean;
addStartIndex?: boolean;
}
/**
* Base text splitter
*/
export declare abstract class BaseTextSplitter {
protected chunkSize: number;
protected chunkOverlap: number;
protected lengthFunction: (text: string) => number;
protected keepSeparator: boolean;
protected addStartIndex: boolean;
constructor(params: TextSplitterParams);
/**
* Split text into chunks
*/
abstract splitText(text: string): Promise<string[]>;
/**
* Create documents from text chunks
*/
createDocuments(texts: string[], metadatas?: Record<string, any>[]): Promise<Document[]>;
/**
* Split documents
*/
splitDocuments(documents: Document[]): Promise<Document[]>;
/**
* Merge splits that fit within chunk size
*/
protected mergeSplits(splits: string[], separator: string): string[];
/**
* Join documents with separator
*/
protected joinDocs(docs: string[], separator: string): string;
/**
* Get start index of chunk in original text
*/
private getStartIndex;
}
//# sourceMappingURL=base.d.ts.map