Один промт — разный результат: почему ИИ расходится в астрологии и как зафиксировать вывод

Один промт — разный результат

Вы просите ИИ построить натальную карту или разобрать транзиты. Промт идентичен, а ответы — нет: разные дома, разные аспекты, разные интерпретации. Материал объясняет механику этого хаоса и даёт архитектуру промта, которая возвращает контроль.

LLM ≠ КалькуляторТемпература и SeedИнструменты vs Токены

Языковая модель не считает, она предсказывает

Астрология оперирует точными координатами: градусы, минуты, оси домов. LLM оперирует вероятностью следующего токена. Когда вы просите «рассчитать аспект Юпитера к Солнцу», модель не запускает эфемериды. Она генерирует текст, который выглядит как расчёт, основываясь на паттернах обучающей выборки.

Ключевой параметр — temperature. Даже при 0.1 модель может выбрать второй по вероятности токен, если разница минимальна. В астрологии «третий дом» и «четвёртый дом» — соседние токены, но смысловая пропасть.

Правило: Если задача требует точной арифметики — LLM должен писать и запускать код, а не генерировать ответ напрямую.

Пять источников расхождений в астропромтах

Стохастическое декодирование

Вероятностный выбор токена. При одинаковом контексте модель бросает «кубик» с весами. Разные сиды — разные слова: «конъюнкция» vs «плётик», «10°» vs «9°58\’».

Дрейф контекста

История диалога загрязняет свежий запрос. Предыдущее упоминание «Плутона в 1 доме» тянет следующий ответ к этому дому, даже если данные другие. Очистка контекста — обязательна.

Нет встроенного калькулятора

Модель не знает текущих координат планет. Она «помнит» положения из обучающих текстов (часто устаревших или округлённых). Галлюцинация градусов — норма, а не баг.

Неоднозначность терминов

«Рассчитай домы» — по Плацидусу, Коху, Реджиомонтану, цельным знакам? «Аспекты» — только мажорные или с минорными? Модель выбирает случайный дефолт из обучающей выборки.

Обучающая выборка имеет дату

Модель не видит небо в реальном времени. Транзиты «на сегодня» она выводит из весов, зафиксированных на момент обучения. Для актуальности нужен внешний API или код с эфемеридами.

Архитектура устойчивого астропромта: от хаоса к детерминизму

Стабильность достигается не «лучшим промтом», а сменой парадигмы: LLM становится оркестратором, а не исполнителем расчётов.

Условная схема: поток данных в стабильном конвейере
1

System Prompt: Роль и Жёсткие правила

Зафиксируйте систему домов, орбисы аспектов, формат вывода (JSON), запрет на свободный текст до расчёта.

2

Tool Use: Python + Swiss Ephemeris

Модель пишет код, среда выполняет. Получаете точные градусы, ретроградации, скорость. Никаких галлюцинаций координат.

3

Structured Output: JSON Schema

Выход строго в схеме: planet, sign, degree, house, aspects[]. Парсинг не ломается, интерпретация накладывается сверху детерминированным вторым проходом.

4

Seed + Temperature 0 (или Top-p 0.01)

Фиксируйте сид там, где API позволяет. Для интерпретативного слоя — минимальная температура, максимальная детерминированность выборки.

Шаблон системного промта: копируйте, адаптируйте, запускайте

system_prompt.txtPython Tool Enabled
# ROLE
Ты — профессиональный астролог-расчётчик. Ты НЕ интерпретируешь, ТОЛЬКО считаешь.
Ты ОБЯЗАН использовать инструмент python для ЛЮБОГО расчёта планет, домов, аспектов.

# CONSTRAINTS
- Система домов: Placidus (только если пользователь не указал иную).
- Зодиак: Тропический.
- Орбисы аспектов: Конъюнкция 8°, Оппозиция 8°, Трин 7°, Квадрат 7°, Секстиль 5°, Минорные 2°.
- Формат координат: Градусы.Минуты (например, 15.23 = 15°23').
- Вывод: ТОЛЬКО валидный JSON по схеме ниже. Никакого markdown, никакого текста.

# JSON SCHEMA
{
  "chart_meta": {"datetime_utc": "ISO8601", "lat": "float", "lon": "float", "house_system": "P"},
  "planets": [
    {"name": "Sun", "longitude": "float", "sign": "str", "degree_in_sign": "float", "house": "int", "speed": "float", "retrograde": "bool"}
  ],
  "aspects": [
    {"p1": "str", "p2": "str", "aspect": "str", "orb": "float", "applying": "bool"}
  ],
  "angles": {"asc": "float", "mc": "float", "dsc": "float", "ic": "float"}
}

# WORKFLOW
1. Получить от пользователя: дата, время, место.
2. Написать и выполнить python-код со swisseph.
3. Вернуть JSON.
4. (Опционально, вторым вызовом) На основе этого JSON дать интерпретацию.

Интерфейс чата vs API с инструментами: где стабильность выше

Обычный чат (Web UI)

  • Temperature часто скрыт или > 0
  • Нет доступа к коду/эфемеридам
  • Контекст загрязняется предыдущими диалогами
  • Вывод — свободный текст, парсинг ломается
  • Подходит: для обучения, brainstorm, общих смыслов

API + Tools (Python / Function Calling)

  • Temperature = 0, Seed = fixed
  • Точный расчёт через Swiss Ephemeris / Skyfield
  • Изолированный контекст на запрос
  • Strict JSON Schema enforcement
  • Подходит: продакшн, сервисы, точные прогнозы

Чек-лист: проверяете ли вы результат перед доверием?

Астролог нового времени — это архитектор конвейера

Ценность специалиста смещается с «уменя читать карту» на «умение описать логику расчёта машине и верифицировать её работу». Промт становится программой. Результат — детерминированным активом. Хаос уходит, остаётся точность, которой можно доверять.