UNPKG

@aituber-onair/core

Version:

Core library for AITuber OnAir providing voice synthesis and chat processing

92 lines (91 loc) 2.59 kB
import { ChatService } from '../services/chat/ChatService'; import { MemoryManager } from './MemoryManager'; import { Message, ChatType } from '../types'; import { EventEmitter } from './EventEmitter'; /** * ChatProcessor options */ export interface ChatProcessorOptions { /** System prompt */ systemPrompt: string; /** System prompt for vision mode */ visionSystemPrompt?: string; /** Vision prompt for describing the image */ visionPrompt?: string; /** Whether to summarize memory during processing */ useMemory: boolean; /** Memory note (instructions for AI) */ memoryNote?: string; } /** * Core logic for chat processing * Combines ChatService and MemoryManager to execute * AITuber's main processing (text chat, vision chat) */ export declare class ChatProcessor extends EventEmitter { private chatService; private memoryManager?; private options; private chatLog; private chatStartTime; private processingChat; /** * Constructor * @param chatService Chat service * @param options Configuration options * @param memoryManager Memory manager (optional) */ constructor(chatService: ChatService, options: ChatProcessorOptions, memoryManager?: MemoryManager); /** * Add message to chat log * @param message Message to add */ addToChatLog(message: Message): void; /** * Get chat log */ getChatLog(): Message[]; /** * Clear chat log */ clearChatLog(): void; /** * Set chat start time * @param time Timestamp */ setChatStartTime(time: number): void; /** * Get chat start time */ getChatStartTime(): number; /** * Get processing status */ isProcessing(): boolean; /** * Update options * @param newOptions New options to merge with existing ones */ updateOptions(newOptions: Partial<ChatProcessorOptions>): void; /** * Process text chat * @param text User input text * @param chatType Chat type */ processTextChat(text: string, chatType?: ChatType): Promise<void>; /** * Process vision chat * @param imageDataUrl Image data URL */ processVisionChat(imageDataUrl: string): Promise<void>; /** * Prepare messages to send to AI * Create an array of messages with system prompt and memory */ private prepareMessagesForAI; /** * Set chat log from external source * @param messages Message array to set as chat log */ setChatLog(messages: Message[]): void; }