Реализация AI-автоматизации генерации коммерческих предложений

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

AI-автоматизация генерации коммерческих предложений

Менеджер тратит 1–3 часа на КП под каждого клиента. AI-система генерирует персонализированное коммерческое предложение за 2–5 минут: извлекает данные из CRM, подбирает релевантные кейсы, формулирует ценностное предложение под конкретную боль клиента, собирает PDF с фирменным дизайном.

Архитектура системы

CRM данные (AmoCRM/Bitrix24) + шаблон отрасли
    ↓ GPT-4o: персонализация контента и структуры
    ↓ Подбор кейсов из базы знаний (vector search)
    ↓ Генерация PDF (WeasyPrint / python-docx)
    ↓ Трекинг открытий (pixel tracking / DocuSign)

Генератор персонализированного КП

from openai import AsyncOpenAI
from dataclasses import dataclass
import json

client = AsyncOpenAI()

@dataclass
class ProposalBrief:
    client_name: str
    client_company: str
    industry: str
    pain_points: list[str]      # из CRM-заметок менеджера
    budget_tier: str            # small (<500k), mid (500k-3M), enterprise (3M+)
    decision_maker_role: str    # CTO, CEO, CMO, Head of IT
    service_type: str
    relevant_cases: list[dict]  # из базы кейсов
    manager_name: str
    deadline_pressure: bool = False

async def generate_commercial_proposal(brief: ProposalBrief) -> dict:
    cases_summary = "\n".join([
        f"- {c['client']} ({c['industry']}): {c['result']}"
        for c in brief.relevant_cases[:3]
    ])

    response = await client.chat.completions.create(
        model="gpt-4o",
        messages=[{
            "role": "system",
            "content": f"""Ты — B2B-копирайтер, специалист по продающим коммерческим предложениям.
            Создай КП, ориентированное на лицо принятия решений: {brief.decision_maker_role}.

            СТРУКТУРА:
            1. Персональное обращение (боль клиента, не хвастовство о нас)
            2. Понимание задачи (покажи, что разобрались в проблеме)
            3. Наше решение (конкретно под задачу, не универсальный сервис)
            4. Почему мы (кейсы, цифры, не слова)
            5. Что получите (измеримый результат)
            6. Следующий шаг (конкретный CTA с датой)

            Тон: уверенный, без лести и клише ("мы рады предложить...").
            Бюджетный уровень клиента: {brief.budget_tier} — регулируй детализацию.
            {"Добавь акцент на срочность решения." if brief.deadline_pressure else ""}

            Верни JSON: {{executive_summary, problem_statement, solution_description, why_us, deliverables, next_steps, subject_line}}"""
        }, {
            "role": "user",
            "content": f"""
            Клиент: {brief.client_name}, {brief.client_company} ({brief.industry})
            Боли: {', '.join(brief.pain_points)}
            Услуга: {brief.service_type}
            Релевантные кейсы:
            {cases_summary}
            Менеджер: {brief.manager_name}
            """
        }],
        response_format={"type": "json_object"}
    )
    return json.loads(response.choices[0].message.content)

Поиск релевантных кейсов через векторную БД

from openai import OpenAI
import numpy as np

sync_client = OpenAI()

def find_relevant_cases(
    client_industry: str,
    pain_points: list[str],
    case_database: list[dict],
    top_k: int = 3
) -> list[dict]:
    """Ищем кейсы, близкие к задаче клиента по семантике"""
    query = f"{client_industry}: {', '.join(pain_points)}"
    query_embedding = sync_client.embeddings.create(
        model="text-embedding-3-small",
        input=query
    ).data[0].embedding

    scored_cases = []
    for case in case_database:
        case_text = f"{case['industry']}: {case['challenge']} → {case['result']}"
        case_embedding = sync_client.embeddings.create(
            model="text-embedding-3-small",
            input=case_text
        ).data[0].embedding

        similarity = np.dot(query_embedding, case_embedding) / (
            np.linalg.norm(query_embedding) * np.linalg.norm(case_embedding)
        )
        scored_cases.append((similarity, case))

    return [case for _, case in sorted(scored_cases, reverse=True)[:top_k]]

Сборка PDF с фирменным дизайном

from weasyprint import HTML, CSS
from jinja2 import Environment, FileSystemLoader
import base64

def render_proposal_pdf(proposal_data: dict, template_name: str = "default") -> bytes:
    env = Environment(loader=FileSystemLoader("templates/proposals"))
    template = env.get_template(f"{template_name}.html")

    html_content = template.render(**proposal_data)

    # Фирменный CSS с переменными цветов бренда
    css = CSS(string="""
        @page { size: A4; margin: 20mm 15mm; }
        body { font-family: 'Inter', sans-serif; color: #1a1a2e; }
        .highlight { background: #f0f4ff; border-left: 4px solid #4361ee; padding: 12px; }
        .case-block { border: 1px solid #e2e8f0; border-radius: 8px; padding: 16px; }
    """)

    pdf_bytes = HTML(string=html_content).write_pdf(stylesheets=[css])
    return pdf_bytes

Интеграция с CRM

Система подключается к AmoCRM или Bitrix24 через API: при переводе сделки в стадию «Подготовка КП» автоматически запрашивает данные контакта, историю переговоров из заметок, тип услуги из поля сделки. Менеджер получает черновик в течение 2–3 минут и вносит финальные правки в веб-редакторе перед отправкой.

Трекинг реализуется через pixel-пиксель в HTML-письме или DocuSign API — менеджер видит, когда клиент открыл КП и сколько времени провёл на каждой странице.

Варианты персонализации по роли ЛПР

Роль Акцент в КП Язык
CEO ROI, стратегический эффект, риски бездействия Бизнес-результаты
CTO Архитектура, технологии, сроки, качество кода Технический
CFO TCO, окупаемость, экономия на FTE Финансовые метрики
CMO Метрики привлечения, конверсия, brand awareness Маркетинговые KPI

Генератор КП с интеграцией одной CRM и PDF-экспортом — 2–3 недели. Полная платформа с базой кейсов, трекингом, A/B-тестированием версий и аналитикой конверсии — 6–8 недель.