You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
229 lines
7.3 KiB
229 lines
7.3 KiB
"""
|
|
Prompt templates for multimodal content processing
|
|
|
|
Contains all prompt templates used in modal processors for analyzing
|
|
different types of content (images, tables, equations, etc.)
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
from typing import Any
|
|
|
|
|
|
PROMPTS: dict[str, Any] = {}
|
|
|
|
# System prompts for different analysis types
|
|
PROMPTS["IMAGE_ANALYSIS_SYSTEM"] = (
|
|
"You are an expert image analyst. Provide detailed, accurate descriptions."
|
|
)
|
|
PROMPTS["IMAGE_ANALYSIS_FALLBACK_SYSTEM"] = (
|
|
"You are an expert image analyst. Provide detailed analysis based on available information."
|
|
)
|
|
PROMPTS["TABLE_ANALYSIS_SYSTEM"] = (
|
|
"You are an expert data analyst. Provide detailed table analysis with specific insights."
|
|
)
|
|
PROMPTS["EQUATION_ANALYSIS_SYSTEM"] = (
|
|
"You are an expert mathematician. Provide detailed mathematical analysis."
|
|
)
|
|
PROMPTS["GENERIC_ANALYSIS_SYSTEM"] = (
|
|
"You are an expert content analyst specializing in {content_type} content."
|
|
)
|
|
|
|
# Image analysis prompt template
|
|
PROMPTS[
|
|
"vision_prompt"
|
|
] = """Please analyze this image in detail and provide a JSON response with the following structure:
|
|
|
|
{{
|
|
"detailed_description": "A comprehensive and detailed visual description of the image following these guidelines:
|
|
- Describe the overall composition and layout
|
|
- Identify all objects, people, text, and visual elements
|
|
- Explain relationships between elements
|
|
- Note colors, lighting, and visual style
|
|
- Describe any actions or activities shown
|
|
- Include technical details if relevant (charts, diagrams, etc.)
|
|
- Always use specific names instead of pronouns",
|
|
"entity_info": {{
|
|
"entity_name": "{entity_name}",
|
|
"entity_type": "image",
|
|
"summary": "concise summary of the image content and its significance (max 100 words)"
|
|
}}
|
|
}}
|
|
|
|
Additional context:
|
|
- Image Path: {image_path}
|
|
- Captions: {captions}
|
|
- Footnotes: {footnotes}
|
|
|
|
Focus on providing accurate, detailed visual analysis that would be useful for knowledge retrieval."""
|
|
|
|
# Image analysis prompt with text fallback
|
|
PROMPTS["text_prompt"] = """Based on the following image information, provide analysis:
|
|
|
|
Image Path: {image_path}
|
|
Captions: {captions}
|
|
Footnotes: {footnotes}
|
|
|
|
{vision_prompt}"""
|
|
|
|
# Table analysis prompt template
|
|
PROMPTS[
|
|
"table_prompt"
|
|
] = """Please analyze this table content and provide a JSON response with the following structure:
|
|
|
|
{{
|
|
"detailed_description": "A comprehensive analysis of the table including:
|
|
- Table structure and organization
|
|
- Column headers and their meanings
|
|
- Key data points and patterns
|
|
- Statistical insights and trends
|
|
- Relationships between data elements
|
|
- Significance of the data presented
|
|
Always use specific names and values instead of general references.",
|
|
"entity_info": {{
|
|
"entity_name": "{entity_name}",
|
|
"entity_type": "table",
|
|
"summary": "concise summary of the table's purpose and key findings (max 100 words)"
|
|
}}
|
|
}}
|
|
|
|
Table Information:
|
|
Image Path: {table_img_path}
|
|
Caption: {table_caption}
|
|
Body: {table_body}
|
|
Footnotes: {table_footnote}
|
|
|
|
Focus on extracting meaningful insights and relationships from the tabular data."""
|
|
|
|
# Equation analysis prompt template
|
|
PROMPTS[
|
|
"equation_prompt"
|
|
] = """Please analyze this mathematical equation and provide a JSON response with the following structure:
|
|
|
|
{{
|
|
"detailed_description": "A comprehensive analysis of the equation including:
|
|
- Mathematical meaning and interpretation
|
|
- Variables and their definitions
|
|
- Mathematical operations and functions used
|
|
- Application domain and context
|
|
- Physical or theoretical significance
|
|
- Relationship to other mathematical concepts
|
|
- Practical applications or use cases
|
|
Always use specific mathematical terminology.",
|
|
"entity_info": {{
|
|
"entity_name": "{entity_name}",
|
|
"entity_type": "equation",
|
|
"summary": "concise summary of the equation's purpose and significance (max 100 words)"
|
|
}}
|
|
}}
|
|
|
|
Equation Information:
|
|
Equation: {equation_text}
|
|
Format: {equation_format}
|
|
|
|
Focus on providing mathematical insights and explaining the equation's significance."""
|
|
|
|
# Generic content analysis prompt template
|
|
PROMPTS[
|
|
"generic_prompt"
|
|
] = """Please analyze this {content_type} content and provide a JSON response with the following structure:
|
|
|
|
{{
|
|
"detailed_description": "A comprehensive analysis of the content including:
|
|
- Content structure and organization
|
|
- Key information and elements
|
|
- Relationships between components
|
|
- Context and significance
|
|
- Relevant details for knowledge retrieval
|
|
Always use specific terminology appropriate for {content_type} content.",
|
|
"entity_info": {{
|
|
"entity_name": "{entity_name}",
|
|
"entity_type": "{content_type}",
|
|
"summary": "concise summary of the content's purpose and key points (max 100 words)"
|
|
}}
|
|
}}
|
|
|
|
Content: {content}
|
|
|
|
Focus on extracting meaningful information that would be useful for knowledge retrieval."""
|
|
|
|
# Modal chunk templates
|
|
PROMPTS["image_chunk"] = """
|
|
Image Content Analysis:
|
|
Image Path: {image_path}
|
|
Captions: {captions}
|
|
Footnotes: {footnotes}
|
|
|
|
Visual Analysis: {enhanced_caption}"""
|
|
|
|
PROMPTS["table_chunk"] = """Table Analysis:
|
|
Image Path: {table_img_path}
|
|
Caption: {table_caption}
|
|
Structure: {table_body}
|
|
Footnotes: {table_footnote}
|
|
|
|
Analysis: {enhanced_caption}"""
|
|
|
|
PROMPTS["equation_chunk"] = """Mathematical Equation Analysis:
|
|
Equation: {equation_text}
|
|
Format: {equation_format}
|
|
|
|
Mathematical Analysis: {enhanced_caption}"""
|
|
|
|
PROMPTS["generic_chunk"] = """{content_type} Content Analysis:
|
|
Content: {content}
|
|
|
|
Analysis: {enhanced_caption}"""
|
|
|
|
# Query-related prompts
|
|
PROMPTS["QUERY_IMAGE_DESCRIPTION"] = (
|
|
"Please briefly describe the main content, key elements, and important information in this image."
|
|
)
|
|
|
|
PROMPTS["QUERY_IMAGE_ANALYST_SYSTEM"] = (
|
|
"You are a professional image analyst who can accurately describe image content."
|
|
)
|
|
|
|
PROMPTS[
|
|
"QUERY_TABLE_ANALYSIS"
|
|
] = """Please analyze the main content, structure, and key information of the following table data:
|
|
|
|
Table data:
|
|
{table_data}
|
|
|
|
Table caption: {table_caption}
|
|
|
|
Please briefly summarize the main content, data characteristics, and important findings of the table."""
|
|
|
|
PROMPTS["QUERY_TABLE_ANALYST_SYSTEM"] = (
|
|
"You are a professional data analyst who can accurately analyze table data."
|
|
)
|
|
|
|
PROMPTS[
|
|
"QUERY_EQUATION_ANALYSIS"
|
|
] = """Please explain the meaning and purpose of the following mathematical formula:
|
|
|
|
LaTeX formula: {latex}
|
|
Formula caption: {equation_caption}
|
|
|
|
Please briefly explain the mathematical meaning, application scenarios, and importance of this formula."""
|
|
|
|
PROMPTS["QUERY_EQUATION_ANALYST_SYSTEM"] = (
|
|
"You are a mathematics expert who can clearly explain mathematical formulas."
|
|
)
|
|
|
|
PROMPTS[
|
|
"QUERY_GENERIC_ANALYSIS"
|
|
] = """Please analyze the following {content_type} type content and extract its main information and key features:
|
|
|
|
Content: {content_str}
|
|
|
|
Please briefly summarize the main characteristics and important information of this content."""
|
|
|
|
PROMPTS["QUERY_GENERIC_ANALYST_SYSTEM"] = (
|
|
"You are a professional content analyst who can accurately analyze {content_type} type content."
|
|
)
|
|
|
|
PROMPTS["QUERY_ENHANCEMENT_SUFFIX"] = (
|
|
"\n\nPlease provide a comprehensive answer based on the user query and the provided multimodal content information."
|
|
)
|