مواد پر جائیں
انکرپٹڈ، Tor اور I2P اینڈ پوائنٹس

انکرپٹڈ، Tor اور I2P اینڈ پوائنٹس

API Tor onion سروس اور I2P eepsite کے طور پر بھی شائع ہے۔ وہی روٹس، وہی کلید؛ صرف بیس URL اور پراکسی بدلتے ہیں۔

بیس URLs

چار ایڈریس ایک ہی API تک لے جاتے ہیں۔ وہ استعمال کریں جو آپ کے نیٹ ورک کے لیے موزوں ہو، اسی API کلید اور انہی درخواستوں کے ساتھ۔

نیٹ ورک بیس URL رسائی کا طریقہ
کلیئر ویب https://api.shannon-ai.com/v1 براہِ راست، HTTPS پر۔
انکرپٹڈ مرر https://api-encrypted.shannon-ai.com/v1 براہِ راست، HTTPS پر۔ اسی API کا دوسرا ہوسٹ نام۔
Tor (onion سروس) http://shannonmd773o5vxz75byha5rkea7nzr3srotw46uwythq3pjl6y4cad.onion/v1 Tor کلائنٹ کے ذریعے: ایک SOCKS5 پراکسی، بطورِ ڈیفالٹ 127.0.0.1:9050 پر۔
I2P (eepsite) http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1 I2P راؤٹر کے ذریعے: ایک HTTP پراکسی، بطورِ ڈیفالٹ 127.0.0.1:4444 پر۔
  • OpenAI SDK بیس URL کو جیسا دکھایا گیا ہے /v1 کے ساتھ لیتا ہے۔ Anthropic SDK اسے /v1 کے بغیر لیتا ہے۔
  • کسی ایڈریس کی تصدیق کے لیے https://api.shannon-ai.com کے جواب کے ہیڈرز پڑھیں: Onion-Location میں onion ایڈریس ہوتا ہے اور X-I2P-Location میں I2P ایڈریس۔ onion ایڈریس shannon سے شروع ہوتا ہے۔

کون سے روٹس چلتے ہیں

ہر /v1 روٹ چاروں ایڈریسز پر جواب دیتا ہے:

  • POST /v1/chat/completions
  • POST /v1/responses
  • POST /v1/messages
  • POST /v1/messages/count_tokens
  • POST /v1/tokenize
  • GET /v1/models

GET /v1/models کو کلید نہیں چاہیے، اس لیے یہ جانچنے کا تیز طریقہ ہے کہ آپ کی پراکسی API تک پہنچتی ہے۔

کیا یکساں ہے اور کیا مختلف

آئٹم یکساں؟ تفصیل
روٹس، درخواست کے فیلڈز، جوابات، غلطیاں یکساں ہر ایڈریس پر یکساں۔ کوئی روٹ ہوسٹ نام کے لحاظ سے مختلف برتاؤ نہیں کرتا۔
API کلید یکساں ایک کلید ہر ایڈریس پر چلتی ہے، Authorization: Bearer یا x-api-key کے طور پر۔ /v1 پر کوکیز کبھی نہیں پڑھی جاتیں۔
بیلنس اور حدود یکساں وہی بیلنس اور فی منٹ 120 درخواستوں کی وہی حد۔ دونوں فی اکاؤنٹ گنے جاتے ہیں، فی ایڈریس نہیں۔
درخواست کا سائز یکساں درخواست کی ہر باڈی زیادہ سے زیادہ 32 MiB۔
سکیم مختلف کلیئر ویب اور مرر پر https://۔ .onion اور .b32.i2p ایڈریسز پر http://، جہاں نیٹ ورک خود کنکشن کو شروع سے آخر تک انکرپٹ کرتا ہے۔
پراکسی مختلف کلیئر ویب پر کوئی نہیں۔ Tor کے لیے SOCKS5 پراکسی، I2P کے لیے HTTP پراکسی۔ نام کو پراکسی ریزالو کرے، آپ کی مشین نہیں۔
رفتار مختلف دونوں نیٹ ورک ہر بائٹ میں تاخیر شامل کرتے ہیں۔ I2P دونوں میں سست ہے۔

بیلنس اور حدود کا بیان ان کے اپنے صفحے پر ہے۔ حدود اور بیلنس

Tor کے ذریعے cURL

اپنی مشین پر Tor کلائنٹ چلائیں۔ یہ 127.0.0.1:9050 پر SOCKS5 پراکسی دیتا ہے۔ --socks5-hostname .onion نام اس پراکسی کو سونپ دیتا ہے۔

cURL · Tor
# 1. Is the onion service reachable? No key needed.
curl --socks5-hostname 127.0.0.1:9050 http://shannonmd773o5vxz75byha5rkea7nzr3srotw46uwythq3pjl6y4cad.onion/v1/models

# 2. A streamed chat call. -N prints the stream as it arrives.
curl -N --socks5-hostname 127.0.0.1:9050 http://shannonmd773o5vxz75byha5rkea7nzr3srotw46uwythq3pjl6y4cad.onion/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "shannon-3",
    "stream": true,
    "messages": [{"role": "user", "content": "Hello over Tor"}]
  }'

I2P کے ذریعے cURL

اپنی مشین پر I2P راؤٹر چلائیں۔ یہ 127.0.0.1:4444 پر HTTP پراکسی دیتا ہے، جو .b32.i2p نام کو جیسا ہے ویسا ہی لیتی ہے۔

cURL · I2P
# 1. Is the eepsite reachable? No key needed.
curl --proxy http://127.0.0.1:4444 http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1/models

# 2. A streamed chat call.
curl -N --proxy http://127.0.0.1:4444 http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "shannon-3",
    "stream": true,
    "messages": [{"role": "user", "content": "Hello over I2P"}]
  }'

SDK بیس URL

SDK کے لیے دو تبدیلیاں چاہییں: نیٹ ورک کا بیس URL، اور ایسا HTTP کلائنٹ جو پراکسی سے گزرے۔ Python میں دونوں سرکاری SDKs httpx کلائنٹ لیتے ہیں۔ SOCKS پراکسی کے لیے httpx[socks] انسٹال کریں۔

# pip install openai "httpx[socks]"
import httpx
from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="http://shannonmd773o5vxz75byha5rkea7nzr3srotw46uwythq3pjl6y4cad.onion/v1",
    http_client=httpx.Client(proxy="socks5h://127.0.0.1:9050", timeout=600),
)

stream = client.chat.completions.create(
    model="shannon-3",
    messages=[{"role": "user", "content": "Hello over Tor"}],
    stream=True,
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

سٹریمنگ دونوں نیٹ ورکس پر کام کرتی ہے۔ جب سٹریم کھلی ہو اور ماڈل کے پاس ابھی بھیجنے کو کچھ نہ ہو، تو API keep-alive بھیجتا ہے تاکہ کنکشن پراکسی یا آپ کے کلائنٹ کو مردہ نہ لگے۔

اینڈ پوائنٹ کھلی سٹریم پر keep-alive کس کے لیے بھیجا جاتا ہے
/v1/chat/completions ہر 15 سیکنڈ میں ایک کمنٹ لائن (جو : سے شروع ہوتی ہے)۔ تمام ماڈلز
/v1/messages ہر 15 سیکنڈ میں ایک event: ping، یا ایک کمنٹ لائن۔ تمام ماڈلز
/v1/responses ہر 15 سیکنڈ میں ایک کمنٹ لائن۔ ہوسٹڈ اوپن ویٹ ماڈلز
  • "stream": true بھیجیں۔ سٹریم کیا گیا جواب ماڈل کے لکھتے ہی آنا شروع ہو جاتا ہے، اور keep-alive ظاہر کرتا ہے کہ درخواست پر ابھی کام ہو رہا ہے۔ غیر سٹریم جواب پورا جواب تیار ہونے تک کچھ نہیں بھیجتا۔
  • کلائنٹ کو لمبا read timeout دیں۔ نمونوں میں 600 سیکنڈ استعمال ہوئے ہیں۔ 15 سیکنڈ سے کم کا ٹائم آؤٹ دو keep-alives کے درمیان سٹریم ختم کر سکتا ہے۔
  • اپنے SSE ریڈر کو کمنٹ لائنیں اور ping ایونٹس چھوڑنے دیں۔ SDKs یہ پہلے ہی کرتے ہیں۔
  • کنکشن ٹوٹتے ہی درخواست دوبارہ نہ بھیجیں۔ جو درخواست API تک پہنچ گئی وہ آخر تک چلتی ہے اور گنی جاتی ہے، کنکشن ختم ہو جانے پر بھی۔
  • راستے کو پہلے GET /v1/models سے آزمائیں۔ اسے کلید نہیں چاہیے اور یہ JSON کی مختصر فہرست لوٹاتا ہے۔

کنکشن کے مسائل

علامت وجہ اور حل
127.0.0.1:9050 یا 127.0.0.1:4444 سے کنکشن مسترد ہو جاتا ہے آپ کی مشین پر Tor کلائنٹ یا I2P راؤٹر نہیں چل رہا، یا وہ کسی اور پورٹ پر سنتا ہے۔ Tor Browser اپنی SOCKS پراکسی پورٹ 9150 پر دیتا ہے۔
.onion نام کے لیے Could not resolve host کلائنٹ نے نام خود ریزالو کرنے کی کوشش کی۔ cURL میں --socks5-hostname اور پراکسی URL میں socks5h:// استعمال کریں، تاکہ Tor کلائنٹ اسے ریزالو کرے۔
I2P پراکسی اپنے ہی ایرر صفحے سے جواب دیتی ہے راؤٹر کو ابھی ایڈریس نہیں ملا۔ شروع ہونے کے بعد راؤٹر کو چند منٹ چاہییں۔ دوبارہ کوشش کریں۔
Missing authentication کے ساتھ 401 درخواست کلید کے بغیر پہنچی۔ وہی ہیڈر بھیجیں جو کلیئر ویب پر بھیجتے ہیں۔

باقی ہر غلطی کلیئر ویب جیسی ہی ہے۔ غلطیاں

JavaScript کے بغیر آپ کی کلید

Shannon کی ایک ویب سائٹ JavaScript کے بغیر بھی ہے، جو کلیئر ویب پر، onion سروس کے طور پر اور eepsite کے طور پر دستیاب ہے۔ اس کا /keys صفحہ آپ کی API کلید دکھاتا ہے اور اسے تبدیل کرنے دیتا ہے، اس لیے آپ Tor یا I2P چھوڑے بغیر کلید حاصل کر سکتے ہیں۔ encrypted.shannon-ai.com/keys

اس ویب سائٹ کے تینوں نیٹ ورکس پر ایڈریس یہاں درج ہیں: انکرپٹڈ رسائی