skailan-ai
Version:
Servicio de IA y procesamiento de lenguaje natural para Skailan
58 lines • 2.49 kB
TypeScript
import { LLMConfig } from '../entities/LLMConfig';
export interface ConversationMessage {
role: 'user' | 'assistant' | 'system';
content: string;
timestamp: Date;
metadata?: Record<string, any>;
}
export interface ConversationContext {
id: string;
organizationId: string;
conversationId: string;
messages: ConversationMessage[];
summary?: string;
intent?: string;
sentiment?: string;
entities?: Array<{
type: string;
value: string;
confidence: number;
}>;
slots?: Record<string, any>;
createdAt: Date;
updatedAt: Date;
}
export interface ContextOptions {
maxMessages?: number;
includeSummary?: boolean;
includeIntent?: boolean;
includeSentiment?: boolean;
includeEntities?: boolean;
}
export declare class ConversationContextService {
private aiService;
private contexts;
constructor(llmConfig: LLMConfig);
createContext(organizationId: string, conversationId: string, initialMessage?: string): Promise<ConversationContext>;
addMessage(organizationId: string, conversationId: string, role: 'user' | 'assistant' | 'system', content: string, metadata?: Record<string, any>): Promise<ConversationContext>;
getContext(organizationId: string, conversationId: string): Promise<ConversationContext | null>;
updateContext(organizationId: string, conversationId: string, updates: Partial<ConversationContext>): Promise<ConversationContext>;
generateSummary(organizationId: string, conversationId: string, options?: ContextOptions): Promise<string>;
analyzeContext(organizationId: string, conversationId: string, options?: ContextOptions): Promise<{
intent?: string;
sentiment?: string;
entities?: Array<{
type: string;
value: string;
confidence: number;
}>;
slots?: Record<string, any>;
}>;
getRelevantContext(organizationId: string, conversationId: string, currentMessage: string, maxMessages?: number): Promise<ConversationMessage[]>;
clearContext(organizationId: string, conversationId: string): Promise<void>;
getAllContexts(organizationId: string): Promise<ConversationContext[]>;
cleanupOldContexts(maxAgeHours?: number): Promise<void>;
exportContext(organizationId: string, conversationId: string): Promise<string>;
importContext(contextData: string): Promise<ConversationContext>;
}
//# sourceMappingURL=ConversationContextService.d.ts.map