Перейти к содержанию

Представляем наш движок гороскопов

Наш движок гороскопов – это детерминированный астрологический runtime, разработанный для реальных продуктов, а не для генерации шуточного текста. Он объединяет вычисления Swiss Ephemeris, строгую активацию факторов и редакционное форматирование, чтобы ваше приложение получало стабильный, объяснимый и премиальный вывод отчетов.

Ядро движка Детерминированность Режимы работы Язык

На чем вы работаете

Во время выполнения движок рассчитывает реальное положение небесных тел и извлекает смысл из активированных астрологических факторов. Для идентичных запросов выходные данные остаются абсолютно стабильными. При предоставлении входных данных для персонализации, векторы уровня дома и контекста рождения активируются для создания пользовательских различий.

Это дает вашей команде:

  • Предсказуемые результаты для тестирования, контроля качества и кэширования: идентичные запросы всегда возвращают одинаковый JSON.
  • Объяснимое составление отчетов благодаря отслеживанию factor_details во всех разделах.
  • Чистый путь от простых отчетов о сигналах до премиальных персонализированных отчетов.
  • Учет периода глубины: ежедневные (5-6 факторов), еженедельные (10), ежемесячные (11) и годовые (13) наборы факторов с явными весами.

Обзор архитектуры

Полная архитектура движка

Полная архитектура движка гороскопа

Архитектура запроса-ответа

Архитектура запроса-ответа для гороскопа

Детерминированная пайплайн

  1. Шлюз проверяет аутентификацию, лимиты и политику запросов.
  2. Валидация контракта запроса обеспечивает соответствие принятому схеме и опциям.
  3. Движок определяет источник данных, временной интервал и конфигурацию эфемериды.
  4. Swiss Ephemeris вычисляет положения, аспекты и дома (при наличии).
  5. Слой агрегации извлекает данные за период, выделяет события (аспекты, вхождения, станции, лунации, затмения) и ранжирует драйверы.
  6. Движок интерпретации сопоставляет спецификации факторов с контентом на основе фиксированного порядка, явных весов и выбора стабильной версии хэширования.
  7. Движок контента генерирует описания разделов из пакетов контента V2 с учетом периода (открытие → смещение → результат).
  8. Шлюз возвращает payload движка плюс обертки для интеграции (_enterprise, _api_metadata_) для метаданных.

Гарантии детерминированности

Детерминированность — это не случайность, она обеспечивается на каждом уровне:

Гарантия Механизм обеспечения
Один и тот же payload → одни и те же факторы Явное определение порядка факторов по периоду + фиксированные веса
Одинаковые факторы → одинаковые варианты контента Выбор стабильного хеша SHA-256
Одинаковые варианты → одинаковое выражение Детерминированное циклирование фраз из наборов контента V2
Одинаковое выражение → идентичный JSON Обеспечение согласованности при редактировании + удаление дубликатов разделительных линий между разделами

Это означает, что вы можете хешировать два независимых запроса с одинаковым телом и получить одинаковый результат, что позволяет реализовать надежное кэширование, тестирование регрессии QA и воспроизводимую отладку.

Публичные vs Персонализированные отчеты

Оба режима являются валидными для производства. Разница не в качестве; это уровень активации.

Публичный режим (на основе знака зодиака)

Предоставьте только знак зодиака и дату. Движок генерирует стабильное, общее чтение для всех пользователей с этим знаком в этот период.

  • Отлично подходит для широкой аудитории и экономичного кэширования (12 знаков × 4 периода × 365 дней = ~17 520 уникальных ежедневных кэшей)
  • Без расчетов по домам — rising_sign, house_cusps и назначение тела house являются null
  • Хорошо подходит для быстрого развертывания, гороскопов в стиле журнала и платных тарифов

Режим персонализации (с учетом даты рождения)

Предоставьте контекст даты рождения (birth_time, координаты, часовой пояс), чтобы активировать более глубокие векторы. Два пользователя с одним и тем же знаком зодиака могут получать разные редакционные материалы из-за изменения расположения домов и знака восхода, что влияет на оценку факторов.

  • Обязательные поля: birth_time (Ч:М) + birth_latitude + birth_longitude
  • Разблокирует: знак восхода, концы домов, назначение планет в дома, и факторы фокусировки на доме (daily_house_focus, weekly_house_focus, monthly_house_focus, yearly_house_focus)
  • Лучше всего подходит для премиум-подписок и высокоэффективных пользовательских интерфейсов.
  • Поддерживает более сложные модули приложения и каналы персонализации

Модель редакционных материалов на основе факторов

Движок работает на основе явных наборов факторов — детерминированных интерпретационных драйверов, вычисляемых на основе астрономических снимков и агрегирования периодов. Каждый период имеет определенный порядок факторов и явные веса.

Наборы факторов по периодам

Период Количество факторов Ключевые факторы
Ежедневный 5-6 sun_in_sign, moon_in_sign, transits_archetypes, aspects, daily_house_focus
Еженедельный 10 weekly_moon_phase, planetary_focus, retrograde_archetypes, weekly_theme_archetypes, weekly_house_focus
Ежемесячный 11 monthly_lunation_archetypes, eclipse_archetypes, outer_planet_focus, monthly_theme_archetypes, monthly_house_focus
Годовой 13 jupiter_in_sign, saturn_in_sign, nodal_axis, yearly_house_focus, yearly_theme_archetypes

Дополнительные наборы факторов для отчетов: - Планета: planet_core_archetypes, planet_condition_archetypes, planet_house_focus, planet_sign_archetypes - День рождения: solar_return_tone, birthday_year_reset, natal_sun_house_year_theme - Аспект: Наборы факторов, основанные на аспектах, с вычисленными или переопределёнными доминирующими аспектами. - Транзит: Наборы факторов, основанные на транзитах, с вычисленным или переопределённым основным архетипом транзита.

Каждый фактор имеет явный вес (например, moon_in_sign: 1.15 (ежедневно), yearly_theme_archetypes: 1.30 (годовой)), который влияет на оценку раздела и определение интенсивности.

Эта модель позволяет избежать случайных отклонений в тексте и поддерживает редакционный тон, связанный с вычисленными факторами, с полной отслеживаемостью в factor_details.

Ежедневные персонализированные статистические данные приложения (Основной гороскоп)

Для режима ежедневной персонализации движок возвращает готовые для использования в приложении статистические блоки в data.daily_personalized_stats. Они идеально подходят для карточек и виджетов сводки.Ежедневные показатели Активация

Условие активации: period=daily и персонализированный запрос на активацию включает в себя как birth_time, так и coordinates.

Основные блоки:

  • overall_pulse — комплексная оценка ежедневной жизненной силы
  • archetype_scores — восьмимерный анализ (wisdom, creativity, confidence, intuition, allure, romance, career, emotions)
  • harmony_discord — топ 4 гармоничных и топ 4 диссонирующих знаков
  • elemental_balance — распределение огня/земли/воздуха/воды
  • momentum_channels — сигналы планетарного импульса

Контроль плотности данных:

  • daily_stats_detail: "full" для полного набора данных с уровнями уверенности для каждого блока
  • daily_stats_detail: "compact" для более легких запросов от клиента (идеально подходит для мобильных виджетов)

Ключевые особенности дизайна запроса

Движок поддерживает четкие, типизированные элементы управления для астрологической конфигурации и поведения рендеринга. Распространенные варианты включают:

| Поле | Тип | Цель ||---|---|---| | period | строка | daily, weekly, monthly, yearly || sections | массив | Области жизни для включения (например, general, career, love_singles) |

---| sign / birth | строка / объект | Источник знака (публичный или персонализированный) || target_date | строка | Явный якорь даты (YYYY-MM-DD) для воспроизводимости || zodiac_system | строка | tropical или sidereal |

---| ayanamsa | строка | Система смещения по звездной системе (lahiri, fagan_bradley и т.д.) |

---| house_system | строка | placidus, whole_sign, equal, koch || node_type | строка | true (фактическое значение) или mean (среднее значение) лунного узла |

---| tenant_id | string | Cache namespace isolation for multi-tenant or A/B scenarios |

Гарантии формы ответа в шлюзе

Ответы от Gateway проходят через данные движка и добавляют обертки: - _enterprise — информация о типе плана, квоте и ограничении скорости.- _api_metadata_ — информация об эндпоинте, поддерживаемые языки и контекст запроса


Для конечных точек отчетов, использующих движок, _api_metadata_.supported_languages поддерживает только английский язык:

{
  "_api_metadata_": {
    "supported_languages": ["en"]
  }
}

Политика использования языка и перевода


Текущие конечные точки отчетов с поддержкой движка поддерживают только lang=en. Это сделано намеренно для сохранения детерминированной редакторской нюансов в производственной среде, при этом надежность перевода обеспечивается отдельно. Слой помощника перевода шлюза (lang=en|es|de|fr|pt) предоставляет переведенный вывод на границе API для всех конечных точек отчетов, кроме прогнозов.

Конвейер контента: V2 Content Packs

Редакторский контент поступает из структурированных V2 content packs в репозитории контента движка.

Во время выполнения, репозиторий выбирает варианты детерминированно с помощью стабильного выбора хэша с четырехступенчатой цепочкой резервного копирования:

  1. Точное соответствие (factor_type + factor_value + intensity)
  2. Любое значение для factor_type (factor_type + intensity)
  3. Любой фактор в разделе (section + intensity)
  4. Шаблон резервного копирования раздела

Эта структура обеспечивает разнообразие контента по интенсивности, сохраняя при этом воспроизводимость для одного и того же исходного значения.

Модель доверия: Закрытый ядро + Открытый источник Lite

Наш основной производственный движок является закрытым и оптимизирован для надежности, глубины и управляемых операций в корпоративной среде. Он включает:

  • Полные персонализированные отчеты (для всех периодов)
  • Отчеты о цикле дня рождения с факторами солнечного возврата
  • Комплекты отчетов: планета, аспекты, транзиты, дом и планета-дом
  • Натальжная карта с настраиваемым рендерингом SVG колеса
  • Кэширование Redis, метрики, проверки работоспособности и горизонтальное масштабирование

Для поддержки независимых астрологов и оценки разработкой, мы также предоставляем бесплатную версию:

Используйте OpAstro для оценки качества движка, изучения логики вычисления факторов и проверки интеграции Swiss Ephemeris. Масштабируйтесь до корпоративных маршрутов NumerologyAPI для более богатых слоев отчетов, более широкого покрытия конечных точек и управляемых производственных операций.

Путь интеграции

  1. Начните с отчетов на уровне публичных данных — ежедневные/еженедельные/ежемесячные/годовые, используя только sign. Не требуется информация о рождении. Эффективно используйте кэш.
  2. Добавьте персонализированные поля рождения — предоставьте birth_time + координаты для получения дифференцированных редакций с учетом факторов, связанных с домами.
  3. Создайте слои специализированных семей отчетов — планетарные, аспекты, транзиты и конечные точки домов для более глубокой функциональности продукта.
  4. Добавьте конечные точки рождения — полный JSON-схема рождения + SVG-колесо для визуализации и продвинутых астрологических рабочих процессов.
  5. Оптимизируйте с помощью разделов — запрашивайте только sections, которые необходимы вашему UI (например, ["general", "career"]), чтобы уменьшить размер передаваемых данных.
  6. Используйте tenant_id для изоляции кэша — разделяйте бесплатные/премиум уровни или варианты A/B-тестирования без загрязнения кэшем.

Стратегия кэширования

Режим Эффективность кэша Стратегия
Публичный (только по знакам) Высокая — ~17 520 уникальных ежедневных кэшей Предварительный прогрев на следующий день; TTL 1-4 часа
Персонализированный (с учетом рождения) Ниже — для каждого пользователя Ключи кэша для каждого пользователя; TTL 24 часа; рекомендуется Redis

Дальнейшее чтение