memoer
Version:
Memory management system for LLMs
33 lines • 1.07 kB
JavaScript
import { MemoryManager } from "../base";
import { SlidingWindowStrategy } from "./strategies/sliding-window";
import { ConversationStrategy } from "./types";
export class ConversationManager extends MemoryManager {
constructor(config) {
const strategyType = config.strategy;
let strategy;
switch (strategyType) {
case ConversationStrategy.SLIDING_WINDOW: {
const windowSize = config.slidingWindowSize ?? 10;
strategy = new SlidingWindowStrategy({
windowSize
});
break;
}
}
super(strategy);
this.conversationHistory = [];
}
async getContext() {
if (this.memoryStrategy) {
return this.memoryStrategy.optimize(this.conversationHistory);
}
return this.conversationHistory;
}
async getFullContext() {
return this.conversationHistory;
}
async add(message) {
this.conversationHistory.push(message);
}
}
//# sourceMappingURL=manager.js.map