О проекте

Зачем это

Почти всё, что говорят о совместимости, устроено одинаково: берётся число, объявляется процент, дальше человек сам придумывает, что с этим делать. Число ничего не объясняет и ни на что не опирается, но выглядит убедительно — и в этом вся его работа.

DUO сделан из противоположного допущения: интересно не число, а различие. Что у вас складывается легко, что требует усилия, и почему именно так. Не «вы совместимы на 82%», а «вам легко даётся то, что ему даётся трудно, — и вот с чего начать разговор».

Отсюда всё остальное: если мы обещаем объяснение, а не приговор, то каждое утверждение должно быть на что-то опёрто, и это «что-то» должно быть видно.

Две половины, и они не равны

Первая — то, что вы рассказали о себе сами. Двадцать утверждений, с которыми вы соглашаетесь или нет: это Mini-IPIP, короткая форма набора вопросов о пяти чертах характера, у которой есть опубликованные показатели надёжности. Инструмент в общественном достоянии, авторы короткой формы — Donnellan, Oswald, Baird и Lucas (2006).

Вторая — карта рождения. Мы называем её линзой и не выдаём за науку. Это способ посмотреть на себя под непривычным углом; иногда чужая рамка помогает заметить то, что своими словами не формулируется.

Мы никогда их не смешиваем. Каждое утверждение подписано, откуда оно. Смешать означало бы выдать более слабое за более сильное — ровно тот приём, ради отсутствия которого всё это и затевалось.

Откуда берутся числа

Положения планет вычисляются из JPL Development Ephemeris DE440s — той же эфемериды, по которой Лаборатория реактивного движения NASA ведёт межпланетные аппараты. Ядро читается библиотекой Skyfield; переход к системе координат даты — прецессия и нутация по модели IAU 2000A.

Асцендент, середина неба, куспиды домов, узлы и аспекты — наша собственная реализация общедоступных формул. Swiss Ephemeris и библиотеки под лицензией AGPL не используются нигде, включая тестовый стенд: это решение принято осознанно и записано.

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

Насколько это точно — с цифрами

Точность — это не слово, а измерение, и у нас оно устроено как проверка, которая останавливает сборку.

Долготы тел сверяются с JPL Horizons. Порог — одна угловая секунда. Худшее расхождение — 0,0106″ у Луны (деталь итерации светового времени, которую отмечает и сам JPL); всё остальное — меньше 0,001″. Это примерно три порядка запаса.

Поворот системы координат сверяется с ERFA — независимой реализацией, производной от IAU SOFA. Худшее расхождение — 0,0018″. Звёздное время: 5,8 × 10⁻⁵ угловой секунды.

Асцендент и середина неба — 0,0018″, куспиды Плацидуса — 0,0020″. Для сравнения: асцендент смещается на угловую секунду примерно за 0,07 секунды времени.

Двадцать четыре полных ответа API зафиксированы как эталонные. Если пересчёт даст другое число хотя бы в одном знаке — сборка не выйдет, и это придётся объяснить.

Что такое факт

Движок не пишет текстов. Он выдаёт факты — короткие идентификаторы вроде «Солнце в Водолее» или «Сатурн в квадратуре к Венере». Всего таких фактов 1197: 180 про знаки, 156 про дома, 505 про аспекты, 150 про связи между двумя картами, 150 про транзиты, 27 про измерения совместимости, остальное — про психологический профиль и оговорки о неточности данных.

Каждому факту соответствует заранее написанный текст. Ни один не появляется на экране, пока живой человек его не прочитал и не подписал своим именем — в базе остаётся, кто и когда. Сейчас подписано 1194 текста.

Если для найденного факта текста ещё нет, вы увидите пустое место и честную пометку. Пустое место лучше правдоподобной фразы.

Как вычисляется совместимость

Не одним числом. Десять измерений — от того, как вы разговариваете, до того, как вы ссоритесь, — и у каждого свой источник.

Там, где оба человека прошли опросник, измерение опирается на психологию. Там, где данных не хватает, оно не считается вовсе и прямо говорит почему, а не подставляет среднее. Число, собранное из пустоты, выглядит так же убедительно, как настоящее, — в этом и проблема.

Связь между двумя картами учитывается только тогда, когда она про этих двоих. Соединение двух Юпитеров верно для всех, кто родился с разницей в двенадцать лет, и не говорит о паре ничего. Мы посчитали: без этого правила словарь связей разрастается до 1070 вариантов с плоским распределением, и половина из них — утверждения о поколении, а не о людях. С правилом остаётся 150.

Как получается текст

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

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

Проверка отклоняет заметную долю того, что модель пишет. Это нормальная цена: просьба в подсказке снижает частоту ошибок, а проверка делает так, что частота перестаёт иметь значение.

Модель российская. В запрос к ней не попадают ни имя, ни адрес почты, ни дата рождения — только идентификаторы фактов и уже вычитанные фрагменты. Это не обещание словами: перед отправкой запрос проверяется, и при находке чего-то похожего на личные сведения он не уходит вообще.

Что мы знаем плохого о своих же данных

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

Поэтому карты и всё производное от них зашифрованы в базе по отдельности: каждое значение своим ключом, привязанным к конкретной строке и колонке. Копия базы без ключей не читается, а ключ от одной записи не открывает другую.

Данные человека, которого вы добавили, мы не храним вовсе: считаем карту и выбрасываем дату, время и место. Он о нас не знает и согласия не давал — значит, у нас не должно быть того, чего можно не иметь.

Чего здесь не будет

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

Состояние

Проект в разработке. Часть возможностей уже работает, часть — нет; платные разборы пока не подключены.

Подробности о методе — на странице «Как мы считаем», об источниках и лицензиях — на странице «Документы и источники».