UNPKG

@aituber-onair/core

Version:

Core library for AITuber OnAir providing voice synthesis and chat processing

116 lines (115 loc) 3.65 kB
import { ChatService, Message, ChatType, ChatResponseLength, ToolUseBlock, ToolResultBlock } from '@aituber-onair/chat'; import { MemoryManager } from './MemoryManager'; import { EventEmitter } from './EventEmitter'; type ToolCallback = (blocks: ToolUseBlock[]) => Promise<ToolResultBlock[]>; /** * 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; /** Maximum number of tool call iterations allowed (default: 6) */ maxHops?: number; /** Maximum tokens for chat responses (takes precedence over responseLength) */ maxTokens?: number; /** Response length preset for chat (used if maxTokens is not specified) */ responseLength?: ChatResponseLength; /** Maximum tokens for vision responses (takes precedence over visionResponseLength) */ visionMaxTokens?: number; /** Response length preset for vision (used if visionMaxTokens is not specified) */ visionResponseLength?: ChatResponseLength; } /** * 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; private toolCallback?; private readonly MAX_HOPS; /** * Constructor * @param chatService Chat service * @param options Configuration options * @param memoryManager Memory manager (optional) */ constructor(chatService: ChatService, options: ChatProcessorOptions, memoryManager?: MemoryManager, toolCallback?: ToolCallback); /** * 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; /** * Get max tokens for chat responses * @returns Maximum tokens for chat */ private getMaxTokensForChat; /** * Get max tokens for vision responses * @returns Maximum tokens for vision */ private getMaxTokensForVision; private runToolLoop; } export {};