Как выгрузить чат Телеграма и загрузить его в Поселково

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

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

Что понадобится

Telegram Desktop. Не «Телеграм в браузере» и не приложение с телефона — именно настольная программа: desktop.telegram.org. Есть для Windows, macOS и Linux.

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

Сутки запаса в первый раз. Телеграм отвечает на первый запрос выгрузки предупреждением о безопасности и предлагает подтвердить его с другого устройства либо подождать примерно 24 часа. Это защита: так у владельца аккаунта есть время заметить чужую попытку скачать всю переписку. Пункт меню после этого никуда не исчезает — просто первый экспорт откладывается.

Порядок

Откройте группу в Telegram Desktop и нажмите на её название сверху — справа раскроется карточка группы.

Карточка группы в Telegram Desktop

Нажмите More (три точки) и выберите Export chat history.

Меню More с пунктом Export chat history

Откроется окно настроек выгрузки. Здесь важны две вещи.

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

Выберите формат JSON. Нажмите на строку Format и отметьте Machine-readable JSON. Это единственный формат, который мы умеем читать: «Human-readable HTML» — красивая страница для человека, и данных в ней нет.

Выбор формата выгрузки: Machine-readable JSON

Нажмите Export. Телеграм покажет полосу с числом сообщений — окно можно закрыть, но сам Телеграм до конца выгрузки не закрывайте.

Ход выгрузки истории чата

Когда выгрузка закончится, Телеграм откроет папку с результатом. Нужен один файл — result.json. Остальное можно удалить.

Загрузка в Поселково

Откройте раздел «Чат-группы» в управлении посёлком и перетащите result.json в поле загрузки.

Раздел «Чат-группы» в Поселково

Заполните поле «На каком основании сохраняем переписку». Это самое важное поле на странице, и вот почему: оставите пустым — мы прочитаем файл, покажем найденные телефоны и ссылки, но ни одной строки переписки не сохраним. Заполните — и разговоры попадут в базу знаний, а бот сможет отвечать тем, на что в группе уже отвечали.

Пишется там свободный текст, который читает человек, а не программа. Например: «согласия собраны при заселении, договор от 12.03.2024». Это ваша выгрузка вашей группы, и основание указываете вы.

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

Что дальше

Разбор идёт в фоне и занимает несколько минут: страница обновится сама.

В списке появятся три числа: сколько сообщений прочитано, сколько разговоров получилось и сколько сохранено. Разговоров всегда заметно меньше, чем сообщений — это нормально: мы собираем ответы в цепочки, потому что отдельное сообщение «а когда?» само по себе ни на что не отвечает. На настоящем посёлке 4767 сообщений превратились в 3012 разговоров.

Если третье число — ноль, значит основание не заполнено. Загрузите файл ещё раз, заполнив поле.

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

Чтобы бот отвечал

Выгрузка даёт боту память о прошлом, но говорить в группе он от этого не начнёт. Для этого добавьте его в группу как обычного участника: найдите в поиске Телеграма @PoselkovoBot и пригласите, как пригласили бы соседа.

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

Пока бота в группе нет, в списке будет висеть предупреждение: он не увидит ни одного сообщения.