UNPKG

@kangthink/q-engine

Version:

A question-answer generation engine that stimulates thinking

42 lines 1.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ScientificTransform = void 0; const types_1 = require("../types"); const BaseTransform_1 = require("./BaseTransform"); class ScientificTransform extends BaseTransform_1.BaseTransform { constructor() { super(...arguments); this.mode = types_1.TransformMode.SCIENTIFIC; } async transform(context) { const { sourceNode, options } = context; // Scientific method typically generates questions to systematically investigate a topic const targetNodeType = options?.targetNodeType || this.defaultTargetType; // Get or create prompt template const promptTemplate = this.promptManager.getPrompt(this.mode) || this.promptManager.getDefaultPrompt(this.mode); // Build prompt with variables const targetTypeKorean = targetNodeType === types_1.NodeType.QUESTION ? '질문' : '답변'; const count = options?.count ? ` ${options.count}` : ''; const prompt = this.buildPrompt(promptTemplate.template, { content: sourceNode.content, targetType: targetTypeKorean, count: count, }); // Generate content using LLM const generatedContent = await this.generateContent(prompt); // Parse content to extract single result (first item if multiple) const parsedContent = this.extractSingleResult(generatedContent); // Create and return transform result return this.createTransformResult(sourceNode, parsedContent, targetNodeType); } /** * 다중 결과에서 첫 번째 결과만 추출 */ extractSingleResult(content) { const parsedResults = this.parseMultipleResults(content); return parsedResults.length > 0 ? parsedResults[0] : content.trim(); } } exports.ScientificTransform = ScientificTransform; //# sourceMappingURL=ScientificTransform.js.map