Elysia: переосмысление agentic RAG через деревья решений и умную подачу данных
Почему большинство RAG-систем не работают как надо
Если вы пытались создать agentic RAG-систему, которая стабильно отвечает на реальные вопросы, вы знаете, как это бывает неприятно. Типичные решения переводят запрос в векторы, достают «похожие» куски текста и надеются, что модель соберёт осмысленный ответ. В итоге часто получаются нерелевантные отрывки, галлюцинации или игнорирование структуры данных.
Elysia — это open-source фреймворк на Python от Weaviate, который предлагает иной подход. Вместо того чтобы просто добавить больше «универсального» интеллекта, он меняет способ взаимодействия агента с данными: управляемые деревья решений, адаптивная презентация данных и предварительное понимание структуры хранилища.
Примечание: требуется Python 3.12
Три ключевые идеи Elysia
1) Деревья решений для поведения агента
Вместо того, чтобы давать агенту доступ ко всем инструментам сразу, Elysia оформляет логику в явные узлы. Эти узлы формируют направленный флоучарт: каждый узел хранит контекст, варианты и причины выбора следующего шага. Это делает путь агента прозрачным — можно увидеть, какой маршрут выбран и где возникла ошибка.
Практическое улучшение — ‘impossible flag’: когда агент понимает, что задача невозможна (например, поиск цен на автомобили в базе косметики), он помечает это и прекращает дальнейные ненужные попытки.
2) Умное отображение источников данных
Elysia сначала анализирует структуру данных — поля, типы, связи — и выбирает подходящий шаблон представления. Вместо бессмысленных абзацев фреймворк может рендерить карточки товаров для e‑commerce, оформление тикетов для GitHub-issues или реальные таблицы для электронных таблиц. Ответы становятся понятнее и точнее отражают структуру данных.
3) Экспертиза данных перед поиском
Перед поиском Elysia анализирует коллекцию: какие поля есть, диапазоны значений, связи между объектами и какие запросы имеют смысл. Она может суммировать коллекции, генерировать метаданные и выбирать формат отображения на основе этого анализа. Такой предварительный анализ помогает находить и показывать факты, а не шумные фрагменты текста.
Как Elysia улучшает результаты
Обучение на обратной связи
Elysia использует пользовательскую обратную связь для улучшения ответов, но делает это локализованно — фидбек одного пользователя не искажает результаты других. Это позволяет применять меньшие, дешёвые модели и всё равно улучшать качество на основе реальных успешных примеров.
Чанкование по требованию
Вместо предварительного разбиения всех документов (что требует места и создаёт нелогичные разрывы) Elysia сначала ищет по полным документам и разбивает их только при необходимости. Решения о чанковании принимаются исходя из запроса пользователя, что экономит хранилище и улучшает релевантность извлечения.
Роутинг моделей по сложности
Разные задачи требуют разных моделей. Простые вопросы не нуждаются в GPT-4, а сложный анализ не станет лучше от микромоделей. Elysia автоматически направляет задачи к подходящим моделям по сложности, экономя деньги и улучшая скорость.
Быстрый старт
Установка простая:
pip install elysia-ai
elysia start
Это запускает веб-интерфейс и Python-фреймворк.
Пример для разработчиков, которые хотят добавить свои инструменты:
from elysia import tool, Tree
tree = Tree()
@tool(tree=tree)
async def add(x: int, y: int) -> int:
return x + y
tree("What is the sum of 9009 and 6006?")
Если у вас есть данные в Weaviate, использование ещё проще:
import elysia
tree = elysia.Tree()
response, objects = tree(
"What are the 10 most expensive items in the Ecommerce collection?",
collection_names = ["Ecommerce"]
)
Пример в реальном мире: чат-бот Glowe
Платформа Glowe для ухода за кожей использует Elysia для сложных рекомендаций по продуктам. Пользователь может спросить: ‘What products work well with retinol but won’t irritate sensitive skin?’, и система учитывает взаимодействия ингредиентов, предпочтения пользователя и доступность товаров. Это не просто поиск по ключевым словам — это понимание связей между ингредиентами, историей пользователя и характеристиками продуктов.
Где применяется Elysia
Elysia — попытка Weaviate выйти за рамки классической схемы ask-retrieve-generate, объединив деревья решений, адаптивную подачу данных и обучение на обратной связи. Фреймворк даёт основу для создания более сложных RAG-приложений, которые понимают и запрос, и структуру данных. Поскольку проект ещё в бета‑версии, реальная эффективность будет зависеть от практического использования.