UNPKG

@aituber-onair/core

Version:

Core library for AITuber OnAir providing voice synthesis and chat processing

100 lines (99 loc) 3.06 kB
import { Message } from '@aituber-onair/chat'; import { MemoryRecord, MemoryType, MemoryStorage } from '../types'; import { EventEmitter } from './EventEmitter'; /** * Memory manager settings */ export interface MemoryOptions { /** Enable summarization */ enableSummarization: boolean; /** Short-term memory duration (milliseconds) */ shortTermDuration: number; /** Mid-term memory duration (milliseconds) */ midTermDuration: number; /** Long-term memory duration (milliseconds) */ longTermDuration: number; /** Threshold for the number of messages before summarization */ maxMessagesBeforeSummarization: number; /** Maximum number of characters in summary */ maxSummaryLength?: number; /** Memory retention period (milliseconds) */ memoryRetentionPeriod?: number; /** Custom summary prompt template */ summaryPromptTemplate?: string; } /** * Summarizer interface */ export interface Summarizer { /** * Summarize message array * @param messages Array of messages to summarize * @param maxLength Maximum number of characters * @param customPrompt Custom prompt template for summarization (optional) */ summarize(messages: Message[], maxLength?: number, customPrompt?: string): Promise<string>; } /** * Manager for managing chat history and summarization */ export declare class MemoryManager extends EventEmitter { private options; private summarizer?; private memories; private storage?; /** * Constructor * @param options Settings options * @param summarizer Summarizer implementation (if omitted, summarization is disabled) * @param storage Storage implementation for persistence (optional) */ constructor(options: MemoryOptions, summarizer?: Summarizer, storage?: MemoryStorage); /** * Load memories from storage */ private loadFromStorage; /** * Save memories to storage */ private saveToStorage; /** * Import memory records (used for restoring from external storage) * @param records Memory records to import */ importMemoryRecords(records: MemoryRecord[]): void; /** * Summarize chat log and save as memory * @param chatLog Chat log * @param chatStartTime Chat start time */ createMemoryIfNeeded(chatLog: Message[], chatStartTime: number): Promise<void>; /** * Create memory of specified type * @param type Memory type * @param chatLog Chat log * @param timestamp Timestamp */ private createMemory; /** * Get all memories */ getAllMemories(): MemoryRecord[]; /** * Get memory of specified type * @param type Memory type */ getMemoryByType(type: MemoryType): MemoryRecord | undefined; /** * Generate memory text for AI prompt */ getMemoryForPrompt(): string; /** * Clean up old memories */ cleanupOldMemories(): Promise<void>; /** * Clear all memories */ clearAllMemories(): Promise<void>; }