Использование ИИ в среднем и крупном бизнесе: практический кейс для отдела продаж

  • Проблема: почему sales-менеджерам сложно работать без ИИ
Обычная ситуация: у компании много клиентов, какие-то появились недавно, а каким-то уже десятки лет и вот приходит в компанию новый менеджер по продажам, ему передают набор клиентов, и он планирует встречи. Само собой, он пытается подготовиться, смотрит контракты, проверяет обращения, общается с коллегами и вроде бы даже что-то полезное находит. Приходит на встречу и тут на тебе: клиент говорит о каких-то проблемах, о которых менеджер и не слышал, жалобы на отсутствие КП по недавним запросам и вообще клиент подумывает менять поставщика услуг. Знакомая ситуация?

Весь бизнес — это отношения с клиентами, и чтобы качественно их обслуживать, нужно владеть информацией.
  • Решение: брифинг менеджеров с помощью ИИ
Давайте теперь посмотрим на том, как может быть. Менеджер по продажам заходит в систему и в формате чата пишет запрос: подготовь мне брифинг по клиенту ООО "Супер Компания". В ответ менеджер получает очень подробный ответ с описанием истории контрактов и доп соглашений, объема сделок, скорости ответов, обращениям клиентам, жалоб и прочими деталями. Все это собрано на основании следующих данных:

  1. CRM-записей и истории сделок;
  2. переписок из почты и мессенджеров;
  3. договоров, доп. соглашений, спецификаций и прочих документов;
  4. поступления платежей и выплат;
  5. судебных дел;
  6. тикетов в системе поддержки;
  7. внутренних комментариев и заметок.

В итоге менеджер вооружен до зубов ко встрече с клиентом, понимает чего ожидать, на чем акцентировать внимание и как продавать. Интересно?
  • Как работает ИИ для анализа истории клиента: техническая реализация
Для реализации системы, которая по запросу выдает структурированное саммари по клиенту на основе внутренних данных компании, можно использовать следующую архитектуру:

Источники данных:

  • CRM (например, Битрикс24, amoCRM, Zoho CRM)
  • ERP-системы (1C, Oracle)
  • Email (Yandex 360, MS Exchange, Р7-Офис, Мой ОФис и т.д.)
  • Файловые архивы: договора, акты, тикеты в виде .pdf, .docx, .xlsx
  • Service Desk (Jira, YouTrack, Яндекс Трекер и т.д.)

Инструменты сбора:
n8n / appliner / кастомный backend и интеграция через API

Хранилище для файлов
S3-совместимые хранилища: Yandex Object Storage, VK Cloud, Selectel, S3 Yadro
Данные складываются в по клиентам/проектам

Frontend:
Appliner / кастомный фронтенд на JS
Далее нам нужно все данные привести к единому виду и затем создать векторный индекс для семантического поиска. Таким образом на стороне backend мы получаем все данные из всех систем в исходных форматах и теперь нам нужно их привести к единому виду. Удобнее всего использовать JSON и для этого можно использовать:

.pdf → .txt через pdfminer, PyMuPDF или внешние сервисы через API
.docx, .xlsx → через python-docx, openpyxl
Email → через IMAP + email.message или API

В итоге все данные нормализуются и записываются в хранилище.
Создание векторного индекса на базе DeepSeek.

Мы получили данные на беке, обработали и положили все в хранилище. Теперь нам нужно сделать векторное представление данных для семантического поиска и чтобы менеджер получил ответ на свой запрос. Для этого нам нужно:

1. Получить Embedding-репрезентации документов
Что такое Embedding?
Это вектор (набор чисел), который отражает смысл текста. Похожие по смыслу документы будут иметь близкие вектора.

Инструменты:
  • Если есть доступ к DeepSeek Embedding API — используем его напрямую
  • Альтернатива: sentence-transformers или bge-m3 для локальных задач
Пример (Python):
from transformers import AutoTokenizer, AutoModel
import torch

model = AutoModel.from_pretrained("deepseek-ai/deepseek-embedding")
tokenizer = AutoTokenizer.from_pretrained("deepseek-ai/deepseek-embedding")

def embed_text(text):
    inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True)
    with torch.no_grad():
        embeddings = model(**inputs).last_hidden_state.mean(dim=1)
    return embeddings.squeeze().numpy()
Разбиваем каждый документ на фрагменты (например, по 500 токенов) и сохраняем пары:
{
  "client": "НПО Энергия",
  "chunk_id": 1,
  "text": "В марте 2023 клиент запросил перенос сроков поставки...",
  "embedding": [0.123, 0.456, ...]
}
2. Сохранить embedding-и в векторную БД

Рекомендовано NWIRE:
  • Qdrant — легко поднимается через Docker, есть API
  • Хостим в Яндекс Cloud, Selectel, или локально
Пример добавления данных:
import qdrant_client
client = qdrant_client.QdrantClient(host="localhost", port=6333)

client.upsert(
  collection_name="client_docs",
  points=[
    {
      "id": 1,
      "vector": [...],
      "payload": {"client": "НПО Энергия", "chunk_id": 1, "text": "..."}
    }
  ]
)
3. Пользователь создает запрос через веб портал на базе appliner или JS.
Фронтенд отправляет POST-запрос на бэкенд. Например "Были ли споры с клиентом НПО Энергия?"

4. Преобразуем вопрос в embedding и ищем похожие документы на стороне нашего собственого бека.
question_embedding = embed_text("Были ли споры с клиентом НПО Энергия?")

results = client.search(
  collection_name="client_docs",
  query_vector=question_embedding,
  limit=5
)

context = "\n\n".join([r.payload["text"] for r in results])
5. Используем LLM (DeepSeek Chat или аналог) для генерации ответа

На этом этапе мы создаем promt (запрос) в ИИ. Т.е. на предыдущем шаге мы получили запрос из фронта, нашли всю релевантную информацию по этому запросу и теперь нам нужно передать запрос вместе с с этой информацией в ИИ и попросить сгенерировать ответ. Запрос в модель (через DeepSeek API или локальный запуск):
prompt = f"""
На основе следующего контекста, ответь на вопрос:
Вопрос: {user_question}

Контекст:
{context}

Ответ:
"""

response = deepseek_chat_api(prompt)
return response["answer"]
6. Отправляем ответ обратно в веб-интерфейс

Фронтенд получает финальный ответ и отображает его менеджеру, который видит что-то подобное:

Да, был спор в марте 2023 года по срокам поставки. Посмотри ДС №3 к Договору N1172367.
  • Хотите повысить эффективность своего отдела продаж с помощью ИИ? Заполняйте форму ниже и мы будем рады обсудить детали реализации.