Как работает поиск по документации?
Поговорим о следующей задаче: вы в чате задаете ассистенту вопрос, на который он точно не знает ответ (его не было в данных, на которых обучалась модель). Но все же ассистент вам отвечает и отвечает правильно. Как это работает?
Допустим, мы хотим задать следующий вопрос
Привет, как дела? Мне тут задачу задали, помоги. Расскажи, что такое sage?Есть такая observability платформа Sage, о ней и спрашиваем. Если спросить об этом модель, то получим
…
Sage — это система компьютерной алгебры (CAS) с открытым исходным кодом, предназначенная для выполнения …Чтобы модель знала про нужную нам систему — будем подкладывать ей необходимую информацию перед отправкой. Для этого используем RAG (Retrieval-Augmented Generation) технику.
Для начала перефразируем вопрос и уберем лишнюю информацию. Это можно сделать следующим запросом в любую модель
Выдели суть вопроса и перефразируй. Оставь только самое важное. В ответ отправь только текст перефразированного вопроса
"Привет, как дела? Мне тут задачу задали, помоги. Расскажи, что такое sage?"Получим в ответ
Что такое Sage?Теперь давайте подсунем модели в контекст нужную информацию. Это можно сделать с помощью векторного поиска. Для начала мы берем всю нашу документацию (по которой хотим отвечать на вопросы)
- нарезаем на кусочки (отдельные смысловые блоки)
- делаем summary этих кусочков (выделяем суть)
- эти summary индексируем (строим по ним смысловые векторы — эмбеддинги)
Теперь, когда документация подготовлена, мы можем построить смысловой вектор по нашему перефразированному вопросу «Что такое Sage?» и найти ближайшие к нему вектора среди проиндексированных summary. Например, для этого вопроса нашлось в нашей документации три summary (которые были ближе всего в смысле расстояния). Добавим их (уже сами тексты, к которым относилось summary) к исходному вопросу. И отправим это все в модель
## Полезные источники
Sage — это решение для real-time аналитики и мониторинга процессов / приложений / инфраструктуры на основе запросов к машинным данным – логам и метрикам.
В двух словах принцип работы можно описать так: есть сервер Sage, который хранит, …
Текст 3 …
## Вопрос
Привет, как дела? Мне тут задачу задали, помоги. Расскажи, что такое sage?И получим
Привет! Sage — это мощное решение для real-time аналитики и мониторинга процессов, приложений и инфраструктуры. Оно работает с машинными данными, такими как логи и метрики, и позволяет выполнять к ним запросы в реальном времени.
Основные особенности Sage:
- Сбор данных: собирает логи и метрики из различных источников.
- Хранение: данные хранятся на сервере Sage.
- Анализ в реальном времени: позволяет выполнять запросы к данным и получать результаты практически мгновенно.
- Мониторинг: используется для отслеживания состояния систем, выявления аномалий и устранения неполадок.
Где применяется?
- Мониторинг производительности приложений
- Анализ логов серверов, контейнеров, микросервисов
- Выявление ошибок и инцидентов в инфраструктуре
- Построение дашбордов и алертинг
Если тебе нужно больше деталей — уточни, что именно интересует!Чем лучше мы подготовим индекс, тем более релевантный контекст уйдет в модель. Это и есть очень упрощенная схема того, как можно делать векторный поиск по своей базе знаний. Чуть подробней про этот кейс я рассказывал в своем выступлении на Platform Engineering Night.