AI-система персонализации email-рассылок для медиа

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1 услугВсе 1566 услуг
AI-система персонализации email-рассылок для медиа
Простая
от 1 рабочего дня до 3 рабочих дней
Часто задаваемые вопросы
Направления AI-разработки
Этапы разработки AI-решения
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1240
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1167
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    867
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1084
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    563
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    829

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 часа до отправки.