"""Prompt templates for LLM interactions."""


class PromptTemplate:
    """Prompt template class."""
    
    PREFERENCE_EXTRACTION_PROMPT = """You are a professional parameter extraction assistant. Please extract spatial co-location pattern mining parameters from the user's natural language input.

User Input: {user_input}

Please return the extracted parameters in JSON format as follows:
{{
  "min_participation": float,  // Minimum participation threshold (0.0-1.0)
  "max_pattern_size": int,      // Maximum pattern size (1-10)
  "priority": string            // Priority: "confidence", "participation", "size"
}}

If a parameter is not explicitly specified in the user input, please use reasonable default values:
- min_participation: 0.6
- max_pattern_size: 5
- priority: "confidence"

Important: Only return a JSON object, do not include any other text, explanations, dialogue history, or code. Return only one JSON object."""

    EXPLANATION_GENERATION_PROMPT = """You are a data mining expert. Please generate a concise and understandable English explanation for the following mining results.

Mining Parameters:
- Min Participation: {min_participation}
- Max Pattern Size: {max_pattern_size}
- Priority: {priority}

The following are the mining results:
{patterns}
Please analyze from the following perspectives:

1. Spatial economics implications
2. Consumer behavior interpretation
3. Business layout insights
4. Practical application suggestions
5. Potential risks

Requirements:
- Must cite background knowledge
- Provide specific reasons
- Avoid vague statements
- Use academic + business mixed style
Please generate a concise explanation (approximately 400 words) describing the meaning and importance of these patterns."""

    SYSTEM_PROMPT = """You are a professional spatial data mining assistant, skilled at understanding user needs for co-location pattern mining."""







