@jackhua/mini-langchain
Version:
A lightweight TypeScript implementation of LangChain with cost optimization features
106 lines • 3.54 kB
TypeScript
import { ChatMemory as IChatMemory, Message } from '../core/types';
/**
* Base class for all memory implementations
*/
export declare abstract class BaseMemory {
abstract get memoryVariables(): string[];
abstract loadMemoryVariables(values: Record<string, any>): Record<string, any>;
abstract saveContext(inputs: Record<string, any>, outputs: Record<string, any>): void;
abstract clear(): void;
}
/**
* Simple chat memory that stores conversation history
*/
export declare class ChatMessageHistory implements IChatMemory {
chatHistory: Message[];
constructor(messages?: Message[]);
addUserMessage(message: string): void;
addAIMessage(message: string): void;
addSystemMessage(message: string): void;
addMessage(message: Message): void;
clear(): void;
getMessages(): Message[];
}
/**
* Buffer memory that maintains a conversation buffer
*/
export declare class ConversationBufferMemory extends BaseMemory {
protected chatMemory: ChatMessageHistory;
protected returnMessages: boolean;
protected inputKey: string;
protected outputKey: string;
protected memoryKey: string;
constructor(config?: {
chatMemory?: ChatMessageHistory;
returnMessages?: boolean;
inputKey?: string;
outputKey?: string;
memoryKey?: string;
});
get memoryVariables(): string[];
loadMemoryVariables(_values: Record<string, any>): Record<string, any>;
saveContext(inputs: Record<string, any>, outputs: Record<string, any>): void;
clear(): void;
private getBuffer;
}
/**
* Window buffer memory that only keeps the last k interactions
*/
export declare class ConversationBufferWindowMemory extends ConversationBufferMemory {
private k;
constructor(config?: {
k?: number;
chatMemory?: ChatMessageHistory;
returnMessages?: boolean;
inputKey?: string;
outputKey?: string;
memoryKey?: string;
});
loadMemoryVariables(values: Record<string, any>): Record<string, any>;
private formatMessages;
}
/**
* Summary memory that maintains a running summary of the conversation
*/
export declare class ConversationSummaryMemory extends BaseMemory {
private chatMemory;
private summaryMessage;
private llm;
private prompt;
private memoryKey;
constructor(config: {
llm: any;
chatMemory?: ChatMessageHistory;
summaryMessage?: string;
prompt?: any;
memoryKey?: string;
});
get memoryVariables(): string[];
loadMemoryVariables(_values: Record<string, any>): Record<string, any>;
saveContext(inputs: Record<string, any>, outputs: Record<string, any>): Promise<void>;
clear(): void;
private formatMessages;
}
/**
* Entity memory that tracks entities mentioned in the conversation
*/
export declare class EntityMemory extends BaseMemory {
private entities;
private llm;
private entityExtractionPrompt;
private entitySummarizationPrompt;
private memoryKey;
constructor(config: {
llm: any;
entityExtractionPrompt?: string;
entitySummarizationPrompt?: string;
memoryKey?: string;
});
get memoryVariables(): string[];
loadMemoryVariables(_values: Record<string, any>): Record<string, any>;
saveContext(inputs: Record<string, any>, outputs: Record<string, any>): Promise<void>;
clear(): void;
getEntity(entity: string): string | undefined;
getAllEntities(): Map<string, string>;
}
//# sourceMappingURL=memory.d.ts.map