@restnfeel/agentc-starter-kit
Version:
한국어 기업용 CMS 모듈 - Task Master AI와 함께 빠르게 웹사이트를 구현할 수 있는 재사용 가능한 컴포넌트 시스템
84 lines • 2.59 kB
TypeScript
import { RAGEngine } from "../engine";
import { ConversationConfig } from "./context-manager";
import { ChatMessage, SearchResult, ConversationContext } from "../types";
export interface ChatbotConfig {
ragEngine: RAGEngine;
llmConfig: {
apiKey: string;
modelName: string;
temperature?: number;
maxTokens?: number;
baseURL?: string;
};
conversationConfig?: Partial<ConversationConfig>;
defaultPromptTemplate?: string;
retrievalConfig?: {
topK: number;
minScore: number;
searchMethod: "hybrid" | "vector" | "keyword";
};
languageDetection?: boolean;
}
export interface ChatResponse {
message: ChatMessage;
sources: SearchResult[];
conversationId: string;
metadata: {
retrievalTime: number;
generationTime: number;
totalTokens?: number;
model: string;
template: string;
};
}
export interface ChatRequest {
message: string;
conversationId?: string;
systemPrompt?: string;
promptTemplate?: string;
retrievalOptions?: {
topK?: number;
minScore?: number;
searchMethod?: "hybrid" | "vector" | "keyword";
};
userContext?: Record<string, any>;
}
export declare class RAGChatbot {
private ragEngine;
private contextManager;
private promptManager;
private config;
constructor(config: ChatbotConfig);
chat(request: ChatRequest): Promise<ChatResponse>;
private retrieveDocuments;
private generateResponse;
private callLLM;
private detectLanguage;
getConversation(conversationId: string): ConversationContext | null;
clearConversation(conversationId: string): boolean;
getConversationHistory(conversationId: string, lastN?: number): ChatMessage[];
streamChat(request: ChatRequest): AsyncGenerator<{
type: "retrieval" | "generation" | "complete";
data: any;
}>;
private generateConversationId;
private generateMessageId;
updateConfig(updates: Partial<ChatbotConfig>): void;
addPromptTemplate(template: {
id: string;
name: string;
template: string;
variables: string[];
description?: string;
language?: string;
}): void;
getStats(): {
conversations: number;
totalMessages: number;
ragEngineStats: any;
promptTemplates: number;
};
summarizeConversation(conversationId: string): Promise<string>;
suggestFollowUpQuestions(conversationId: string): Promise<string[]>;
}
//# sourceMappingURL=chatbot.d.ts.map