# -*- coding: utf-8 -*-
"""
UltraData-Math L3 - Knowledge Extraction & Textbook Exercise Prompts
Features:
1. Knowledge Extraction: Extract definitions, axioms, theorems, properties from math content
2. Textbook Exercise Generation: Generate exercises at different difficulty levels (Easy/Medium/Hard)
"""
# ============================================================================
# Knowledge Point Extraction
# ============================================================================
MATH_INSTRUCT_KNOWLEDGE_EXTRACTION_PROMPT = '''Math Content:{text}
As a math teacher, you are highly proficient in mathematical knowledge.
Your goal is to utilize your abilities, extract mathematical knowledge points based on the provided math content.
You should follow these steps:
1. First, If the provided math content does not include specific mathematical definitions, axioms, assumptions, hypotheses, conjectures, propositions, lemmas, theorems, corollaries, properties, proofs, return 'no result' directly.
2. Then, carefully read the provided math content to provide mathematical knowledge point according to the following requirements.
- The mathematical knowledge point must be specific mathematical definitions, axioms, assumptions, hypotheses, conjectures, propositions, lemmas, theorems, corollaries, properties, proofs. Otherwise, it must not be output.
- The mathematical knowledge point must be findable within the provided math content. Otherwise, it must not be output.
- The beginning of the mathematical knowledge point must state specific mathematical definitions, axioms, assumptions, hypotheses, conjectures, propositions, lemmas, theorems, corollaries, properties, and proofs.
- The mathematical knowledge point must not be repeated.
- The mathematical knowledge point must be clear, concise, accurate, and easy to learn.
- The mathematical knowledge point may appropriately include relevant explanations to make the knowledge point more complete.
- All mathematical expressions in the mathematical knowledge point must be formatted using LaTeX.
The result format is as follows:
and more
In addition, the output format refrain from using Markdown, avoid bold or italic styles, and do not add any text decorations.'''
# ============================================================================
# Textbook Exercise - Easy
# ============================================================================
MATH_INSTRUCT_TEXTBOOK_EASY_PROMPT = '''Mathematical Knowledge Point:{mathematical_knowledge_point}
As a math teacher, you are highly proficient in mathematical knowledge.
Your goal is to utilize your abilities, generate informative, textbook-style learning mathematical material suitable for students.
You should follow these steps:
1. First, provide a detailed explanation based on the given mathematical knowledge point.
2. Second, generate an exercise based on the provided explanation according to the following requirements.
- The exercise must be self-contained.
- Ensure the exercise is fully text-based and solvable without images.
3. Third, provide a solution based on the generated exercise according to the following requirements.
- The solution must be detailed and step-by-step.
4. Finally, construct the generated explanation, exercise, and solution into textbook-style learning material according to the following requirements.
- The material must be logically structured, information-dense, concise and easy to learn.
- The material must be accurate to avoid misleading students.
- The material must maintain a formal and educational tone and avoid casual expressions.
- The explanation must be at the beginning of the material.
- The exercise in the material must be starts with 'The exercise:'.
- The solution in the material must be starts with 'The solution:'.
- All mathematical expressions in the material must be formatted using LaTeX.
The result format is as follows.
In addition, the output format refrain from using Markdown, avoid bold or italic styles, and do not add any text decorations.'''
# ============================================================================
# Textbook Exercise - Medium
# ============================================================================
MATH_INSTRUCT_TEXTBOOK_MEDIUM_PROMPT = '''Mathematical Knowledge Point:{mathematical_knowledge_point}
As a math teacher, you are highly proficient in mathematical knowledge.
Your goal is to utilize your abilities, generate informative, textbook-style learning mathematical material suitable for students.
You should follow these steps:
1. First, provide a detailed explanation based on the given mathematical knowledge point.
2. Second, generate an medium-difficulty exercise based on the provided explanation according to the following requirements.
- The goal of the exercise is to help students master the given mathematical knowledge point.
- Other mathematical knowledge points can be incorporated into the exercises to increase the difficulty to medium level.
- The exercise must be self-contained.
- Ensure the exercise is fully text-based and solvable without images.
3. Third, provide a solution based on the generated exercise according to the following requirements.
- The solution must be detailed and step-by-step.
4. Finally, construct the generated explanation, exercise, and solution into textbook-style learning material according to the following requirements.
- The material must be logically structured, information-dense, concise and easy to learn.
- The material must be accurate to avoid misleading students.
- The material must maintain a formal and educational tone and avoid casual expressions.
- The explanation must be at the beginning of the material.
- The exercise in the material must be starts with 'The exercise:'.
- The solution in the material must be starts with 'The solution:'.
- All mathematical expressions in the material must be formatted using LaTeX.
The result format is as follows.
In addition, the output format refrain from using Markdown, avoid bold or italic styles, and do not add any text decorations.'''
# ============================================================================
# Textbook Exercise - Hard
# ============================================================================
MATH_INSTRUCT_TEXTBOOK_HARD_PROMPT = '''Mathematical Knowledge Point:{mathematical_knowledge_point}
As a math teacher, you are highly proficient in mathematical knowledge.
Your goal is to utilize your abilities, generate informative, textbook-style learning mathematical material suitable for students.
You should follow these steps:
1. First, provide a detailed explanation based on the given mathematical knowledge point.
2. Second, generate an hard-difficulty exercise based on the provided explanation according to the following requirements.
- The goal of the exercise is to help students deeply understand and comprehensively apply the given mathematical knowledge point.
- Other mathematical knowledge points can be incorporated into the exercises to increase the difficulty to hard level.
- The exercise must be self-contained.
- Ensure the exercise is fully text-based and solvable without images.
3. Third, provide a solution based on the generated exercise according to the following requirements.
- The solution must be detailed and step-by-step.
4. Finally, construct the generated explanation, exercise, and solution into textbook-style learning material according to the following requirements.
- The material must be logically structured, information-dense, concise and easy to learn.
- The material must be accurate to avoid misleading students.
- The material must maintain a formal and educational tone and avoid casual expressions.
- The explanation must be at the beginning of the material.
- The exercise in the material must be starts with 'The exercise:'.
- The solution in the material must be starts with 'The solution:'.
- All mathematical expressions in the material must be formatted using LaTeX.
The result format is as follows.
In addition, the output format refrain from using Markdown, avoid bold or italic styles, and do not add any text decorations.'''
# ============================================================================
# Prompt Registry
# ============================================================================
KNOWLEDGE_PROMPTS = {
"knowledge_extraction": MATH_INSTRUCT_KNOWLEDGE_EXTRACTION_PROMPT,
}
TEXTBOOK_EXERCISE_PROMPTS = {
"easy": MATH_INSTRUCT_TEXTBOOK_EASY_PROMPT,
"medium": MATH_INSTRUCT_TEXTBOOK_MEDIUM_PROMPT,
"hard": MATH_INSTRUCT_TEXTBOOK_HARD_PROMPT,
}
def get_knowledge_extraction_prompt() -> str:
"""
Get knowledge extraction prompt
Returns:
Knowledge extraction prompt template string
"""
return MATH_INSTRUCT_KNOWLEDGE_EXTRACTION_PROMPT
def get_textbook_exercise_prompt(difficulty: str) -> str:
"""
Get textbook exercise prompt for specified difficulty
Args:
difficulty: Difficulty level, options: "easy", "medium", "hard"
Returns:
Corresponding prompt template string
"""
if difficulty not in TEXTBOOK_EXERCISE_PROMPTS:
raise ValueError(f"Unknown difficulty: {difficulty}. Available: {list(TEXTBOOK_EXERCISE_PROMPTS.keys())}")
return TEXTBOOK_EXERCISE_PROMPTS[difficulty]