Надоела стерильная вежливость ChatGPT: как я собрал Telegram Mini App «Ангел и Демон» на FastAPI

Спор двух крайностей на любую дилемму, инференс за 250 мс и монетизация через Telegram Stars без оверинжиниринга.

Знакома ситуация, когда закидываешь в ChatGPT или Claude сложную жизненную дилемму, а в ответ получаешь унылое эссе от HR-директора с десятью дисклеймерами: «С одной стороны важно это, с другой стороны то, помните о балансе, обратитесь к специалисту»?

Хотелось живого контраста и честности. Поэтому по фану за пару вечеров я собрал Telegram Mini App «Ангел и Демон» (@angel_demon_ai_bot).

В чем концепт

Суть простая: закидываешь любую дилемму (от «увольняться ли с галеры в никуда» до «взять ли шавуху на последние 300 рублей»), и получаешь два противоположных ответа.

Но фишка не в банальном «делай добро / делай зло»:

  • Ангел отвечает как спокойный стоик (в духе Марка Аврелия и Сенеки): про дисциплину, честность перед собой и долгосрочные последствия.
  • Демон рубит как циничный прагматик (с нотками Тайлера Дёрдена): стебется над прокрастинацией, срывает белое пальто и напоминает, что жизнь коротка.
(вопрос был стоит ли брать айфон в кредит)
(вопрос был стоит ли брать айфон в кредит)

Архитектура: как сделать быстро и за 0 рублей

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

  1. Бэкенд на FastAPI: асинхронный Python, строгая валидация схем через Pydantic.
  2. Инференс нейросети через Groq: на промптах крутится Qwen (2.5 / 3.8). Скорость генерации около 200-250 миллисекунд. Пользователь даже моргнуть не успевает, как оба ответа уже на экране (в отличие от стандартного ожидания стриминга по 5-10 секунд).
  3. База данных SQLite в режиме WAL (Write-Ahead Logging): для небольшого пет-проекта тащить тяжелый PostgreSQL - чистый оверинжиниринг. SQLite в WAL-режиме держит параллельное чтение, потребляет копейки оперативной памяти и хранится в одном файле.
  4. Фронтенд: чистый Vanilla JS + CSS под Telegram WebApp. Никаких гигабайтов node_modules и сборщиков. Вес страницы минимальный, открывается мгновенно даже с мобильного 3G.
  5. Монетизация через Telegram Stars: прикрутил нативную оплату скинов/персон за Telegram Stars.

Кастомные персоны

Помимо классических Ангела и Демона, ради фана добавил альтернативные скины, меняющие системные промпты. Например, режим «Гопник»:

(вопрос тот же самый)
(вопрос тот же самый)

Зачем я это выложил

Проект уже в проде, всё крутится на маленьком VPS.

Хочу собрать честный фидбек от разработчиков и просто любителей потестировать нейросети:

  • Насколько живые ответы выдают персонажи?
  • Ломается ли верстка на ваших смартфонах?
  • Удалось ли загнать логику бота в тупик нестандартным вопросом?

Бот живет тут: @angel_demon_ai_bot

Залетайте протестировать, пишите любые каверзные вопросы и делитесь в комментариях, на чьей стороне вы чаще оказываетесь!