top of page
Search

Semantic Search для CRM: как мы построили векторный поиск на Azure OpenAI и Qdrant

  • Writer: Sarov+
    Sarov+
  • 4 days ago
  • 3 min read

Поиск в CRM — одна из тех вещей, которые кажутся очевидными, пока не начинаешь с ними работать вплотную. Стандартный keyword-поиск находит только то, что написано буква в букву, но совершенно не понимает смысл запроса. Мы решили это изменить и построили систему Semantic Search на базе DRAZI, Azure OpenAI и Qdrant — векторной базы данных, которая ищет не по словам, а по содержанию. В этой статье делимся архитектурой, проблемами, с которыми столкнулись, и выводами, которые из этого вынесли.

 

А узнать больше можно в нашем видео: 

 

Почему обычный поиск в CRM не справляется

 

Главная проблема стандартного CRM-поиска — он работает по ключевым словам и не понимает контекст. Если пользователь формулирует запрос иначе, чем записано в базе, система просто не находит нужный результат. Нам была нужна принципиально другая логика: поиск, который ранжирует результаты по смысловой близости, а не фильтрует по точному совпадению слов.

Архитектура решения

Идея была простой: взять данные из CRM, преобразовать их в векторное представление и использовать его для смыслового поиска. Пайплайн выглядит следующим образом:

данные из Dataverse → обработка как Stream → генерация Embeddings через Azure OpenAI → сохранение в Qdrant → запросы через Power Automate или любую другую интеграцию.

Таким образом получился полный цикл от сырых данных до AI-поиска в реальном времени.

 

Инфраструктура и компоненты

 

Для развёртывания системы была поднята Azure-виртуальная машина на Ubuntu. На ней установили Docker и развернули Kubernetes через K3S. DRAZI работает внутри кластера, а Qdrant вынесен отдельно как Docker-контейнер с открытыми портами 6333 и 6334 — это позволило обращаться к векторной базе напрямую через API извне.

Важный момент по безопасности: несмотря на то что база стала публично доступной, подключиться к ней может только тот IP-адрес, который зарегистрирован на уровне виртуальной машины. Это базовый, но рабочий уровень защиты.

 

Настройка пайплайна

 

Настройка состояла из нескольких шагов. Сначала был создан source-коннектор к Dataverse, затем настроен Continuous Query, который извлекает нужные поля из таблиц. После этого добавили Reaction — она генерирует embeddings и записывает их в Qdrant. В результате данные начали синхронизироваться автоматически без ручного вмешательства.

 

Проблемы и как мы их решали

 

  • Qdrant недоступен снаружи. Изначально Qdrant находился внутри Kubernetes-кластера, и Power Automate не мог до него достучаться. Решение оказалось простым: вынесли Qdrant в отдельный Docker-контейнер и открыли порты на VM.

  • Лимиты на обработку данных. В таблице было около 17 000 записей, и при попытке синхронизировать их все сразу мы упёрлись в ограничения подписки Embedding-модели. Поскольку основная цель была протестировать сам подход, мы просто почистили тестовые данные и продолжили работу с меньшим объёмом.

  • Некорректные коллекции в Qdrant. В процессе экспериментов и перезапусков Qdrant создавал пустые коллекции, которые давали некорректные результаты поиска. Чтобы получить чистое состояние системы, пришлось полностью очистить коллекции и перезапустить всё с нуля — после этого всё заработало корректно.

 

Результат

 

После устранения всех проблем система заработала в полном объёме: около 300 записей успешно проиндексированы, embeddings сгенерированы, Semantic Search возвращает релевантные результаты. База данных доступна извне и готова к использованию в Power Automate и других интеграциях.

 

Заключение

 

Построить Semantic Search для CRM реально — и это не так сложно, как кажется на старте. Главное, что мы вынесли из этого опыта: нужно контролировать объём данных и учитывать лимиты подписки на Embedding-модель ещё на этапе планирования. И важно помнить, что Vector Search — это не улучшенный keyword-поиск, а принципиально другой подход: он не фильтрует результаты, а ранжирует их по смысловой близости. Именно это делает его по-настоящему полезным инструментом для работы с данными CRM.

 
 
 

Comments


Power Platform logo

Подписывайся на наши ресурсы.

  • Telegram
  • LinkedIn
  • Facebook
  • Twitter
  • YouTube
  • Instagram

© 2035 by The Pop Show. Powered and secured by Wix

bottom of page