mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-04 13:39:01 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			96 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
/**
 | 
						|
 * Query Decomposition Constants
 | 
						|
 *
 | 
						|
 * This file centralizes all string constants used in the query decomposition tool.
 | 
						|
 * These constants can be translated for internationalization support.
 | 
						|
 */
 | 
						|
 | 
						|
export const QUERY_DECOMPOSITION_STRINGS = {
 | 
						|
    // Log messages
 | 
						|
    LOG_MESSAGES: {
 | 
						|
        DECOMPOSING_QUERY: (query: string) => `Decomposing query: "${query.substring(0, 100)}..."`,
 | 
						|
        EMPTY_QUERY: "Query decomposition called with empty query",
 | 
						|
        COMPLEXITY_ASSESSMENT: (complexity: number) => `Query complexity assessment: ${complexity}/10`,
 | 
						|
        SIMPLE_QUERY: (complexity: number) => `Query is simple (complexity ${complexity}), returning as single sub-query`,
 | 
						|
        DECOMPOSED_INTO: (count: number) => `Decomposed query into ${count} sub-queries`,
 | 
						|
        SUB_QUERY_LOG: (index: number, text: string, reason: string) => `Sub-query ${index + 1}: "${text}" - Reason: ${reason}`,
 | 
						|
        ERROR_DECOMPOSING: (error: string) => `Error decomposing query: ${error}`,
 | 
						|
        AVOIDING_RECURSIVE: (query: string) => `Avoiding recursive subqueries for query "${query.substring(0, 50)}..."`,
 | 
						|
        ERROR_SYNTHESIZING: (error: string) => `Error synthesizing answer: ${error}`
 | 
						|
    },
 | 
						|
 | 
						|
    // Query identification patterns
 | 
						|
    QUERY_PATTERNS: {
 | 
						|
        PROVIDE_DETAILS_ABOUT: "provide details about",
 | 
						|
        INFORMATION_RELATED_TO: "information related to",
 | 
						|
        COMPARE: "compare",
 | 
						|
        DIFFERENCE_BETWEEN: "difference between",
 | 
						|
        VS: " vs ",
 | 
						|
        VERSUS: "versus",
 | 
						|
        HOW_TO: "how to ",
 | 
						|
        WHY: "why ",
 | 
						|
        WHAT_IS: "what is ",
 | 
						|
        WHAT_ARE: "what are "
 | 
						|
    },
 | 
						|
 | 
						|
    // Question words used for complexity assessment
 | 
						|
    QUESTION_WORDS: ['what', 'how', 'why', 'where', 'when', 'who', 'which'],
 | 
						|
 | 
						|
    // Conjunctions used for complexity assessment
 | 
						|
    CONJUNCTIONS: ['and', 'or', 'but', 'as well as'],
 | 
						|
 | 
						|
    // Comparison terms used for complexity assessment
 | 
						|
    COMPARISON_TERMS: ['compare', 'versus', 'vs', 'difference', 'similarities'],
 | 
						|
 | 
						|
    // Analysis terms used for complexity assessment
 | 
						|
    ANALYSIS_TERMS: ['analyze', 'examine', 'investigate', 'explore', 'explain', 'discuss'],
 | 
						|
 | 
						|
    // Common stop words for parsing
 | 
						|
    STOP_WORDS: ['the', 'of', 'and', 'or', 'vs', 'versus', 'between', 'comparison', 'compared', 'to', 'with', 'what', 'is', 'are', 'how', 'why', 'when', 'which'],
 | 
						|
 | 
						|
    // Sub-query templates
 | 
						|
    SUB_QUERY_TEMPLATES: {
 | 
						|
        INFORMATION_RELATED: (query: string) => `Information related to ${query}`,
 | 
						|
        KEY_CHARACTERISTICS: (entity: string) => `What are the key characteristics of ${entity}?`,
 | 
						|
        COMPARISON_FEATURES: (entities: string[]) => `How do ${entities.join(' and ')} compare in terms of their primary features?`,
 | 
						|
        STEPS_TO: (topic: string) => `What are the steps to ${topic}?`,
 | 
						|
        CHALLENGES: (topic: string) => `What are common challenges or pitfalls when trying to ${topic}?`,
 | 
						|
        CAUSES: (topic: string) => `What are the causes of ${topic}?`,
 | 
						|
        EVIDENCE: (topic: string) => `What evidence supports explanations for ${topic}?`,
 | 
						|
        DEFINITION: (topic: string) => `Definition of ${topic}`,
 | 
						|
        EXAMPLES: (topic: string) => `Examples of ${topic}`,
 | 
						|
        KEY_INFORMATION: (concept: string) => `Key information about ${concept}`
 | 
						|
    },
 | 
						|
 | 
						|
    // Sub-query reasons
 | 
						|
    SUB_QUERY_REASONS: {
 | 
						|
        GETTING_DETAILS: (entity: string) => `Getting details about "${entity}" for comparison`,
 | 
						|
        DIRECT_COMPARISON: 'Direct comparison of the entities',
 | 
						|
        FINDING_PROCEDURAL: 'Finding procedural information',
 | 
						|
        IDENTIFYING_DIFFICULTIES: 'Identifying potential difficulties',
 | 
						|
        IDENTIFYING_CAUSES: 'Identifying causes',
 | 
						|
        FINDING_EVIDENCE: 'Finding supporting evidence',
 | 
						|
        GETTING_DEFINITION: 'Getting basic definition',
 | 
						|
        FINDING_EXAMPLES: 'Finding examples',
 | 
						|
        FINDING_INFORMATION: (concept: string) => `Finding information about "${concept}"`
 | 
						|
    },
 | 
						|
 | 
						|
    // Synthesis answer templates
 | 
						|
    SYNTHESIS_TEMPLATES: {
 | 
						|
        CANNOT_SYNTHESIZE: "Cannot synthesize answer - not all sub-queries have been answered.",
 | 
						|
        ANSWER_TO: (query: string) => `Answer to: "${query}"\n\n`,
 | 
						|
        BASED_ON_INFORMATION: "Based on the information gathered:\n\n",
 | 
						|
        ERROR_SYNTHESIZING: "Error synthesizing the final answer."
 | 
						|
    },
 | 
						|
 | 
						|
    // Query status templates
 | 
						|
    STATUS_TEMPLATES: {
 | 
						|
        PROGRESS: (answered: number, total: number) => `Progress: ${answered}/${total} sub-queries answered\n\n`,
 | 
						|
        ANSWERED_MARKER: "✓",
 | 
						|
        UNANSWERED_MARKER: "○",
 | 
						|
        ANSWER_PREFIX: "   Answer: "
 | 
						|
    }
 | 
						|
};
 | 
						|
 | 
						|
export default QUERY_DECOMPOSITION_STRINGS;
 |