Настройка семантического поиска и реализации RAG на базе Weaviate
Кратко о проекте:
Система self-hosted, все данные и вычисления — на серверах заказчика, без внешних API.
Существуют отдельные пайплайны загрузки документов и хранения метаданных.
Что нужно сделать:
Обработка документов:
— Извлекать текст из документов, разбивать его на смысловые фрагменты (чанки).
— Генерировать эмбеддинги для каждого чанка с помощью локальных моделей.
— Сохранять векторные представления в Weaviate, а метаинформацию о чанках (ID документа, абзац, привязка к странице wiki и т.п.) — в БД.
Реализация поиска:
— При запросе выполнять поиск релевантных чанков в Weaviate.
— Возвращать для генерации ответа не только текст, но и ссылку/ID на исходный документ или конкретный абзац.
Сборка ответа (RAG):
— Использовать LangChain (или альтернативу) для построения финального ответа на основе найденных чанков.
— Ответ должен включать краткое цитирование первоисточника с точной ссылкой на источник.
Оптимизация:
— Подобрать оптимальную модель эмбеддингов (локальную) и параметры поиска.
Стек и окружение:
- Python
- Weaviate
- LangChain или аналог для RAG
- sentence-transformers или другая локальная модель эмбеддингов
Что ждем на выходе:
- Документация по установке и настройке ML-модуля
- Примеры запросов к модулю и формат ответов
- Конфигуратор для выбора или дообучения локальных моделей эмбеддингов