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-приложений, которые понимают и запрос, и структуру данных. Поскольку проект ещё в бета‑версии, реальная эффективность будет зависеть от практического использования.