پرش به محتوا

حالت آفلاین و حریم خصوصی ​

iRoof.top گفتگوهای شما را روی رایانه‌ی شما نگه می‌دارد. با مدلی که آن هم روی رایانه‌ی شما اجرا شود، هیچ‌چیز نیازی ندارد که آن را ترک کند. حالت آفلاین این را به یک قاعده‌ی اجباری در برنامه تبدیل می‌کند، نه یک عادت.

آنچه به صورت محلی رخ می‌دهد ​

مرحلهکجا اجرا می‌شودشبکه
وارد کردن، تجزیه، پروفایل سبکرایانه‌ی شماندارد
ذخیره‌سازیفایل‌های JSON و رسانه در پوشه‌ی دادهندارد
جستجو در تاریخچه، PIN پیوندها، کتابخانه‌ی رسانهرایانه‌ی شماندارد
توصیف عکس، برچسب، GIF، ویدیومدل رسانه‌ای، فقط وقتی توصیف با AI را می‌زنیدیک درخواست برای هر مورد به نقطه‌ی پایانی مدل
تبدیل صدا به متنمدل رسانه‌ای، وقتی روی یک پیام صوتی توصیف با AI را می‌زنید یا یکی ضبط می‌کنیدیک درخواست به نقطه‌ی پایانی مدل
یک پاسخمدل گفتگو، وقتی پیامی می‌فرستید (یا بازدیدکننده می‌فرستد)درخواست‌ها به نقطه‌ی پایانی مدل
فشرده‌سازی تاریخچه‌ی طولانیمدل گفتگو، به عنوان بخشی از یک پاسخ، وقتی تاریخچه از بودجه بیشتر شودیک درخواست اضافی به نقطه‌ی پایانی مدل

وارد کردن هرگز مدلی را فراخوانی نمی‌کند. اولین فراخوانی وقتی رخ می‌دهد که پیامی بفرستید، توصیف را بزنید، یا یک پیام صوتی ضبط کنید. یک پاسخ، تاریخچه‌ی صادرشده‌ی شما (تا بودجه‌ی تاریخچه)، پروفایل سبک و توصیف رسانه‌ها را به مدل می‌فرستد. پس محلی که مدل در آن اجرا می‌شود، تعیین می‌کند گفتگوی شما کجا می‌رود: یک نقطه‌ی پایانی ابری آن را دریافت می‌کند، یک مدل روی رایانه‌ی شما آن را دریافت نمی‌کند.

اجرای کاملاً آفلاین ​

  1. Ollama یا LM Studio را نصب کنید، یا llama-server از llama.cpp را اجرا کنید.
  2. یک مدل گفتگوی پشتیبان فراخوانی ابزار دانلود کنید، و اگر می‌خواهید عکس‌ها و برچسب‌ها توصیف شوند، یک مدل بینایی.
  3. در تنظیمات نقطه‌ی پایانی و مدل را انتخاب کنید، سپس آفلاین را روشن کنید:
سرورنشانی پایه
Ollamahttp://localhost:11434/v1
LM Studiohttp://localhost:1234/v1
llama-server از llama.cpphttp://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)خاموش: کلاینت رله شروع نمی‌شود و کلید قفل است
ربات تلگرام، شخصی یا مشترکشروع نمی‌شود
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، بدون تلگرام

منتشرشده با مجوز MIT.