36 lines
3.3 KiB
Markdown
36 lines
3.3 KiB
Markdown
# Генерация эмбеддингов (шаг 6)
|
||
|
||
Отдельный шаг пайплайна после мержа анализа и тегов (шаг 5). В вектор превращается **валидированный анализ главы** (каркас, инсайты, применение), а не сырой текст — поиск идёт по смыслу, а не по формулировкам.
|
||
|
||
## Модель
|
||
|
||
- **По умолчанию:** **BAAI/bge-m3** (bge-m3). Мультиязычная модель, хорошая поддержка русского; размерность вектора **1024**, лимит контекста **8192 токенов** — полный анализ главы обычно укладывается без обрезки. Размер ~1.2GB, ~5–15 сек на главу.
|
||
- **Лимит входа:** 8192 токенов (bge-m3). При превышении — стратегия из `embed_input_spec.txt` (truncation или chunk + агрегация).
|
||
- **Альтернативы:** nomic-embed-text, evilfreelancer/enbeddrus (для более лёгкого режима). Модель задаётся конфигом; при смене — пересоздание коллекций Qdrant (размерность 1024 для bge-m3).
|
||
|
||
## Вход
|
||
|
||
Выход шага 5 (мерж): валидированный анализ главы (framework, insights, application) — сериализуется в текст по спецификации `embed_input_spec.txt`. Теги в вектор не входят; они хранятся в payload Qdrant для фильтрации.
|
||
|
||
## Выход
|
||
|
||
Вектор эмбеддинга фиксированной размерности (**1024** для bge-m3). Сохраняется в Qdrant в коллекции `chapter_analyses` (коллекция создаётся с size=1024) вместе с payload (book_id, chapter_id, validation_score, tags и т.д.).
|
||
|
||
## Спецификация входа
|
||
|
||
| Файл | Назначение |
|
||
|-----------------------|----------------------------------------------------------------------------|
|
||
| embed_input_spec.txt | Рецепт построения текста для эмбеддинга: какие поля, порядок, приоритет при truncation |
|
||
|
||
## Подстановки при построении текста
|
||
|
||
- `{framework}` — сериализованный блок framework (принципы, terms, chains)
|
||
- `{insights}` — сериализованный блок insights
|
||
- `{application}` — сериализованный блок application
|
||
|
||
Ограничения и limitations в эмбеддинг по умолчанию не включаются (опционально — в конфиге). Теги — только в payload, не в тексте для эмбеддинга.
|
||
|
||
## Использование
|
||
|
||
Вызывается после шага 5 (мерж анализа и тегов). Модель задаётся конфигом (env/конфиг); смена модели не меняет формат хранения в Qdrant, при смене — пересчёт эмбеддингов по необходимости.
|