حالت آفلاین و حریم خصوصی
iRoof.top گفتگوهای شما را روی رایانهی شما نگه میدارد. با مدلی که آن هم روی رایانهی شما اجرا شود، هیچچیز نیازی ندارد که آن را ترک کند. حالت آفلاین این را به یک قاعدهی اجباری در برنامه تبدیل میکند، نه یک عادت.
آنچه به صورت محلی رخ میدهد
| مرحله | کجا اجرا میشود | شبکه |
|---|---|---|
| وارد کردن، تجزیه، پروفایل سبک | رایانهی شما | ندارد |
| ذخیرهسازی | فایلهای JSON و رسانه در پوشهی داده | ندارد |
| جستجو در تاریخچه، PIN پیوندها، کتابخانهی رسانه | رایانهی شما | ندارد |
| توصیف عکس، برچسب، GIF، ویدیو | مدل رسانهای، فقط وقتی توصیف با AI را میزنید | یک درخواست برای هر مورد به نقطهی پایانی مدل |
| تبدیل صدا به متن | مدل رسانهای، وقتی روی یک پیام صوتی توصیف با AI را میزنید یا یکی ضبط میکنید | یک درخواست به نقطهی پایانی مدل |
| یک پاسخ | مدل گفتگو، وقتی پیامی میفرستید (یا بازدیدکننده میفرستد) | درخواستها به نقطهی پایانی مدل |
| فشردهسازی تاریخچهی طولانی | مدل گفتگو، به عنوان بخشی از یک پاسخ، وقتی تاریخچه از بودجه بیشتر شود | یک درخواست اضافی به نقطهی پایانی مدل |
وارد کردن هرگز مدلی را فراخوانی نمیکند. اولین فراخوانی وقتی رخ میدهد که پیامی بفرستید، توصیف را بزنید، یا یک پیام صوتی ضبط کنید. یک پاسخ، تاریخچهی صادرشدهی شما (تا بودجهی تاریخچه)، پروفایل سبک و توصیف رسانهها را به مدل میفرستد. پس محلی که مدل در آن اجرا میشود، تعیین میکند گفتگوی شما کجا میرود: یک نقطهی پایانی ابری آن را دریافت میکند، یک مدل روی رایانهی شما آن را دریافت نمیکند.
اجرای کاملاً آفلاین
- Ollama یا LM Studio را نصب کنید، یا
llama-serverاز llama.cpp را اجرا کنید. - یک مدل گفتگوی پشتیبان فراخوانی ابزار دانلود کنید، و اگر میخواهید عکسها و برچسبها توصیف شوند، یک مدل بینایی.
- در تنظیمات نقطهی پایانی و مدل را انتخاب کنید، سپس آفلاین را روشن کنید:
| سرور | نشانی پایه |
|---|---|
| Ollama | http://localhost:11434/v1 |
| LM Studio | http://localhost:1234/v1 |
llama-server از llama.cpp | http://localhost:8081/v1 (درگاه پیشفرض آن 8080 متعلق به iRoof.top است: آن را با llama-server --port 8081 راهاندازی کنید) |
- آزمایش را بزنید. یک درخواست کوچک میفرستد و مدل و میزبانی که پاسخ داد را نشان میدهد. میتوانید شبکه را خاموش کنید و همچنان گفتگو کنید.
برنامهی دسکتاپ در تنظیمات پیکربندی میشود. پوستهی شما یا فایل .env را نمیخواند (برنامهی دسکتاپ را ببینید)، اما اگر ROOFTOP_OFFLINE و OPENAI_* در محیطی باشند که با آن راهاندازی شده، به آنها احترام میگذارد. یک سرور محیط (و .env) را میخواند:
# --offline همان ROOFTOP_OFFLINE=1 است
OPENAI_BASE_URL=http://localhost:11434/v1 OPENAI_MODEL=llama3.1 rooftop --offlinedocker 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) | خاموش: کلاینت رله شروع نمیشود و کلید قفل است |
| ربات تلگرام، شخصی یا مشترک | شروع نمیشود |
| GIF از طریق URL | هوش مصنوعی نمیتواند GIF را از URL غیرمحلی بفرستد |
| پیوندهای اشتراک Wi‑Fi | کار میکنند |
یک درخواست ردشده قبل از برقراری هر اتصالی شکست میخورد و پیام دلیل را میگوید: حالت آفلاین: https://openrouter.ai یک نقطهی پایانی محلی نیست. تغییر مسیر از یک نقطهی پایانی محلی به میزبان دیگری نیز رد میشود. یک نشان کوچک آفلاین در سرصفحهی نوار کناری نمایش داده میشود تا وقتی حالت روشن است. تنظیم ذخیره میشود. --offline / ROOFTOP_OFFLINE=1 حالت را بدون توجه به تنظیمات روشن میکنند، و تنظیمات نمیتوانند آن را خاموش کنند.
«محلی» یعنی چه
localhost، loopback (127.0.0.0/8، ::1)، نشانیهای شبکهی خصوصی (10/8، 172.16/12، 192.168/16، fc00::/7)، نشانیهای link-local، و نامهای *.local و *.internal (مانند host.docker.internal). مدلی که روی رایانهی دیگری در شبکهی خانگی شما باشد محلی به حساب میآید، زیرا هرگز شبکهی شما را ترک نمیکند. نامها بر اساس نوشتهشان ارزیابی میشوند و جستجو نمیشوند.
آنچه حالت آفلاین نمیتواند بررسی کند
- سرورهای MCP از نوع stdio برنامههایی روی رایانهی شما هستند. 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/…، داراییهای صفحه) را منتقل میکند و کوکیها را در هر دو جهت حذف میکند؛ رابط مالک و تنظیمات شما هرگز از طریق آن در دسترس نیستند. اگر این اعتماد هم زیاد است، از پیوندهای Wi‑Fi استفاده کنید، یا هاب رلهی خودتان را اجرا کنید. دربارهی پیوندهای اشتراکگذاری بیشتر بخوانید.
با حالت آفلاین، رلهی iroof.top خاموش است. پیوندهای Wi‑Fi همچنان کار میکنند.
ربات تلگرام
پاسخ از تلگرام در گروه شما اینها را منتشر میکند:
- پیامهای بازدیدکنندهی جدید (نام، نام پیوند، متن، یا برچسب رسانه با توصیف یا رونوشت آن، و پیشنمایش کوتاهی از پیامی که به آن پاسخ میدهند) و پاسخهای هوش مصنوعی؛
- هرگز تاریخچهی صادرشده. پیامهای قدیمی ارسال نمیشوند.
رباتها رمزگذاری سرتاسری ندارند: متن به صورت ساده از تلگرام عبور میکند. با ربات مشترک، از هاب هم عبور میکند که فقط نگه میدارد کدام گروه متعلق به کدام حساب است. ربات شخصی مستقیم با تلگرام صحبت میکند، بدون هاب. حالت آفلاین هر دو را خاموش میکند.
دادههای شما کجا میروند
| داده | کجا میرود |
|---|---|
| صادراتها، گفتگوها، تنظیمات، کلید API | پوشهی داده روی رایانهی شما |
| وارد کردن و پروفایل سبک | هیچجا |
| تاریخچه، پروفایل سبک، پیامهای شما | نقطهی پایانی مدلی که انتخاب کردهاید، در هر پاسخ |
| عکسها و صدا | نقطهی پایانی مدل رسانهای، با توصیف یا وقتی یک پیام صوتی ضبط میکنید |
| پیامهای بازدیدکننده روی پیوند Wi‑Fi | رایانهی شما و نقطهی پایانی مدل شما |
| پیامهای بازدیدکننده روی پیوند اینترنتی | هاب (در مسیر)، رایانهی شما، نقطهی پایانی مدل شما |
| پیامهای بازدیدکننده با تلگرام | علاوه بر آن، تلگرام، و برای ربات مشترک، هاب |
| حالت آفلاین | فقط نقطهی پایانی مدل محلی، فقط پیوندهای Wi‑Fi، بدون تلگرام |