Перейти до вмісту

Офлайн-режим і приватність ​

iRoof.top зберігає ваші чати на вашому комп'ютері. З моделлю, яка теж працює на вашому комп'ютері, нічого не має його покидати. Офлайн-режим перетворює це на правило, яке застосунок виконує, а не на звичку.

Що відбувається локально ​

КрокДе виконуєтьсяМережа
Імпорт, розбір, профіль стилюваш комп'ютернемає
Зберіганняфайли JSON і медіа в каталозі данихнемає
Пошук в історії, PIN посилань, медіатекаваш комп'ютернемає
Опис фото, стікерів, GIF, відеомедіамодель, лише коли ви натискаєте Описати з ШІодин запит на елемент до кінцевої точки моделі
Розпізнавання голосумедіамодель, коли ви натискаєте Описати з ШІ на голосовому повідомленні або записуєте йогоодин запит до кінцевої точки моделі
Відповідьмодель чату, коли ви надсилаєте повідомлення (або його надсилає відвідувач)запити до кінцевої точки моделі
Стиснення довгої історіїмодель чату, як частина відповіді, коли історія перевищує бюджетодин додатковий запит до кінцевої точки моделі

Імпорт ніколи не викликає модель. Перший виклик відбувається, коли ви надсилаєте повідомлення, натискаєте Описати або записуєте голосове. Відповідь надсилає моделі вашу експортовану історію (до бюджету історії), профіль стилю та описи медіа. Тож те, де працює модель, визначає, куди йде ваш чат: хмарна кінцева точка його отримує, модель на вашому комп'ютері — ні.

Лише офлайн ​

  1. Встановіть Ollama або LM Studio, або запустіть llama-server з llama.cpp.
  2. Завантажте модель чату, що підтримує виклик інструментів, і модель зору, якщо хочете, щоб фото і стікери описувалися.
  3. У Налаштуваннях оберіть кінцеву точку і модель, а потім увімкніть Офлайн:
СерверБазова URL-адреса
Ollamahttp://localhost:11434/v1
LM Studiohttp://localhost:1234/v1
llama.cpp llama-serverhttp://localhost:8081/v1 (його типовий порт 8080 зайнятий iRoof.top: запускайте з llama-server --port 8081)
  1. Натисніть Перевірити. Це надсилає невеликий запит і показує модель і хост, які відповіли. Можна вимкнути мережу і продовжувати чат.

Настільний застосунок налаштовується в Налаштуваннях. Він не читає вашу оболонку чи файл .env (див. Настільний застосунок), але враховує ROOFTOP_OFFLINE і OPENAI_*, якщо вони є в середовищі, з яким його запущено. Сервер читає середовище (і .env):

sh
# --offline те саме, що ROOFTOP_OFFLINE=1
OPENAI_BASE_URL=http://localhost:11434/v1 OPENAI_MODEL=llama3.1 rooftop --offline
sh
docker run -p 8080:8080 -v rooftop-data:/data \
  --add-host=host.docker.internal:host-gateway \
  -e ROOFTOP_OFFLINE=1 \
  -e OPENAI_BASE_URL=http://host.docker.internal:11434/v1 -e OPENAI_MODEL=llama3.1 \
  ghcr.io/irooftop/rooftop

У Docker localhost — це сам контейнер, тож використовуйте host.docker.internal (параметр --add-host потрібен лише в Linux). Якщо Ollama відмовляє в з'єднанні, змусьте його слухати всі інтерфейси (OLLAMA_HOST=0.0.0.0).

Що забезпечує офлайн-режим ​

Офлайн-режим
Чат, підсумок історії, опис медіа, розпізнавання голосувідхиляються, якщо кінцева точка не локальна
MCP-сервери через HTTPвідхиляються, якщо не локальні; помилка показується в Налаштуваннях
Спільний доступ через інтернет (<назва>.iroof.top)вимкнено: клієнт ретрансляції не запускається, а перемикач заблоковано
Telegram-бот, власний або спільнийне запускається
GIF за URLШІ не може надіслати GIF з нелокальної URL-адреси
Посилання Wi‑Fiпрацюють

Відхилений запит завершується до встановлення будь-якого з'єднання, а повідомлення пояснює причину: Офлайн-режим: https://openrouter.ai не є локальною кінцевою точкою. Перенаправлення з локальної кінцевої точки на інший хост теж відхиляється. Маленький значок Офлайн з'являється в заголовку бічної панелі, поки режим увімкнено. Налаштування зберігається. --offline / ROOFTOP_OFFLINE=1 вмикають режим незалежно від Налаштувань, а Налаштування не можуть його вимкнути.

Що означає «локальний» ​

localhost, петльова адреса (127.0.0.0/8, ::1), адреси приватних мереж (10/8, 172.16/12, 192.168/16, fc00::/7), link-local адреси та імена *.local і *.internal (як host.docker.internal). Модель на іншому комп'ютері вашої домашньої мережі вважається локальною, бо вона ніколи не покидає вашу мережу. Імена оцінюються за написанням, їх не розв'язують.

Чого офлайн-режим не може перевірити ​

  • stdio MCP-сервери — це програми на вашому комп'ютері. iRoof.top їх запускає, але не бачить, з чим вони з'єднуються, тож додавайте лише ті, яким довіряєте, що вони залишаться локальними.
  • Розпізнавання голосу використовує API чату (частину input_audio), а не API Whisper /audio/transcriptions. Потрібні локальний сервер і модель, які приймають там аудіо. Якщо ваш не приймає, голосове повідомлення все одно зберігається і надсилається; бракує лише його тексту.
  • Генерація зображень і мовлення існує лише як інструменти MCP. В офлайні для них використовуйте локальний MCP-сервер.
  • Люди, з якими ви ділитеся, відкривають ваші посилання Wi‑Fi у своїх браузерах. Офлайн-режим регулює цей застосунок, а не їхні пристрої.

Безпечно діліться з друзями ​

ПосиланняЩо відбувається
Wi‑Fi http://<ваша IP>:8737/s/<назва>ніколи не покидає вашу локальну мережу
Інтернет https://<назва>.iroof.top/s/<назва>застосунок відкриває одне вихідне WebSocket-з'єднання з хабом, який пересилає ним HTTP-запити відвідувача та відповіді вашого застосунку

З посиланням з інтернету ваш експорт, чати і модель залишаються на вашому комп'ютері, а хаб не зберігає жодного з них. Хаб зберігає лише запис облікового запису: ваше ім'я, хеш вашого секрету і час, коли він вас востаннє бачив.

Будьте чесними щодо того, що це не дає. Хаб завершує TLS, тому, як будь-який зворотний проксі, технічно бачить трафік, що через нього проходить: що вводить відвідувач, відповіді персонажа та історію, яку посилання дозволяє відвідувачам читати (Відвідувачі можуть читати експорт, типово нічого). Він пересилає лише сторінки відвідувачів (/s/…, /api/s/…, ресурси сторінки) і відкидає cookie в обидва боки; ваш інтерфейс власника та налаштування через нього ніколи не доступні. Якщо це забагато довіри, використовуйте посилання Wi‑Fi або запустіть власний хаб ретрансляції. Більше про посилання для спільного доступу.

В офлайн-режимі ретрансляція iroof.top вимкнена. Посилання Wi‑Fi продовжують працювати.

Telegram-бот ​

Відповідь з Telegram публікує у вашу групу:

  • нові повідомлення відвідувачів (ім'я, назву посилання, текст або мітку медіа з описом чи розшифровкою та коротку попередню версію повідомлення, на яке вони відповідають) і відповіді ШІ;
  • ніколи експортовану історію. Старі повідомлення не передаються.

У ботів немає наскрізного шифрування: текст проходить через Telegram відкритим. Зі спільним ботом він також проходить через хаб, який зберігає лише те, яка група належить якому обліковому запису. Власний бот спілкується з Telegram напряму, без хабу. Офлайн-режим вимикає обидва.

Куди йдуть ваші дані ​

ДаніКуди йдуть
Експорти, чати, налаштування, ключ APIкаталог даних на вашому комп'ютері
Імпорт і профіль стилюнікуди
Історія, профіль стилю, ваші повідомленняобрана вами кінцева точка моделі, при кожній відповіді
Фото і голоскінцева точка медіамоделі, при Описати або запису голосового
Повідомлення відвідувачів через посилання Wi‑Fiваш комп'ютер і ваша кінцева точка моделі
Повідомлення відвідувачів через посилання з інтернетухаб (дорогою), ваш комп'ютер, ваша кінцева точка моделі
Повідомлення відвідувачів через Telegramдодатково Telegram, а для спільного бота — хаб
Офлайн-режимлише локальна кінцева точка моделі, лише посилання Wi‑Fi, без Telegram

Поширюється за ліцензією MIT.