آف لائن اور رازداری
iRoof.top آپ کی چیٹس آپ کے کمپیوٹر پر رکھتا ہے۔ جب ماڈل بھی آپ کے کمپیوٹر پر چلے، تو کچھ بھی باہر نہیں جاتا۔ Offline mode اسے عادت کے بجائے ایک ایسا اصول بناتا ہے جسے ایپ خود نافذ کرتی ہے۔
مقامی طور پر کیا ہوتا ہے
| مرحلہ | کہاں چلتا ہے | نیٹ ورک |
|---|---|---|
| درآمد، پارسنگ، انداز کا پروفائل | آپ کا کمپیوٹر | کوئی نہیں |
| ذخیرہ | ڈیٹا ڈائریکٹری میں JSON فائلیں اور میڈیا | کوئی نہیں |
| تاریخ میں تلاش، شیئر لنکس کے PIN، میڈیا لائبریری | آپ کا کمپیوٹر | کوئی نہیں |
| تصاویر، اسٹیکرز، GIFs، ویڈیوز کی تفصیل | میڈیا ماڈل، صرف جب آپ Describe with AI دبائیں | ہر آئٹم کے لیے ماڈل endpoint پر ایک درخواست |
| صوتی پیغام کو متن میں بدلنا | میڈیا ماڈل، جب آپ کسی صوتی پیغام پر Describe with AI دبائیں یا ریکارڈ کریں | ماڈل endpoint پر ایک درخواست |
| جواب | چیٹ ماڈل، جب آپ پیغام بھیجیں (یا کوئی وزیٹر بھیجے) | ماڈل endpoint پر درخواستیں |
| طویل تاریخ کو مختصر کرنا | چیٹ ماڈل، جواب کے حصے کے طور پر، جب تاریخ بجٹ سے بڑھ جائے | ماڈل endpoint پر ایک اضافی درخواست |
درآمد کبھی ماڈل کو کال نہیں کرتی۔ پہلی کال اس وقت ہوتی ہے جب آپ پیغام بھیجیں، Describe دبائیں، یا صوتی پیغام ریکارڈ کریں۔ جواب کے وقت ماڈل کو آپ کی ایکسپورٹ شدہ تاریخ (تاریخ کی حد تک)، انداز کا پروفائل اور میڈیا کی تفصیلات بھیجی جاتی ہیں۔ تو جہاں ماڈل چلتا ہے وہی طے کرتا ہے کہ آپ کی چیٹ کہاں جاتی ہے: کلاؤڈ endpoint اسے وصول کرتا ہے، آپ کے کمپیوٹر پر چلنے والا ماڈل نہیں۔
مکمل طور پر آف لائن چلائیں
- Ollama یا LM Studio انسٹال کریں، یا llama.cpp کا
llama-serverچلائیں۔ - ایک فنکشن کال سپورٹ کرنے والا چیٹ ماڈل ڈاؤن لوڈ کریں، اور اگر تصاویر اور اسٹیکرز کی تفصیل چاہیے تو ایک vision ماڈل۔
- Settings میں endpoint اور ماڈل چنیں، پھر Offline آن کریں:
| سرور | Base URL |
|---|---|
| Ollama | http://localhost:11434/v1 |
| LM Studio | http://localhost:1234/v1 |
llama.cpp llama-server | http://localhost:8081/v1 (اس کا ڈیفالٹ پورٹ 8080 iRoof.top کا ہے: llama-server --port 8081 سے شروع کریں) |
- Test دبائیں۔ یہ ایک چھوٹی درخواست بھیجتا ہے اور دکھاتا ہے کہ کس ماڈل اور کس ہوسٹ نے جواب دیا۔ اس کے بعد آپ نیٹ ورک بند کر کے بھی چیٹ کر سکتے ہیں۔
ڈیسک ٹاپ ایپ کی ترتیب Settings میں ہوتی ہے۔ وہ آپ کا شیل یا .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/rooftopDocker میں localhost خود کنٹینر ہے، اس لیے host.docker.internal استعمال کریں (--add-host فلیگ صرف Linux پر درکار ہے)۔ اگر Ollama کنکشن قبول نہ کرے تو اسے تمام انٹرفیسز پر سننے دیں (OLLAMA_HOST=0.0.0.0)۔
آف لائن موڈ کیا نافذ کرتا ہے
| Offline mode | |
|---|---|
| چیٹ، تاریخ کا خلاصہ، میڈیا کی تفصیل، صوتی متن | جب تک endpoint مقامی نہ ہو، رد |
| HTTP پر پہنچنے والے MCP سرورز | جب تک مقامی نہ ہوں، رد، Settings میں خرابی کے طور پر دکھائے جاتے ہیں |
انٹرنیٹ پر شیئرنگ (<name>.iroof.top) | بند: relay client شروع نہیں ہوتا، اور سوئچ لاک ہو جاتا ہے |
| Telegram bot، اپنا یا مشترکہ | شروع نہیں ہوتا |
| URL سے GIFs | AI کسی ایسے URL سے GIF نہیں بھیج سکتا جو مقامی نہ ہو |
| Wi‑Fi شیئر لنکس | کام کرتے ہیں |
رد شدہ درخواست کسی بھی کنکشن سے پہلے ناکام ہوتی ہے، اور پیغام وجہ بتاتا ہے: Offline mode: https://openrouter.ai is not a local endpoint۔ مقامی endpoint سے کسی دوسرے ہوسٹ کی طرف redirect بھی رد ہوتا ہے۔ موڈ آن ہونے پر سائیڈبار کے ہیڈر میں ایک چھوٹا Offline بیج نظر آتا ہے۔ یہ سیٹنگ محفوظ ہو جاتی ہے۔ --offline / ROOFTOP_OFFLINE=1 اسے Settings سے قطع نظر آن کر دیتے ہیں، اور Settings اسے بند نہیں کر سکتیں۔
«مقامی» کا مطلب
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)۔ آپ کے گھر کے نیٹ ورک میں کسی دوسرے کمپیوٹر پر موجود ماڈل کو مقامی سمجھا جاتا ہے، کیونکہ وہ آپ کے نیٹ ورک سے باہر نہیں جاتا۔ نام ان کے لکھے جانے کے انداز سے پرکھے جاتے ہیں، ان کی تلاش نہیں کی جاتی۔
آف لائن موڈ کیا جانچ نہیں سکتا
- stdio MCP سرورز آپ کے کمپیوٹر پر چلنے والے پروگرام ہیں۔ iRoof.top انہیں شروع کرتا ہے مگر یہ نہیں دیکھ سکتا کہ وہ کہاں سے جڑتے ہیں، اس لیے صرف انہی کو شامل کریں جن پر آپ بھروسہ کرتے ہیں۔
- صوتی متن چیٹ API (
input_audioحصہ) استعمال کرتا ہے، نہ کہ Whisper کا/audio/transcriptionsAPI۔ اس کے لیے ایک مقامی سرور اور ماڈل درکار ہے جو وہاں آڈیو قبول کرے۔ اگر آپ کا نہ کرے تو صوتی پیغام پھر بھی محفوظ اور بھیجا جاتا ہے، صرف اس کا متن نہیں ہوتا۔ - تصویر اور آواز بنانا صرف MCP ٹولز کے طور پر دستیاب ہے۔ آف لائن ان کے لیے مقامی MCP سرور استعمال کریں۔
- جن لوگوں کے ساتھ آپ شیئر کرتے ہیں وہ Wi‑Fi لنکس اپنے اپنے براؤزر میں کھولتے ہیں۔ آف لائن موڈ اس ایپ پر لاگو ہوتا ہے، ان کے آلات پر نہیں۔
دوستوں کے ساتھ محفوظ شیئرنگ
| لنک | کیا ہوتا ہے |
|---|---|
Wi‑Fi http://<your IP>:8737/s/<name> | کبھی آپ کے مقامی نیٹ ورک سے باہر نہیں جاتا |
Internet https://<name>.iroof.top/s/<name> | ایپ ہب سے ایک باہر جانے والا WebSocket کھولتی ہے، جس پر ہب وزیٹر کی HTTP درخواستیں آگے بھیجتا ہے اور ایپ کے جوابات واپس لیتا ہے |
انٹرنیٹ لنک کے ساتھ، آپ کی ایکسپورٹ، آپ کی چیٹس اور ماڈل آپ کے کمپیوٹر پر رہتے ہیں، اور ہب ان میں سے کچھ بھی محفوظ نہیں کرتا۔ ہب صرف ایک اکاؤنٹ ریکارڈ رکھتا ہے: آپ کا نام، آپ کے راز کا ہیش، اور یہ کہ اس نے آپ کو آخری بار کب دیکھا۔
یہ بھی واضح رہے کہ اس سے کیا نہیں ملتا۔ ہب TLS ختم کرتا ہے، اس لیے، کسی بھی ریورس پراکسی کی طرح، وہ تکنیکی طور پر اس ٹریفک کو دیکھ سکتا ہے جو اس سے گزرتا ہے: وزیٹر کیا لکھتا ہے، کردار کے جواب، اور وہ تاریخ جو لنک وزیٹرز کو پڑھنے دیتا ہے (Visitors can read the export، ڈیفالٹ nothing)۔ یہ صرف وزیٹر کے صفحات (/s/…، /api/s/…، صفحے کے اثاثے) آگے بھیجتا ہے، اور دونوں سمتوں میں cookies ہٹا دیتا ہے۔ آپ کا مالک UI اور سیٹنگز اس کے ذریعے کبھی قابلِ رسائی نہیں ہوتے۔ اگر یہ اعتماد بہت زیادہ لگے تو Wi‑Fi لنکس استعمال کریں، یا اپنا ریلے ہب چلائیں۔ شیئر لنکس کے بارے میں مزید۔
Offline mode کے ساتھ iroof.top ریلے بند ہوتا ہے۔ Wi‑Fi لنکس کام کرتے رہتے ہیں۔
ٹیلیگرام بوٹ
Telegram سے جواب دیں آپ کے گروپ میں پوسٹ کرتا ہے:
- نئے وزیٹر پیغامات (نام، لنک کا نام، متن، یا میڈیا کا لیبل اپنی تفصیل یا متن کے ساتھ، اور اس پیغام کا مختصر پیش نظارہ جس کا یہ جواب تھا) اور AI کے جوابات؛
- کبھی ایکسپورٹ شدہ تاریخ نہیں۔ پرانے پیغامات منتقل نہیں ہوتے۔
Bots میں end-to-end encryption نہیں ہوتا: متن سادہ شکل میں Telegram سے گزرتا ہے۔ مشترکہ bot کے ساتھ یہ ہب سے بھی گزرتا ہے، جو صرف یہ محفوظ رکھتا ہے کہ کون سا گروپ کس اکاؤنٹ کا ہے۔ اپنا bot ہب کے بغیر براہ راست Telegram سے بات کرتا ہے۔ آف لائن موڈ دونوں کو بند کر دیتا ہے۔
آپ کا ڈیٹا کہاں جاتا ہے
| ڈیٹا | کہاں جاتا ہے |
|---|---|
| ایکسپورٹس، چیٹس، سیٹنگز، API کلید | آپ کے کمپیوٹر پر ڈیٹا ڈائریکٹری |
| درآمد اور انداز کا پروفائل | کہیں نہیں |
| تاریخ، انداز کا پروفائل، آپ کے پیغامات | جو ماڈل endpoint آپ نے چنا، ہر جواب پر |
| تصاویر اور آواز | میڈیا ماڈل endpoint، Describe پر یا صوتی پیغام ریکارڈ کرنے پر |
| Wi‑Fi لنک پر وزیٹر کے پیغامات | آپ کا کمپیوٹر اور آپ کا ماڈل endpoint |
| انٹرنیٹ لنک پر وزیٹر کے پیغامات | ہب (راستے میں)، آپ کا کمپیوٹر، آپ کا ماڈل endpoint |
| Telegram کے ساتھ وزیٹر کے پیغامات | اس کے علاوہ Telegram، اور مشترکہ bot کے لیے ہب |
| آف لائن موڈ | صرف مقامی ماڈل endpoint، صرف Wi‑Fi لنکس، کوئی Telegram نہیں |