Навайбкодил ИИ-астролога на микросервисах с открытым кодом

Всем привет! Я работаю техническим директором в небольшой IT-компании, и уже давно сам не писал код.

Но появились нейросети, и я не смог удержаться от запуска pet-проекта. Поставил Cursor и навайбкодил небольшого ИИ-астролога. Да-да, панамка для любителей клеймить лженауки готова, можете набрасывать)

Для ЛЛ: @nocturna_astrology_bot

Бот умеет:

  • отображать и интерпретировать натальные карты,

  • строить общие транзиты ("вайб дня") и персональные транзиты с учетом вашей натальной карты,

  • проверять людей на совместимость (романтическую, деловую и дружескую).

Пример работы телеграм-бота

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

Я специально взял такую небизнесовую тему, в которой мне не придется конкурировать с серьезными компаниями, это всё-таки проект для души.

Стек и детали реализации

Калькулятор астрологических расчетов

Для начала сделал сервер астрологических расчетов на базе швейцарских эфемерид.

Под капотом Python с FastAPI. Хотел было срезать углы и взять что-то готовое, нашел kerykeion и ещё пару похожих проектов, но какое-то оно всё оказалось несерьезное, и я решил делать сам. Результат выложил на github (nocturna-calculations) и даже развернул на отдельном сервере (Nocturna Calculations Swagger). Кому нужен API ключ поиграться, пишите)

Генератор астрологических карт

Фронтенд решил делать на React, и быстро выяснил, что нарисовать пристойную натальную карту - это задача со звёздочкой для нейросетей.

Пришлось пилить отдельную библиотеку для визуализации натальных карт в SVG.

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

Эту библиотеку я тоже выложил в open source (nocturna-wheel), и даже опубликовал в npm, чисто по приколу (npm install @eaprelsky/nocturna-wheel). Покрутить демо можно тут: https://demo.wheel.nocturna.ru/.

Демо-страничка для астрологического колеса

Демо-страничка для астрологического колеса

Отказ от фронтенда и микросервис генерации карт

Закончив с библиотекой, я продолжил было делать веб-морду на React, но потом решил, что начать нужно с чего-то попроще и сделал телеграм-бота. Понятно, что для этого я тоже выбрал Python.

Тут оказалось, что отобразить натальную карту, нарисованную в React, не так просто. Можно было, конечно, портировать уже написанную библиотеку на Python и поддерживать две кодовые базы, но мне этот вариант не понравился.

Так что пришлось поднимать отдельный микросервис для генерации изображений. Бэкенд на Node.js поднимает Puppeteer (браузер без GUI), рендерит SVG, делает скриншот и отдает картинку по API. ("Микросервисы, архитектура средней полосы..." © НТР)

Телеграм-бот

Дальше я взялся за самого телеграм-бота. Через openrouter подключил LLM для интерпретации гороскопов, в качестве модели выбрал Claude Haiku 4.5. Добавил базовые команды для генерации натальной карты, транзиты. Потом подумал и перешел на кнопки, так получилось понятнее для пользователя.

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

Заморочился даже на рефералки, они начисляют по 10 дополнительных кредитов пригласившему и тому, кто пришел. Было интересно сразу сделать "по-взрослому", хотя на текущем этапе развития это и избыточно.

Развернул я всё это добро на небольшой виртуалке, причем для каждого компонента развернул отдельно staging для тестирования, и отдельно прод с blue-green схемой, чтобы накатывать обновления без даунтайма для пользователей. Это тоже оверхед для пет-проекта, но мне было интересно с этим разобраться, так как в DevOps я не очень-то шарю.

Что получилось, и что дальше

В итоге, несмотря на большое количество усилий, у меня получился довольно минималистичный бот.

Поиграться с ним можно тут: @nocturna_astrology_bot

Ещё я сделал, чтобы этот же бот каждый день постил текущую интерпретацию транзита в отдельный телеграм-канал nocturna_astroday. Там пока всего 6 подписчиков, и все они боты, кроме меня самого.

В дальнейших планах - сделать полноценный диалог с ИИ-астрологом, но это уже мультиагентная система с вызовом тулзов. Без реальных пользователей делать такое неинтересно, нужно сообщество, которое будет давать фидбэк.

Так что пишите в комменты, буду рад обратной связи. Тестируйте, ломайте, пишите баг-репорты. Можно репортить даже в самом боте (в разделе "Помощь" можно отправить мне ЛС через бота). Кому интересно поконтрибьютить - репы открыты.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества