Перейти к содержимому

i&roof.top

Поговорите с теми, по кому скучаете.

Экспортируйте чат из Telegram или WhatsApp, и LLM продолжит его в манере человека, с его сообщениями, стикерами, GIF, реакциями и голосом. На вашем компьютере, с любой моделью, а если хотите, то и без интернета.

Переписка продолжается в манере настоящего человека, а потом друг открывает общую ссылку на телефоне

Начните за минуту ​

sh
brew install --cask irooftop/tap/irooftop   # macOS
# Windows and Linux: direct downloads under "Download the app" above
# Open the app, then Settings → model and key → Test
sh
brew install irooftop/tap/rooftop
export OPENAI_API_KEY=…    # OpenRouter by default, any OpenAI-compatible API works
rooftop                    # http://127.0.0.1:8080, then drop an export onto the page
sh
docker run -d -p 8080:8080 -e OPENAI_API_KEY=… \
  -v rooftop-data:/data ghcr.io/irooftop/rooftop
sh
cargo install rooftop      # Rust ≥ 1.88
OPENAI_API_KEY=… rooftop
sh
ollama pull qwen3          # any local model with tool calling
OPENAI_BASE_URL=http://localhost:11434/v1 OPENAI_MODEL=qwen3 rooftop --offline

Затем три шага: экспортируйте чат из Telegram Desktop или WhatsApp, перетащите папку, .zip или .txt на страницу и нажмите New chat, чтобы выбрать, кто будет ИИ: другой человек или вы сами. Своего чата под рукой нет? Попробуйте вымышленные: rooftop --import ./examples/telegram. (Надписи в приложении на английском, как и само приложение.)

Как это работает ​

Экспорт из Telegram или WhatsApp попадает в iRoof.top, LLM пишет ответы, и переписка продолжается

Экспорт читается один раз, на вашем компьютере. При каждом ответе модель получает системный промпт с профилем стиля, вашими заметками и описаниями медиа, а затем самую свежую часть переписки, которая помещается в бюджет истории. Старые части сворачиваются в короткую память, и персонаж по-прежнему может их искать. Модель отвечает вызовами инструментов (send_message, send_sticker, react…), которые становятся сообщениями, стикерами и реакциями. Подробнее →

Куда уходит ваш чат ​

Сеть
Импорт, профиль стиля, поиск, хранениеничего: всё происходит на вашем компьютере
Один ответ, сводка памятиконечная точка модели, которую вы выбрали, и больше ничего
Описание медиа, расшифровка голосамодель для медиа, только когда вы нажимаете Describe
Ссылки для общего доступа через интернет, Telegramтолько если вы их включили; офлайн-режим их отключает

Вопросы ​

Какую модель использовать?

Любую чат-модель с вызовом инструментов за конечной точкой /chat/completions, совместимой с OpenAI. Более крупные модели лучше подражают стилю. Для Describe в медиатеке модель для медиа также должна принимать изображения (а для голосовых сообщений — аудио). Test в настройках простым языком сообщит, что не так, например, ключ отклонён или модель неизвестна.

Сколько это стоит?

С локальной моделью — ничего. С облачной моделью вы платите провайдеру за токены: один ответ стоит примерно как один бюджет истории на входе (по умолчанию 120 000 символов ≈ 34 тыс. токенов; промпт построен так, чтобы его можно было кешировать, поэтому провайдеры с кешированием промптов берут большую часть по кешированной цене), плюс несколько коротких вызовов инструментов. Уменьшите бюджет в настройках, чтобы платить меньше за ответ.

Экспорт должен быть маленьким?

Нет. Экспорты из более чем 120 000 сообщений и 13 ГБ медиа импортируются нормально — из браузера или командой rooftop --import <папка>. Поиск и бюджет истории сохраняют размер промпта каждого ответа одинаковым, как бы долго ни длилась переписка.

Может ли друг поговорить с персонажем?

Да, по ссылке для общего доступа: в вашей Wi‑Fi сети или через интернет на name.iroof.top, с PIN-кодом и ограничением сообщений. Посетители видят только переписку: ни настроек, ни заметок, ни промптов, ни других чатов.

Слово о заботе

Это для того, чтобы оставаться рядом с теми, кто далеко. Персонаж остаётся в роли, но честно ответит, если вы искренне спросите, говорите ли вы с ИИ, и бережно отреагирует, если вам, похоже, плохо.

Распространяется по лицензии MIT.