@kangthink/q-engine
Version:
A question-answer generation engine that stimulates thinking
89 lines • 2.54 kB
TypeScript
export declare enum NodeType {
QUESTION = "QUESTION",
ANSWER = "ANSWER"
}
export interface Node {
id: string;
type: NodeType;
content: string;
metadata?: Record<string, any>;
createdAt: Date;
updatedAt: Date;
}
export interface QuestionNode extends Node {
type: NodeType.QUESTION;
}
export interface AnswerNode extends Node {
type: NodeType.ANSWER;
}
export interface Edge {
id: string;
from: string;
to: string;
transform: string;
metadata?: Record<string, any>;
createdAt: Date;
}
export declare enum TransformMode {
FIVE_W_ONE_H = "FIVE_W_ONE_H",// 육하원칙
SOCRATIC = "SOCRATIC",// 소크라테스
MATRIX = "MATRIX",// Matrix mode
SCIENTIFIC = "SCIENTIFIC",// 과학적 질문 방법
ANSWER = "ANSWER"
}
export interface TransformContext {
sourceNode: Node;
mode: TransformMode;
options?: Record<string, any>;
}
export interface TransformResult {
targetNode: Node;
edge: Edge;
}
export interface MultiTransformResult {
targetNodes: Node[];
edges: Edge[];
}
export interface Transform {
mode: TransformMode;
transform(context: TransformContext): Promise<TransformResult>;
transformMultiple?(context: TransformContext): Promise<MultiTransformResult>;
}
export interface PromptTemplate {
id: string;
mode: TransformMode;
template: string;
variables: string[];
}
export interface LLMProvider {
generateResponse(prompt: string): Promise<string>;
}
export declare enum MatrixLevel {
FACT_CHECK = 1,// 사실 확인
UNDERSTAND_EXPLAIN = 2,// 이해·설명
CAUSE_CONTEXT = 3,// 원인·맥락 파악
APPLY_COMPARE = 4,// 적용·비교
EVALUATE_CREATE_CRITIQUE = 5
}
export declare enum MatrixDirection {
FOCUSED = "FOCUSED",// 직진 - 본문·대상 내부에 깊이 파고드는 질문
CONTEXT = "CONTEXT",// 확장 - 주변 문맥·관련 주제·유사 사례로 시야 확장
APPLIED = "APPLIED",// 응용 - 배운 개념을 새로운 상황·분야에 적용
CRITICAL = "CRITICAL"
}
export interface MatrixOptions {
level: MatrixLevel;
direction: MatrixDirection;
}
export declare enum AnswerLength {
SHORT = "SHORT",// 짧게 (1-2문장)
MEDIUM = "MEDIUM",// 보통 (3-5문장)
LONG = "LONG",// 길게 (6-10문장)
DETAILED = "DETAILED"
}
export interface AnswerOptions {
length: AnswerLength;
tone?: 'formal' | 'casual' | 'academic' | 'simple';
includeExamples?: boolean;
}
//# sourceMappingURL=index.d.ts.map