Как правило, большие компании работают с широким ассортиментом продуктов. Чтобы им управлять, используются системы учёта. Они помогают отслеживать продукт на всех этапах жизненного цикла — от производства до продажи.
Неотъемлемая часть управления продуктами — это анализ конкурентов. Он помогает понять, какие функции и возможности есть на рынке, какие из них популярны и востребованы пользователями. Одна из главных проблем этого процесса — анализировать конкурентов приходится вручную. Это занимает много времени и сил, которые можно использовать более эффективно.
Меня зовут Денис Маматин, я работаю в отделе R&D СберТеха. Наша команда занимается разработкой и тестированием новых технологий. В этой статье я расскажу, как мы (Олег Мальцев @o-maltsev, Дмитрий Малькевич @mkery и я @kusakabe) придумали решение, которое позволит компаниям искать и анализировать конкурентов в автоматическом режиме и разрабатывать стратегии для улучшения продуктов и услуг. Поделюсь, как мы реализовали эту идею с помощью LLM (Large Language Model) GigaChat, и приведу примеры использования этого сервиса в нашем проекте.
Автоматизация сбора информации о конкурентах
Иногда при автоматизации процессов возникают проблемы, связанные с получением данных и извлечением информации из них. В результате исследования мы столкнулись со следующими вопросами:
Как находить конкурентов продукта и информацию о них?
Как находить и формировать поле для карточки конкурента — документа, который содержит данные о конкурентах: название компании, логотип, контактную информацию, адрес сайта, описание продуктов или услуг, целевую аудиторию, ценовую политику?
Первый вопрос решается просто. Делаем запрос в поисковой движок по интересующему продукту и собираем тексты с нужного количества ссылок. Этот процесс сбора данных из интернета называется парсингом.
Для генерации поля карточки конкурента кажется логичным использовать LLM. Мы взяли GigaChat — нейросетевую модель Сбера. Но среди собранных из интернета данных попадается много мусора, который затрудняет анализ и извлечение нужной информации. А нам хотелось бы использовать только информативные тексты. Такие тексты отбираются с помощью retrieval — способа получения релевантных документов по определенному запросу. А метод генерации информации по отобранным документам с использованием LLM называется retrieval‑augmented generation (RAG).
Таким образом, наш алгоритм сбора информации о конкурентах выглядит так:
собираем информацию о внутреннем продукте из локальной системы продуктового учета;
формируем запрос в Google для поиска конкурентов;
парсим результаты поисковой выдачи;
достаем имена конкурентов, используя RAG;
собираем карточку каждого конкурента подобным образом (шаги 2-4).
![](https://habrastorage.org/getpro/habr/upload_files/f48/8d6/413/f488d64135415bdbbe1c71787e745e18.png)
RAG, или при чём тут GigaChat
LLM, такие как GigaChat или СhatGPT, обучаются на огромных объёмах данных. Это позволяет им генерировать текст, близкий к написанному человеком. Однако при попытке получить ответ на запрос по теме, не встречающейся в тренировочной выборке, мы получаем вымышленный ответ.
Можно попробовать дообучить модель, но это довольно бессмысленно: скрейпер — программа для автоматического извлечения данных с веб-страниц — каждый раз собирает разные данные. Для такой ситуации и подходит RAG. RAG — альтернативный способ передачи новой информации в LLM. Запрос в LLM формируется на основе отобранных текстов из базы документов. Подробнее об этом можно почитать тут.
В нашем случае из текстов, полученных при парсинге, формируется набор документов. Во время запроса производится векторный поиск по базе документов и выбираются ближайшие, на основе которых дальше запускаем семантическое ранжирование. Основной инструмент, который мы использовали для этого этапа, — chromadb.
Отобранные тексты и запрос отправляются в LLM для генерации поля карточки. В качестве LLM протестировали open source модели Vicuna-13b и LLama-13b, но лучший результат получили с помощью GigaChat Pro.
Для сравнения сгенерировали карточки каждой моделью. Далее проверяли, соответствуют ли данные из карточки реальному значению. Результаты показали, что ответы Vicuna и LLama близки к ожидаемому результату лишь в 10 случаях из 47. Тогда как GigaChat приводит правильные ответы в 35 случаях из 47.
Для работы с LLM GigaChat мы использовали GigaChain (SDK) — форк библиотеки LangChain, который адаптирован для работы с русским языком с поддержкой GigaChat API. Примеры применения RAG можно посмотреть здесь.
Что получилось в итоге
Наше решение позволяет искать информацию о конкурентах и формировать карточки с их данными в автоматическом режиме при помощи нейросетевой модели GigaChat. Мы уже достигли достойных результатов качества, но впереди еще много работы по улучшению и расширению полей карточек конкурентов. В качестве примера покажу пару подобных сгенерированных демо-карточек.
Redis
1. Имя | Redis |
---|---|
2. Короткое описание | Redis — это хранилище структур данных в памяти с открытым исходным кодом, которое используется в качестве базы данных «ключ-значение», кэша и брокера сообщений. Оно обладает высокой скоростью работы и может быть использовано в различных сценариях, включая no-code/low-code платформы. |
3. Длинное описание | Redis (Remote Dictionary Server) — это хранилище структур данных в памяти с открытым исходным кодом, используемое в качестве базы данных «ключ-значение», кэша и брокера сообщений. Оно обеспечивает высокую скорость вычислений и гибкие структуры данных, что делает его мощным инструментом для разработки приложений. Redis обладает высокой масштабируемостью и способен поддерживать крупномасштабные приложения. Он также отличается от традиционных реляционных баз данных своей функциональностью Pub/Sub и возможностью работы в режиме in-memory. Redis повышает ценность платформ no-code/low-code, предоставляя быстрый доступ к данным и упрощая процесс разработки. |
4. Производитель | У Redis нет конкретного производителя, так как это проект с открытым исходным кодом, над которым работает сообщество разработчиков. |
5. Технологический стек | Redis разработан на языке программирования Си (C). |
6. Актуальная версия | Последняя актуальная версия Redis — 6.2.6. Однако стоит учесть, что версии программного обеспечения могут меняться, поэтому всегда рекомендуется проверять наличие обновлений на официальном сайте продукта или в соответствующем репозитории. |
7. Назначение | Redis используется для кэширования и хранения данных. Он также может быть использован для очередей сообщений и других задач. |
8. Сильные стороны | Сильные стороны Redis делают его популярным выбором для управления данными в веб-разработке и других отраслях. Некоторые из его ключевых особенностей и преимуществ: 1. Молниеносная производительность: Redis работает как хранилище данных в памяти, что обеспечивает чрезвычайно быстрые операции чтения и записи, обычно в диапазоне менее миллисекунды. Это делает его идеальным выбором для 2. Поддержка различных типов данных: Redis поддерживает различные типы данных, включая строки, списки, наборы, хеш-таблицы и упорядоченные наборы, что делает его гибким и мощным инструментом для обработки и хранения различных типов данных. 3. Масштабируемость: Redis обладает высокой масштабируемостью и способен поддерживать крупномасштабные приложения. Он также поддерживает репликацию данных и кластеризацию для обеспечения высокой доступности и отказоустойчивости. 4. Функциональность Pub/Sub: Redis предоставляет функциональность Pub/Sub, которая позволяет эффективно обрабатывать события и сообщения в реальном времени. Это делает его идеальным для приложений, требующих обработки большого количества событий или сообщений. 5. Простота использования: у Redis простой и понятный синтаксис, что делает его легким в освоении и использовании. Он также предоставляет множество инструментов и библиотек для работы с различными языками программирования. 6. Открытый исходный код: Redis — это проект с открытым исходным кодом. Это означает, что он доступен для всех и может быть свободно использован и модифицирован. Это также способствует его популярности и поддержке сообщества. В целом, Redis предлагает высокую производительность, гибкость и масштабируемость, что делает его мощным инструментом для управления данными в различных сценариях. |
9. Совместимые продукты | Redis — это система управления базами данных, которая широко используется в разработке программного обеспечения. С ней совместимо множество продуктов: 1. Caché — система управления базами данных, которая может быть использована вместе с Redis для кэширования данных. 2. CouchDB — система управления базами данных, которая может быть использована вместе с Redis для хранения данных. 3. IMS — система управления базами данных, которая может быть использована вместе с Redis для обработки транзакций. 4. DB2 — система управления базами данных, которая может быть использована вместе с Redis для хранения и обработки данных. 5. Firebird — система управления базами данных, которая может быть использована вместе с Redis для хранения и обработки данных. 6. FoundationDB — система управления базами данных, которая может быть использована вместе с Redis для хранения и обработки данных. 7. Informix — система управления базами данных, которая может быть использована вместе с Redis для хранения и обработки данных. 8. Ingres — система управления базами данных, которая может быть использована вместе с Redis для хранения и обработки данных. 9. Interbase — система управления базами данных, которая может быть использована вместе с Redis для хранения и обработки данных. 10. MS SQL Server — система управления базами данных, которая может быть использована вместе с Redis для хранения и обработки данных. 11. MongoDB — система управления базами данных, которая может быть использована вместе с Redis для хранения и обработки данных. 12. MySQL — система управления базами данных, которая может быть использована вместе с Redis для хранения и обработки данных. 13. Neo4j — система управления базами данных, которая может быть использована вместе с Redis для хранения и обработки данных. 14. Oracle Database — система управления базами данных, которая может быть использована вместе с Redis для хранения и обработки данных. 15. PostgreSQL — система управления базами данных, которая может быть использована вместе с Redis для хранения и обработки данных. 16. Sybase ASE — система управления базами данных, которая может быть использована вместе с Redis для хранения и обработки данных. 17. Teradata Database — система управления базами данных, которая может быть использована вместе с Redis для хранения и обработки данных. 18. Yandex Database — система управления базами данных, которая может быть использована вместе с Redis для хранения и обработки данных. Это лишь некоторые из совместимых с Redis продуктов. Существует множество других систем управления базами данных, которые могут быть использованы вместе с Redis в зависимости от конкретных потребностей и требований проекта. |
10. Сайт | Официальный сайт проекта. Здесь вы можете найти подробную информацию о Redis, документацию, руководства, примеры кода, а также скачать последнюю версию продукта. Сайт поддерживает и обновляет команда разработчиков Redis. |
11. Документация | Сайт документации Redis. Там вы найдете подробную информацию о Redis, его командах, возможностях и настройках. |
Microsoft SQL Server
1. Имя | Microsoft SQL Server |
---|---|
2. Короткое описание | Microsoft SQL Server — это система управления базами данных, разработанная компанией Microsoft. Она предоставляет инструменты для хранения, обработки и анализа данных. SQL Server широко используется в различных отраслях, включая информационные технологии, финансы, здравоохранение и розничную торговлю. |
3. Длинное описание | Microsoft SQL Server — это система управления базами данных, разработанная компанией Microsoft. Она предоставляет мощные инструменты для создания, управления и обработки баз данных. SQL Server позволяет хранить и обрабатывать большие объемы данных, обеспечивая высокую производительность и надежность. Одна из ключевых особенностей SQL Server — способность работать с различными типами данных, включая текстовые, числовые, временные и бинарные данные. Система также поддерживает различные типы индексов и позволяет создавать SQL Server также предоставляет широкий спектр инструментов для обеспечения безопасности данных, включая аутентификацию пользователей, шифрование данных и управление доступом к базам данных. Кроме того, SQL Server поддерживает работу в режиме реального времени, что позволяет обрабатывать данные в режиме онлайн. Это особенно полезно для приложений, которые требуют быстрой обработки данных, таких как интернет-магазины или системы управления контентом. В целом, Microsoft SQL Server — это мощная и надежная система управления базами данных, которая может быть использована для решения широкого спектра задач в области обработки и хранения данных. |
4. Производитель | Производитель Microsoft SQL Server — компания Microsoft. |
5. Технологический стек | Microsoft SQL Server разработан на основе технологии реляционных баз данных и использует язык запросов Transact-SQL — реализацию стандарта ANSI/ISO SQL с расширениями. Transact-SQL предоставляет возможность создавать, изменять и удалять данные, а также выполнять сложные запросы к базе данных. Кроме того, Microsoft SQL Server использует различные технологии для обеспечения высокой производительности, масштабируемости и надежности, такие как механизм управления транзакциями, кеширование данных, репликация и т. д. |
6. Актуальная версия | Последняя актуальная версия Microsoft SQL Server — 2019. Выбор версии SQL Server зависит от ваших потребностей и совместимости с другими системами. |
7. Назначение | Microsoft SQL Server — это система управления базами данных (СУБД), разработанная компанией Microsoft. Она предоставляет широкий спектр функциональности, включая: 1. Хранение и управление данными: 2. Обработка запросов: 3. Транзакции: 4. Безопасность: 5. Резервное копирование и восстановление: 6. Администрирование: 7. Расширяемость: 8. Интеграция с другими продуктами Microsoft: Это лишь некоторые из основных функций SQL Server. Конкретные возможности могут варьироваться в зависимости от версии и конфигурации системы. |
8. Сильные стороны | У Microsoft SQL Server несколько сильных сторон,которые ценят компании и разработчики. Одна из них — отказоустойчивость. SQL Server позволяет создавать кластеры серверов, которые будут работать с одним экземпляром СУБД. Если какая-то машина выйдет из строя, ее |
9. Совместимые продукты | С Microsoft SQL Server совместима линейка совместных продуктов 1С и Microsoft, включая 1С:Предприятие 8 и Microsoft SQL Server. Более подробную информацию о конкретных продуктах и их совместимости с Microsoft SQL Server можно найти на сайте 1С или Microsoft. |
10.Сайт | На официальном сайте Microsoft вы можете найти информацию о продукте, скачать его, а также получить поддержку и помощь. Для получения более конкретной информации о Microsoft SQL Server рекомендуется посетить официальный сайт. |
11. Документация | Сайт документации Microsoft SQL Server. Здесь вы найдете подробную техническую документацию, руководства, обучающие материалы и ресурсы для работы с SQL Server. |