70 lines
1.8 KiB
Python
70 lines
1.8 KiB
Python
from bot.models import ReportType
|
|
|
|
_BASE = """\
|
|
You are analyzing a batch of Telegram channel posts. Extract structured insights from this chunk.
|
|
|
|
Channel: {title}
|
|
Chunk {chunk_idx} of {total_chunks}
|
|
|
|
Posts:
|
|
{chunk_text}
|
|
"""
|
|
|
|
_CONTENT = """\
|
|
Focus on:
|
|
- Main topics and themes discussed
|
|
- Tone and communication style
|
|
- Content formats (long-form, short updates, lists, etc.)
|
|
- Key narratives or recurring ideas
|
|
- Notable quotes or standout posts
|
|
|
|
Provide a concise structured summary."""
|
|
|
|
_CONTENT_STATS = """\
|
|
Focus on:
|
|
- Main topics and themes discussed
|
|
- Tone and communication style
|
|
- Content formats used
|
|
- Key narratives or recurring ideas
|
|
- Posting frequency patterns in this batch
|
|
- Engagement patterns (which topics get more views/forwards/replies)
|
|
- Any notable spikes or drops in engagement
|
|
|
|
Provide a concise structured summary with both qualitative and quantitative observations."""
|
|
|
|
_FULL_AUDIT = """\
|
|
Focus on:
|
|
- Main topics and themes discussed
|
|
- Tone and communication style
|
|
- Content formats used
|
|
- Key narratives or recurring ideas
|
|
- Posting frequency patterns
|
|
- Engagement patterns with specific numbers
|
|
- Sentiment analysis (positive/negative/neutral distribution)
|
|
- Audience interaction patterns
|
|
- Content strengths and weaknesses
|
|
- Missed opportunities
|
|
|
|
Provide a detailed structured summary covering all dimensions."""
|
|
|
|
CHUNK_PROMPTS = {
|
|
ReportType.CONTENT: _CONTENT,
|
|
ReportType.CONTENT_STATS: _CONTENT_STATS,
|
|
ReportType.FULL_AUDIT: _FULL_AUDIT,
|
|
}
|
|
|
|
|
|
def build_chunk_prompt(
|
|
report_type: ReportType,
|
|
title: str,
|
|
chunk_text: str,
|
|
chunk_idx: int,
|
|
total_chunks: int,
|
|
) -> str:
|
|
base = _BASE.format(
|
|
title=title,
|
|
chunk_idx=chunk_idx,
|
|
total_chunks=total_chunks,
|
|
chunk_text=chunk_text,
|
|
)
|
|
return base + "\n" + CHUNK_PROMPTS[report_type]
|