# Сохранение в Qdrant (шаг 7)

Сохранение вектора эмбеддинга (шаг 6) и метаданных в коллекцию `chapter_analyses`. Метаданные главы/книги (book_id, chapter_id, chapter_number, chapter_title, book_title, author) берутся из merged JSON — они попадают туда на шаге 5 при мерже с `--input-chapter` (входной JSON этапа 1).

## Вход

- **merged JSON** (шаг 5): теги, анализ и метаданные главы/книги (book_id, chapter_id, chapter_number, chapter_title, book_title, author). Должны быть подмешаны при мерже через `--input-chapter` (вход этапа 1).
- **Вектор** (шаг 6): файл с JSON-массивом чисел или stdin.
- Опционально: `--validation-score`.

## Выход

Одна точка в коллекции Qdrant: id = `chapter_id`, vector = эмбеддинг, payload = bookId, chapterId, chapterNumber, chapterTitle, validationScore, tags, title, author (по схеме ARCHITECTURE_SUMMARY).

## Использование

Вектор — JSON-массив чисел из шага 6: файл `embedding.json` (Ollama, `run_embed_ollama.py`) или `vector.json` / любой другой файл с массивом, либо stdin.

```bash
# Вектор из файла (merged должен содержать book_id, chapter_id, chapter_number, chapter_title из шага 5 с --input-chapter)
# Вариант 1: после run_embed_ollama.py (шаг 6 через Ollama)
python3 save_to_qdrant.py 5_мерж_анализа_и_тегов/merged_with_tags.json 6_генерация_эмбеддингов/embedding.json [--validation-score 0.95]

# Вариант 2: вектор в любом файле (например vector.json)
python3 save_to_qdrant.py merged_with_tags.json vector.json [--validation-score 0.95]

# Вектор из stdin (пайплайн с шагом 6 через embed_cli.py)
python3 6_генерация_эмбеддингов/embed_cli.py merged_with_tags.json model_name \
  | python3 7_сохранение_qdrant/save_to_qdrant.py merged_with_tags.json -
```

## Переменные окружения

| Переменная | По умолчанию | Описание |
|------------|--------------|----------|
| `QDRANT_URL` | `http://localhost:6333` | URL Qdrant |
| `QDRANT_COLLECTION_CHAPTER_ANALYSES` | `chapter_analyses` | Имя коллекции |

В Docker используйте `QDRANT_URL=http://qdrant:6333`.
