import { DyNTS_AI_LLM_ServiceBase } from './ai-llm.service-base'; import { DyFM_AI_Message, DyFM_AI_CallSettings } from '@futdevpro/fsm-dynamo/ai'; import { DyFM_AI_ConversationBase_Input, DyFM_AI_ConversationSelect_Input, DyFM_AI_ConversationGenericSelect_Input, DyFM_AI_ConversationMultiSelect_Input, DyFM_AI_ConversationGenericMultiSelect_Input, DyFM_AI_ConversationJSONKeysDescription_Input, DyFM_AI_ConversationJSONExactKeys_Input, } from '../_models/ai-input-interfaces'; import { DyFM_getLocalStackLocation, DyFM_Log } from '@futdevpro/fsm-dynamo'; /** * Abstract base class for LLM Chat services * Extends LLM service with conversation management capabilities */ export abstract class DyNTS_AI_LLMChat_ServiceBase< T_AISettings extends DyFM_AI_CallSettings = DyFM_AI_CallSettings > extends DyNTS_AI_LLM_ServiceBase { // History management /** * Add a message to the conversation history */ /* abstract addMessageToHistory(message: DyFM_AI_Message, issuer: string): void; */ /** * Clear the conversation history for an issuer */ /* abstract clearHistory(issuer: string): void; */ /** * Get the conversation history for an issuer */ /* abstract getHistory(issuer: string): DyFM_AI_Message[]; */ // Conversation methods (from OAI_LLMChat_ServiceBase) abstract requestSimpleMessageInConversation(set: DyFM_AI_ConversationBase_Input): Promise; abstract requestYesNoInConversation(set: DyFM_AI_ConversationBase_Input): Promise; abstract requestPercentageInConversation(set: DyFM_AI_ConversationBase_Input): Promise; /* abstract selectQuestionInConversation(set: DyFM_AI_ConversationSelect_Input): Promise; */ abstract requestSelectInConversation( set: DyFM_AI_ConversationGenericSelect_Input ): Promise; /* abstract multipleSelectQuestionInConversationWithOptions( set: DyFM_AI_ConversationMultiSelect_Input ): Promise; */ abstract requestMultiselectInConversation( set: DyFM_AI_ConversationGenericMultiSelect_Input ): Promise; abstract requestJSONInConversation( set: DyFM_AI_ConversationBase_Input ): Promise; abstract requestJSONInConversationWithKeysDescription( set: DyFM_AI_ConversationJSONKeysDescription_Input ): Promise; abstract requestJSONInConversationWithExactKeys( set: DyFM_AI_ConversationJSONExactKeys_Input ): Promise; //abstract getQuestionAnswerInConversation(set: DyFM_AI_ConversationQuestion_Input): Promise; //abstract getAnswerInConversation(set: DyFM_AI_ConversationGetAnswer_Input): Promise; abstract requestListInConversation( set: DyFM_AI_ConversationBase_Input ): Promise; }