1. Введение
Выгрузка для ИИ (JSON)EE DataCollector API сочетает асинхронный контур расчётов портрета/прогноза/Synthesis++, opt-in portrait-only structural export и синхронный hourly-endpoint для geocentric-прогноза Луны. Архитектура разделяет SubjectContext и TemporalContext.
# 1. Введение
2.3.4
2026-09-30
# Ключевые изменения
Сохранён асинхронный контур `create_task -> worker -> get_result` для тяжёлых составных расчётов.
Добавлен новый синхронный `GET /get_hourly_forecast` для почасового прогноза Луны и планет на локальные сутки.
Hourly-endpoint возвращает geocentric-позиции, независимый угловой `tithi`, локальный `lunar_day` по новолуниям/Moon rise, nullable `is_satanic` и окно `void of course`.
Во всех lunar payload добавлен `phase_direction`: waxing, waning, boundary или null. Он вычисляется только из `phase_angle`; legacy `phase_name` сохранён без изменения.
Для hourly-endpoint добавлен двухуровневый кэш: batch-cache эфемерид и result-cache по `date + lat + lng + timezone`.
Канонический слой Synthesis++ и export_result продолжают работать без изменения контракта.
Добавлен additive opt-in structural export: create_task с response.structural_export=portrait_structural_v3 и чтение через get_structural_result.
# Сводная информация
https://digihash.ru/datacollector/api.php
2.3.4
HTTPS / JSON
# Возможности системы
- Асинхронная очередь задач для портрета, периодического прогноза и Synthesis++.
- Отдельный portrait-only structural export с provenance расчётных фактов и производных аналитических признаков.
- Синхронный hourly-endpoint для UI и сервисов, которым нужен готовый почасовой результат сразу.
- Разделение SubjectContext/TemporalContext во всех вычислениях.
- Серверное кэширование портретов, дневных прогнозов и нового почасового geocentric-прогноза.
- Режим критического отказа для внешних источников: при недоступности эфемерид API не отдаёт фальшивый частичный успех.
# Архитектура решения
Этапы жизненного цикла
Клиент → POST create_task
Запускает тяжёлую составную задачу для портрета/прогноза/Synthesis++.
Worker → Асинхронный расчёт
Собирает итоговый payload и сохраняет его для последующего `get_result`.
Клиент → GET get_result или get_structural_result
Опрос обычного/Synthesis++ результата либо отдельного structural_v3 для opt-in задачи.
Клиент → GET get_hourly_forecast
Синхронный запрос почасового прогноза на local-день с отдельным result-cache.
Политика кеширования
# Модель хранения и кэширования
Кэш разделён по доменам данных. В публичных ответах файловые пути никогда не раскрываются.
Immutable SubjectContext и производные portrait-расчёты.
Классический дневной/недельный/месячный forecast.
Отдельный JSON-cache для нового почасового метода.
# Технические требования
List
- •Формат обмена: JSON
- •Кодировка: UTF-8
- •Дата: YYYY-MM-DD
- •Время: HH:MM или HH:MM:SS
- •Все запросы выполняются по HTTPS