Сообщество - ИТ-проекты пикабушников

ИТ-проекты пикабушников

797 постов 3 473 подписчика

Популярные теги в сообществе:

1

Как мы с ИИ написали шуточного следователя для Telegram, который допрашивает по видео-кружкам

Привет, Пикабу! На выходных было скучно, и мы с ИИ-напарником решили собрать забавную штуку для вечеринок с друзьями — развлекательного Telegram-бота под названием «Вранометр».

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

В этот момент за дело берется живой ИИ-следователь с характером угрюмого, но остроумного детектива (под капотом трудится модель Claude).

Как это устроено внутри?

Мы решили не просто генерировать случайные ответы, а прикрутить к боту реальный сбор цифровых улик (настолько, насколько это возможно в рамках Python):

1. Анализ лица (MediaPipe): Бот реально считывает видео-кружки. Он отслеживает частоту моргания, повороты головы, направление взгляда и движения рук.

2. Анализ голоса (Librosa): Скрипт замеряет темп речи, ищет подозрительные паузы между словами и улавливает микро-дрожь в тональности голоса.

3. Распознавание речи (Faster-Whisper): Бот переводит всё сказанное в текст прямо на сервере.

ИИ-следователь собирает все эти «улики», соединяет их со смыслом самого рассказа и начинает вести полноценный, саркастичный допрос. Он применяет реальные техники интервьюирования (когнитивное интервью и систему PEACE), шутит, давит авторитетом и начисляет баллы в челлендже «Обмани ИИ». Есть даже групповой режим и таблица лидеров по чату!

Поиграть и проверить код

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

Весь проект мы сделали полностью бесплатным, а код выложили в открытый доступ. Если вы программист или вам просто интересна архитектура таких ботов — заходите, изучайте и докручивайте промпты вместе с нами!

Код проекта открыт для всех на GitHub: https://github.com/vodya88/Vranometr

Будем рады вашим мыслям в комментариях. Как вам идея? Кого бы вы допросили в первую очередь — кота или вторую половинку?

Показать полностью
4

Пишу сервис для общения: интегрировал механику свайпов в проект

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

Проблемы

- во-первых сливер с хэдерами (а это сообщения и даты) начали перехватывать свайпы и сообщения не получали информации о том, что их пытаются свайпнуть
- во-вторых мой сливер с хэдерами, который "типа работает как надо", оказалось что он не совсем работает. А если точнее, я не понял ранее за что отвечал код, обрабатывающий касания пальцев и удалил его. Ну вот понял зачем, лишним, как оказалось, он не был 😂 и без него сообщения вообще не получали информации о том, что их свайпают
- в-третьих, пришлось разбираться как переопределить области свайпов, чтобы палец свайпал нужное сообщение, а не соседнее или какое-то случайное
- в-четвертых аватраки перестали смещаться полем ввода

Помимо этого нашлась еще охапка проблем, но хватит уже о грустном 😂

Что нужно доработать

Аватарки, вернее их горизонтальное смещение. Оно уже неплохо реализовано (в видео видно), но нужно добить их. Сейчас каждое сообщение группы смещает аватарку, а нужно чтобы только "нужное" сообщение смещало ее:

Пишу сервис для общения: интегрировал механику свайпов в проект

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

После того как добью свайпы перейду к полю ввода сообщения. Нужно будет добавить в поле ввода отображение свайпнутого сообщения (на которое пишется ответ).

--
По вечерам разрабатываю сервис для общения на Go & Flutter. Кому интересно, можете подписаться куда-нибудь на меня, попробуете его в числе первых.
Постепенно буду продолжать делиться успехами разработки сервиса.

Показать полностью 1
4

Пишу сервис для общения: реализую механику ответа на сообщения

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

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

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

Ранее обещал продемонстрировать как работает прием/отправка сообщений. Собственно вот видео, где видно что сообщения отправляются, доставляются. Статус "прочтено" отправляю в консоли через команду 'read' и номер сообщения:

Слева в видео пользователь 333 использует консоль, справа другой пользователь пишет через приложение.


Пользуясь случаем хотел бы поблагодарить своих подписчиков за поддержку и отдельно @KAPTABO3ABP за донат :) Спасибо, приятно, будем стараться развивать сервис дальше и делиться тут успехами.


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

Пишу сервис для общения: реализую механику ответа на сообщения

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

Продолжаю работу над приложением, работаю над взаимодействием с сообщениями.

--
По вечерам разрабатываю сервис для общения на Go & Flutter. Кому интересно, можете подписаться куда-нибудь на меня, попробуете его в числе первых.
Постепенно буду продолжать делиться успехами разработки сервиса.

Показать полностью 1 1
7

Пишу сервис для общения: доработал отображение неотправленных сообщений

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

Но этот вариант мне не понравился по ряду причин:
1) иконка рисуется отдельно от сообщения
2) подозрительно напоминает другие мессенджеры 😂

Да, и баги нашел в системе отображения таймстемпов:

Система отображения таймстемпов в очередной раз пошла под нож... Исправил ошибки.

Первая попытка переделки конки-уведомления ошибки доставки выглядит так:

Недоставленное сообщение залито красным, а справа восклицательный знак.

Но этот вариант мне не понравился и переделал иконку с восклицательным знаком вот так:

Финальный вариант:

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

Обмен сообщениями реализовал, но о нем напишу чуть позже в следующем посте. Сделаю видео, где показано как работает отправка и доставка сообщений.

--
По вечерам разрабатываю сервис для общения на Go & Flutter. Кому интересно, можете подписаться куда-нибудь на меня, попробуете его в числе первых.
Постепенно буду продолжать делиться успехами разработки сервиса.

Показать полностью 10
3

Как я сделал читалку книг для себя: открывается на любом утюге, работает без интернета и хранит всю библиотеку

Всем привет! На создание этого проекта меня подтолкнула банальная проблема: я читаю очень много (в среднем по книге каждые 2-3 дня) и со временем начал путаться в авторах, сериях и том, что уже прочитано, а что нет. Существующие решения либо обрастали лишним функционалом, либо не давали нормального контроля над личной библиотекой.

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

Архитектура и стек: почему PWA и браузерные технологии?

Главное требование к читалке - полная независимость от платформы и доступность с любого устройства (ПК, смартфон, планшет, телевизор) без необходимости ставить отдельные нативные приложения под каждую ОС.

  • PWA (Progressive Web App): Приложение устанавливается в систему прямо из браузера и работает в отдельном окне.

  • Оффлайн-доступ: За кэширование статики и работу без подключения к сети отвечает Service Worker.

  • Хранилище данных: Все книги и файлы обрабатываются исключительно на стороне клиента.

Что под капотом: архитектура, оффлайн и хранение гигабайт в браузере

Когда я проектировал читалку, главным требованием было отказаться от хранения самих файлов книг на сервере в пользу Client-Side First архитектуры. Сервер не индексирует, не передает и не хранит ваши библиотеки.

  1. Service Worker и PWA: Приложение упаковано как прогрессивное веб-приложение. За кэширование статики и мгновенную загрузку интерфейса отвечает Service Worker. Интернетом для самого процесса чтения пользоваться не нужно вообще - закачал базу и можно читать хоть в автономном режиме.

  2. IndexedDB + OPFS (Origin Private File System): Забудьте про костыли с локальным хранилищем (localStorage с его убогим лимитом в 5 МБ). Для работы с файлами книг используется IndexedDB и современная файловая система браузера OPFS.

    • Математика проста: в Chromium-подобных браузерах лимит хранилища для одного домена составляет до 60% от свободного дискового пространства устройства. На современном смартфоне или ПК это десятки или сотни гигабайт. Учитывая, что средний файл .fb2 или .epub без иллюстраций весит около 1–2 мегабайт, в памяти браузера легко умещается полноценная библиотека из десятков тысяч книг.

  3. Гибридная синхронизация метаданных: Так как вся тяжелая база книг живет локально на устройстве пользователя, по сети гоняются исключительно легкие метаданные (текущая позиция чтения, настройки, оценки и статистика для облачного профиля - если пользователь решил авторизоваться). Сами файлы книг на сервер не отправляются вообще. Для передачи конкретной книги между устройствами используется генерация временных хэш-ссылок с позицией чтения.

Основной функционал

  1. OPDS-каталоги: «Из коробки» встроена поддержка легальных каталогов (например, Библиотека Мошкова), при этом пользователь может подключать любые сторонние OPDS-источники.

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

  3. Синхронизация и шаринг: На текущем этапе реализована генерация уникальных ссылок с привязкой к конкретной позиции в тексте (через метаданные), что позволяет переносить прогресс или делиться книгой. В планах - полноценная фоновая автосинхронизация метаданных между девайсами.

  4. Интегрированная озвучка (TTS): Реализован режим чтения вслух с помощью встроенных в браузер речевых движков с сохранением позиции воспроизведения.

  5. Поддерживаемые форматы: Фокус сделан на .fb2 как на основной стандарт для текстовой русскоязычной литературы. В перспективе планируется расширение форматов (включая .epub).

Безопасность, приватность и серверная часть

Один из частых вопросов касается безопасности и хранения пользовательских данных.

  • Где лежат файлы книг? Серверная часть не хранит, не индексирует и не передает файлы пользовательских книг. Вся обработка и хранение текстовых файлов происходят изолированно в песочнице браузера на устройстве пользователя.

  • Зачем нужна авторизация? Регистрация полностью опциональна и используется исключительно для привязки облачного профиля, в котором хранятся легкие метаданные: настройки интерфейса, общий прогресс чтения и оценки. Читать книги с локального диска можно полностью без регистрации и создания аккаунтов.

Ссылки на проект

  • Потестировать демо-версию (доступна полностью готовая книга): libd.eu/share/...

  • Главная страница приложения: libd.eu

Проект развивается открыто и пишется под практические нужды. Буду рад конструктивной технической критике, идеям и пожеланиям в комментариях!

Показать полностью 3

Прошу протестировать игру

Настало время и я тоже примкнул к всеми презираемым вайбкодерам.

Дети подросли, уехали и я как-то поймал себя на мысли, что вечером особо и делать нечего. Раньше еще с коллективом собирались на пиво посидеть, но в последние года 3 и пиво особо не привлекает, сейчас пью его раз в 2 месяца и то, если есть впереди 2 свободных дня.

И тут подкатили большие языковые модели, очень интересные штуки. Когда-то немного изучал python и даже небольшие нейросети писал, но потом забросил, на работе был завал, потом другие дела. Сначала, конечно, ChatGPT, очень помогает писать служебные записки, акты, письма. А потом попробовал Claude, попробовал, вау, конечно, все, о чем раньше только мечтал, можно сделать.

И вот в итоге небольшая игра, точнее несколько игр в одном приложении, которые я выкатил на тестирование в Google play. Ничего особенного, обычные игры в тетрадке в клеточку, которые мы играли в школе - 5 в ряд, точки, лабиринт и змейка. Таких игр много для смартфонов, но я хочу собрать именно те игры, которые были популярны на перемене в школе или на скучном уроке. Пока эти четыре игры, потом добавлю, если будет интересно.

Прошу протестировать игру

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

Заранее всем спасибо.

Для участия, сначала нужно зарегистрироваться в Google группе через email, который у вас в Google play
https://groups.google.com/g/graphpapergames-testers

Затем установить по следующей ссылке:
https://play.google.com/store/apps/details?id=com.graphpaper...

А, да, чуть не забыл - приложение только для Андроид (пока)

Показать полностью 1
10

Пишу сервис для общения: настроил обновление статусов доставки сообщений до получателя

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

Что забросил? Например Map (O1) заменил на списки и поиск элемента делаю через indexOf (O(n)). В геймдеве я бы очень быстро посадил производительность на 0, но а тут вроде как терпимо для самой сырой версии. Даже вроде и с O(n^2) работает 😂

Баги

Куда без них? Единственное утешает, что не только у меня. Открыл на днях Youtube на яблоке и вижу:

Уже не удивляет когда у мегакорпораций интерфейс временами работает криво. Расслабились наверно 😂


Написал код отображения таймстемпа в сообщениях и думал что больше никогда к нему не вернусь 😂 Слишком уж мудреная там логика получилась. Ага, на этой неделе занимался правками багов в таймстемпе. То дата не там встанет, то статус куда-то улетает 😂 Исправил. Красными стрелками показал баг таймстемпа, а зелеными исправления:

А вот тут видно обновленные статусы сообщений:

VisualCode, Flutter, СУБД, crone, всякие NATS и серверная часть - что-то эти ребята достаточно сильно грузят мне комп. Потому второго клиента запускаю в консоли и имитирую общение через нее:

Буду продолжать работу над обменом сообщениями, командами (удалить, редактировать и проч) и интерфейсом приложения. Да, не особо быстро движется дело, но что сделаешь, как есть. Фигак-фигак и в продакшен за 1 месяц не получается 😂, есть в жизни много других очень важных задач 😕

--
По вечерам разрабатываю сервис для общения на Go & Flutter. Кому интересно, можете подписаться куда-нибудь на меня, попробуете его в числе первых.
Постепенно буду продолжать делиться успехами разработки сервиса.

Показать полностью 4
12

Lukidown - Telegram бот для загрузки всего отовсюду

Lukidown - Telegram бот для загрузки всего отовсюду

Я написал бота на Python, используя библиотеки kurigram, yt-dlp и ffmpeg.
Данный бот умеет скачивать что-то (в зависимости от площадки) из следующих платформ: YouTube, TikTok, Instagram, Pinterest, Rutube, VK, Spotify, Shazam, Yandex Music, SoundCloud, VK Music, Deezer, Apple Music, Tenor, JioSaavn, Twitch (только клипы), Snapchat, Reddit, Kinopoisk.

Функции:

  • Загрузка видео, аудио и миниатюр со всех поддерживаемых платформ через yt-dlp.

  • Полный пользовательский интерфейс Telegram-бота: встроенные клавиатуры для выбора формата/качества, кнопки отмены и история загрузок для каждого пользователя.

  • Inline режим — запуск загрузок из любого чата через @Your_bot <ссылка или поисковый запрос>.

  • Резервный вариант поиска музыки: ссылки Deezer/Apple Music обрабатывают метаданные, а затем находят соответствующий трек через поиск YouTube.

  • Поддержка Кинопоиска для просмотра сезонов, эпизодов и вариантов озвучки/перевода.

  • Кэширование результатов (Postgres + Redis), поэтому повторные запросы обрабатываются мгновенно, а не загружаются повторно.

  • Настраиваемые одновременные обработчики загрузок и очередь загрузок с поддержкой отмены.

  • Встраивание аудиотегов/обложки (ID3, FLAC, MP4) через mutagen.

  • Встроенный HTTP-сервер проверки работоспособности для контейнеров.

  • Готовность к Docker для простого развертывания.

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

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

Lukidown - Telegram бот для загрузки всего отовсюду

В нем имеется поддержка двух языков (RU, EN).

Lukidown - Telegram бот для загрузки всего отовсюду

Красивый, но простой дизайн. Загрузка видео до 4K, а также загрузка аудио от MP3 (192 kbps) до FLAC.

Сообщения не отправляются подряд. Сделано тока для красивой фотки.

Сообщения не отправляются подряд. Сделано тока для красивой фотки.

История запросов.

Lukidown - Telegram бот для загрузки всего отовсюду

Очередь.

Lukidown - Telegram бот для загрузки всего отовсюду

Конечно, без трудностей не обошлось. Пришлось реверсить некоторые платформы, чтобы использовать не веб-скрейпинг, а конкретно их API. Это сделано для "Яндекс Музыки", "VK Музыки", "Кинопоиска" и Spotify. У последних двух это сделано частично, так как пришлось использовать Playwright.

Сообщения не отправляются подряд. Сделано тока для красивой фотки.

Сообщения не отправляются подряд. Сделано тока для красивой фотки.

Однако мне нравится, что оно так вышло. Да, конечно, появляются вопросы: "А кому это надо?". Но, судя по всему, кому-то да надо, раз такие боты существуют в огромном количестве. Лично я использую своего бота для скачивания треков.

Вы тоже можете принять участие в разработке. Я не говорю, что проект завершён, в нём определённо есть что допиливать (много чего...). Так что те, кому понравился бот и кто хочет добавить либо что-то новое и интересное, либо исправить баги, могут отправлять PR-запросы, и я их с радостью буду проверять и одобрять.

Тем же, кому всё это чуждо и кто просто хочет поскачивать что-то, вы, конечно, можете зайти в Telegram и просто использовать бота ;)

Github | Telegram Bot | мой тгк

Lukidown - Telegram бот для загрузки всего отовсюду

Ну и спасибо вам за прочтение. ❤
Приятно оставить хоть и маленькую но какую-то историю.

Показать полностью 7
Отличная работа, все прочитано!

Темы

Политика

Теги

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

Сообщества

18+

Теги

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

Сообщества

Игры

Теги

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

Сообщества

Юмор

Теги

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

Сообщества

Отношения

Теги

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

Сообщества

Здоровье

Теги

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

Сообщества

Путешествия

Теги

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

Сообщества

Спорт

Теги

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

Сообщества

Хобби

Теги

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

Сообщества

Сервис

Теги

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

Сообщества

Природа

Теги

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

Сообщества

Бизнес

Теги

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

Сообщества

Транспорт

Теги

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

Сообщества

Общение

Теги

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

Сообщества

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

Теги

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

Сообщества

Наука

Теги

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

Сообщества

IT

Теги

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

Сообщества

Животные

Теги

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

Сообщества

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

Теги

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

Сообщества

Экономика

Теги

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

Сообщества

Кулинария

Теги

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

Сообщества

История

Теги

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

Сообщества

Недвижимость и ремонт

Теги

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

Сообщества