AI-персоналізація email-розсилок медіа
Масові розсилки медіа з однаковим контентом для всієї бази дають open rate 15-20%. Персоналізовані дайджести з підборкою під інтереси конкретного читача — 35-50%. Технічно це pipeline: профіль читача → вибір статей → адаптація теми листа.
Персоналізований дайджест
from anthropic import Anthropic
import pandas as pd
from collections import defaultdict
def generate_personalized_digest(user_profile: dict,
available_articles: list[dict],
n_articles: int = 5) -> dict:
"""
Підбір та компонування персонального дайджесту.
user_profile: {'topics': {'tech': 0.4, 'politics': 0.3}, 'read_ids': set()}
"""
llm = Anthropic()
# Фільтруємо вже прочитане
read_ids = user_profile.get('read_ids', set())
unread = [a for a in available_articles if a['id'] not in read_ids]
# Скоринг статей за інтересами
topics = user_profile.get('topics', {})
scored = []
for article in unread:
topic_score = topics.get(article.get('topic', 'general'), 0.05)
freshness = max(0, 1.0 - article.get('hours_old', 24) / 48)
quality = article.get('editorial_score', 0.7)
scored.append({
**article,
'score': topic_score * 0.5 + freshness * 0.3 + quality * 0.2
})
top_articles = sorted(scored, key=lambda x: -x['score'])[:n_articles]
# Генерація персоналізованої теми листа
article_titles = [a['title'] for a in top_articles]
response = llm.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=80,
messages=[{
"role": "user",
"content": f"""Write a compelling email subject line for a news digest in Russian.
Articles: {article_titles[:3]}
Reader's main interests: {list(topics.keys())[:3]}
Max 55 chars. No clickbait. Be specific."""
}]
)
return {
'articles': top_articles,
'subject': response.content[0].text.strip(),
'personalization_applied': True
}
Персоналізовані дайджести потребують мінімум 10-15 прочитаних статей для якісного профілю. До цього порога — категорійна персоналізація (вибір розділу) без статейного рівня. Технічний стек: Redis для зберігання профілів, Apache Kafka для event streaming, batch-генерація за 1-2 години до відправки.







