@restnfeel/agentc-starter-kit
Version:
한국어 기업용 CMS 모듈 - Task Master AI와 함께 빠르게 웹사이트를 구현할 수 있는 재사용 가능한 컴포넌트 시스템
89 lines • 2.12 kB
TypeScript
export interface Document {
id: string;
content: string;
metadata: DocumentMetadata;
source: string;
chunks?: DocumentChunk[];
}
export interface DocumentMetadata {
title?: string;
author?: string;
createdAt: Date;
updatedAt: Date;
fileType: string;
fileSize: number;
language?: string;
tags?: string[];
categories?: string[];
description?: string;
}
export interface DocumentChunk {
id: string;
content: string;
metadata: ChunkMetadata;
embedding?: number[];
}
export interface ChunkMetadata {
documentId: string;
chunkIndex: number;
startOffset: number;
endOffset: number;
tokens: number;
source: string;
}
export interface SearchResult {
chunk: DocumentChunk;
score: number;
document: Document;
}
export interface EmbeddingModel {
embed(text: string): Promise<number[]>;
embedBatch(texts: string[]): Promise<number[][]>;
}
export interface VectorStore {
addDocuments(documents: Document[]): Promise<void>;
search(query: string, k?: number): Promise<SearchResult[]>;
delete(documentId: string): Promise<void>;
update(document: Document): Promise<void>;
}
export interface RAGConfig {
embeddingModel: string;
chunkSize: number;
chunkOverlap: number;
vectorStorePath: string;
supabaseConfig: {
url: string;
anonKey: string;
bucket: string;
};
llmConfig: {
modelName: string;
temperature: number;
maxTokens: number;
apiKey: string;
};
}
export interface ChatMessage {
id: string;
role: "user" | "assistant" | "system";
content: string;
timestamp: Date;
updatedAt?: Date;
metadata?: {
sources?: SearchResult[];
model?: string;
tokenCount?: number;
error?: string;
[key: string]: any;
};
}
export interface ConversationContext {
id: string;
messages: ChatMessage[];
sessionId?: string;
userId?: string;
createdAt: Date;
updatedAt: Date;
metadata?: Record<string, any>;
}
//# sourceMappingURL=types.d.ts.map