TGTGInsighttelegram intelligenceLIVE / telegram public index
Back to channels
FragMem | Dev Log avatar

TGINSIGHT CHAT

FragMem | Dev Log

@fragmembots

Technologies

💜 With love from @katant 💎@notmeme

Subscribers4,950Current channel subscribers
Tracked posts67Indexed post count
Recent reach226,490Sum of recent post views
Recent posts

Recent posts

Page 1 of 6 · 67 posts

Posted Feb 15

🔗 Всем привет, продолжаю рассказывать про наших ботов @sounds и @clips. Сегодня покажу, как работает технология поиска, благодаря которому мы помогаем вам найти максимально релевантные результаты по мемным звукам или кружочкам. Когда вы пишете в боте запрос типа "гойда" или "ну давай нападай", кажется, что это просто "поиск по базе". Но внутри это больше похоже на умный поиск Google, только заточенный под нашу базу (звуки/кружки). 👨‍💻 Из чего состоит поиск(скриншот 2) У нас есть три слоя, которые работают вместе: • PostgreSQL — основная база, где хранятся сами звуки (название, описание, теги). • Elasticsearch — быстрый “мозг” для полнотекстового поиска (умеет искать по словам, ошибкам, похожим формулировкам). • ZomboDB — магический мост между ними: позволяет делать Elasticsearch-поиск прямо из SQL, как будто это обычный запрос в Postgres. Он также занимается формированием индексов на основе данных Postgres в ElasticSearch. То есть: данные живут в Postgres, а ищем мы силой Elasticsearch, при этом всё выглядит как "одна база". 🐥Что именно мы ищем Каждый звук индексируется по трём главным полям: • title (название) • description (описание) • tags (теги) Они собираются в "единый поисковый документ", и по нему строится индекс. Фишка ZomboDB: когда звук меняется в Postgres — индекс в Elasticsearch обновляется автоматически. Без ручной синхронизации. 📰 Два пути поиска: в боте и через API (скриншот 2) Поиск доступен двумя способами: • Inline в Telegram: @bot <запрос> • Через наш MiniApp, там происходит запрос в API: GET /api/sounds?query=... Но самое главное: оба пути приходят в один и тот же метод — SoundDAO.get_list() (то есть логика поиска единая и вы получите одинаковый результат, независимо от источника взаимодействия). 🙃Как запрос превращается в результат(скриншот 1) Когда вы вводите текст, система делает несколько попыток найти лучшее совпадение. 1) Сначала — "строгий" поиск (MUST) Логика: все слова из запроса должны встретиться. Это даёт максимально точные результаты. И да: поиск умеет "прощать" опечатки — включён режим fuzziness: AUTO, то есть: • «превет» может найти «привет» • «смешной звук» найдёт даже если где-то ошиблись 2) Если строго не нашло — включается "мягкий" поиск (SHOULD) Логика: берём только слова длиннее 3 букв, и достаточно, чтобы совпала примерно половина. Когда полезен: • длинный • с лишними словами • "криво сформулирован" 3) Если и "мягкий" не помог — включается "нечёткий" поиск (FUZZY / SIMILARITY) Логика: мы смотрим на запрос целиком и пытаемся найти похожие варианты, даже если слова написаны по-разному, перепутан порядок или опечаток больше обычного. Это такой режим “ну ты понял, что я имел в виду”. Когда полезен: • короткий и неточный (типа «ааа ну тот звук») • с кучей опечаток / транслитом («privet», «prvyt», «preevet») • с переставленными словами («звук смешной» vs «смешной звук») • когда помнишь только кусок фразы, а остальное “примерно” ⚡️Почему один звук выше другого Результаты сортируются так: • по релевантности (насколько “попали в смысл запроса”) — это score от Elasticsearch • по популярности (сколько раз звук использовали) То есть идеальный вариант — и подходит по смыслу, и реально любимый людьми. 🙈Что происходит, когда вы просто открыли inline и ничего не ввели Если запрос пустой, мы не делаем никакого поиска — вместо этого собираем витрину: • Промо-звуки (сейчас их нет) • Ваша история (последние отправленные) • Топ популярных (по количеству использований) И всё это аккуратно склеивается в один список (до 50 штук), с дедупликацией, чтобы не было повторов. 🚀 Как считаются "использования"(скриншот 3) Когда вы выбираете звук в inline — мы не пишем счётчик сразу в базу (это бы замедлило систему). Вместо этого событие улетает в Redis Stream, а дальше отдельный воркер: • читает события пачками • обновляет счётчики • записывает историю В итоге бот отвечает быстро, а статистика обновляется асинхронно.

6,290 views

Posted Dec 19

🙃Всем привет! Решил немного реформировать канал и превратить его в дев-лог. Если кто-то не в курсе: я работаю над разработкой нескольких прикольных проектов — @clips, @sounds, @texts, @saver. В общем, всё, что вы видите в списке приложений @notmeme. 🤓 Тут буду иногда рассказывать технические детали: что, где и как у нас работает. Обеспечить миллионы пользователей стабильной работой сервиса с кучей технически сложных механик — задача не из лёгких. Возможно, вам будет интересно узнать, как всё устроено внутри и что скрывается за, казалось бы, простой строкой - @sounds привет 📹Начну с того, как мы создавали @clips. Изначальная гипотеза была такая: современный "молодёжный" чат — это не только текст, а общение через стикеры, гифки и всё вот это. Мы решили расширить этот формат и привнести новую социальную механику — реакции короткими видео (что-то из разряда тиктока, но прямо в переписке). 💜 В прошлом году за несколько недель мы решили быстро протестировать идею прям перед новым годом. Продумали систему — точнее, как она должна работать: ⚡️ 1) Отправка кружков из существующей базы 1.1) Инлайн. Функционал Telegram, благодаря которому вы можете в любом чате ввести запрос и отправить контент без общения с ботом в личке. 1.2) Хранение. Все наши кружки хранятся в Telegram — оттуда мы быстро отдаём пользователю медиафайл при поиске. Поэтому результат виден почти мгновенно. 1.3) Поиск. Начинали с простого полнотекстового поиска: вычленяем слова из запроса, сравниваем с базой и собираем максимально релевантный список кружков. У каждой единицы контента есть описание и название — по ним и идёт сравнение. ⚡️ 2) Добавление контента 2.1) Источникконтента. Чтобы кружки вообще появились, их нужно было где-то взять. Первую партию мы добавили так: спарсили несколько мемных площадок, преобразовали видосы в кружки, сделали описания и названия, а затем занесли всё в базу. 2.2) Но парсингом одним не живём: мы решили, что пользовательский контент важнее просто сборника видосов из интернета. Поэтому быстро собрали MVP мини-приложения, где за пару кликов можно подредактировать любой видос из вашей галереи, добавить описание и название — и он попадёт в общую выдачу. 2.3) Модерация. Как и в любом сервисе с пользовательским контентом, важно помнить, что не все пользователи милые и пушистые. Поэтому после ваших пары кликов всё уходит на модерацию: там мы проверяем опасный контент и соответствие видео и текста. ⚡️3) Мини-приложение и синхронизация с Telegram Чтобы всем этим было удобно пользоваться, мы сделали так, что контент живёт сразу в двух местах: — в Telegram (как хранилище и источник для быстрой отправки), — и в нашем мини-приложении Telegram, где уже есть нормальный интерфейс. В мини-приложении можно: - посмотреть все мемы/кружки, - искать, включать фильтрацию и быстро находить нужное, - увидеть, какие мемы вы залили, - проверить, на каком статусе модерации каждый мем (в обработке / одобрен / отклонён и т.д.). И ещё важный момент: все уведомления синхронизированы с личкой Telegram. Результаты модерации и любая важная инфа для пользователя прилетают туда, где это реально заметно и привычно — прямо в чат. ⚡️ Про скорость тоже будет отдельный пост: сейчас на один запрос у нас уходит меньше 0.5 секунд, чтобы отдать результаты поиска. Но пришли мы к этому не сразу — там было много интересных (и болезненных) оптимизаций. 💻 Немного цифр в @clips на сегодня: - Более 700.000 пользователей - 100.000 кружков в нашей базе - Юзеры отправили кружки более 6.000.000 раз - Более 180.000 пользователей с нами ежемесячно @FragMemBots | @katant

20,300 views

Posted Dec 19

Channel name was changed to «FragMem | Dev Log»

views

Posted Nov 25

☺️ Давно еще хотел написать, напомнить о том, что в силу полного изменения системы покупки подарков авто-бай больше не работает. Поэтому бот теперь служит только для покупки звезд через фрагмент без KYC. 💎 Если кто-то, по какой-то причине, еще не вывел звезды с личного бота из-за каких либо проблем - напишите в личку (@katant), помогу разобраться и вывести. СНАЧАЛА ПРОЧИТАЙТЕ ИНФУ ТУТ - https://t.me/FragMemBots/62 Всем спасибо за проявленное доверие и тем, кто успел воспользоваться ботом, я проделал большую работу по реализации этого функционала. Жаль, что телега все в моменте просто перевернула и отрезала функционал(

20,000 views

Posted Sep 21

💎 Я вышел с отпуска, разгреб дела, которые появились за это время, решил сесть и разобраться, что изменилось в процессе покупки подарков. 🔗 Пока что приостановился с идеей разработки юзер-бота. Возможно, что-то изменится в системе покупки подарков и я продолжу работу над ним. Но на текущий момент причины просты - на покупку уделяется достаточно времени, благодаря таймеру. Следовательно, премиум подарки можно спокойно купить, поставив будильник по окончанию таймера. А если выйдут не премиум подарки - их сможет купить обычный бот. 😩 Поэтому, особой надобности в авто-покупке премиум подарков пока что нет. А это значит, что, спешить некуда, тем более, у телеги все меняется каждый выход подарков, неизвестно, что придумают в следующий раз)

28,600 views

Posted Aug 25

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

31,600 views

Posted Aug 20

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

27,100 views

Posted Aug 20

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

23,400 views

Posted Aug 15

Помните, больше месяца назад вышло обновление, связанное с подарками от брендов (известных личностей)? Для выпуска подарков снуп дога. Так вот, только сейчас в Bot API добавили поле, указывающее на то, кто выпустил этот подарок: Added the field publisher_chat to the classes Gift and UniqueGift which can be used to get information about the chat that published a gift. Вот и думайте теперь, сколько еще времени пройдет до момента появления функционала покупки премиум-подарков от лица ботов. Еще месяц? Телеграм, пошевелитесь там)

20,900 views

Posted Aug 14

😮На всякий случай, я напомню: Я единственный, кто пытался, донести до Дурова, что Bot API требуется обновить в соответствии с текущим функционалом премиум-подарков (пока все остальные сидели и молчали в тряпочку). Заплатил 5600 звезд за сообщение и был просто проигнорирован. Предложил различные идеи, начиная от возможности дарить премиум-пользователям такие подарки, либо дарить премиум ботами, либо хотя бы минимальной пометкой таких подарков, перед покупкой. 😮Почему не юзер боты (покупка от лица аккаунта)? Банальное нарушение правил Telegram. Ставить ограничения для реальных ботов, которые делают все согласно правилам, идеальный план, надежный, как швейцарские часы. Присекать легальную покупку, но при этом поощрять нелегальную - вот это ебать умно) 💎 Source:https://t.me/FragMemBots/68

18,800 views

Posted Aug 14

Бот отработал как должен был, закупил НЕ премиум подарки. Можете зайти в историю или симуляцию, посмотреть, что бот пытался вам купить. Премиум подарками были: очки, собачки и серфборды. Как настроили ордера, так бот и купил)

16,600 views

Posted Aug 14

🍬 To celebrate Telegram’s birthday and the summer holiday season, we’re dropping some limited-edition gifts within the next hour: Durov’s Sunglasses, Resistance Dog, Sandcastle, Surfboard and Pink Flamingo 🎁

12,900 views
123•••56
PreviousPage 1 of 6Next