init
This commit is contained in:
45
8_сохранение_postgres/README.md
Normal file
45
8_сохранение_postgres/README.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# Сохранение в Postgres (шаг 8)
|
||||
|
||||
Сохранение анализа главы и тегов в реляционную БД: книга, глава, запись в `chapter_analyses`, теги в `tags`, связи в `chapter_tags`. Вход — merged JSON (шаг 5) с метаданными из этапа 1.
|
||||
|
||||
## Схема
|
||||
|
||||
Перед первым запуском применить схему:
|
||||
|
||||
```bash
|
||||
psql -h localhost -U n8n -d n8n -f schema.sql
|
||||
# или через docker: docker exec -i postgres psql -U n8n -d n8n < 8_сохранение_postgres/schema.sql
|
||||
```
|
||||
|
||||
Таблицы: `books`, `chapters`, `chapter_analyses`, `tags`, `chapter_tags` (см. ARCHITECTURE_SUMMARY.md).
|
||||
|
||||
## Вход
|
||||
|
||||
- **merged JSON** (шаг 5): book_id, chapter_id, chapter_number, chapter_title, book_title, author, framework, insights, application, limitations, tags. Метаданные должны быть подмешаны через `--input-chapter` на шаге 5.
|
||||
|
||||
## Действия
|
||||
|
||||
1. Upsert книги (books) по book_id.
|
||||
2. Upsert главы (chapters) по chapter_id.
|
||||
3. Insert/update анализа в chapter_analyses (analysis_result = framework + insights + application + limitations).
|
||||
4. Get-or-create тегов в tags (name, category); связи в chapter_tags (chapter_id, tag_id, confidence, validated, source='ai_validation').
|
||||
|
||||
## Использование
|
||||
|
||||
```bash
|
||||
pip install -r requirements.txt # один раз
|
||||
python3 save_to_postgres.py 5_мерж_анализа_и_тегов/merged_with_tags.json [--validation-score 0.95]
|
||||
```
|
||||
|
||||
## Переменные окружения
|
||||
|
||||
| Переменная | По умолчанию | Описание |
|
||||
|------------|--------------|----------|
|
||||
| `DATABASE_URL` | — | Полный URL (postgresql://user:pass@host:port/dbname). Если задан, остальные игнорируются. |
|
||||
| `POSTGRES_HOST` | localhost | Хост Postgres |
|
||||
| `POSTGRES_PORT` | 5432 | Порт |
|
||||
| `POSTGRES_USER` | n8n | Пользователь |
|
||||
| `POSTGRES_PASSWORD` | n8n_password | Пароль |
|
||||
| `POSTGRES_DB` | n8n | Имя БД |
|
||||
|
||||
В Docker используйте `POSTGRES_HOST=postgres` (имя сервиса).
|
||||
Reference in New Issue
Block a user