ਸਮੱਗਰੀ ਤੇ ਜਾਓ
ਐਨਕ੍ਰਿਪਟਡ, Tor ਅਤੇ I2P endpoints

ਐਨਕ੍ਰਿਪਟਡ, Tor ਅਤੇ I2P endpoints

API ਨੂੰ Tor onion ਸੇਵਾ ਅਤੇ I2P eepsite ਵਜੋਂ ਵੀ ਪ੍ਰਕਾਸ਼ਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਉਹੀ routes, ਉਹੀ key; ਸਿਰਫ਼ base URL ਅਤੇ proxy ਬਦਲਦੇ ਹਨ।

Base URLs

ਚਾਰ ਪਤੇ ਇੱਕੋ API ਤੱਕ ਲੈ ਜਾਂਦੇ ਹਨ। ਉਹ ਵਰਤੋ ਜੋ ਤੁਹਾਡੇ ਨੈੱਟਵਰਕ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੋਵੇ, ਉਹੀ API key ਅਤੇ ਉਹੀ ਰਿਕੁਐਸਟਾਂ ਨਾਲ।

ਨੈੱਟਵਰਕ Base URL ਇਸ ਤੱਕ ਕਿਵੇਂ ਪਹੁੰਚਣਾ ਹੈ
ਸਾਧਾਰਨ ਵੈੱਬ https://api.shannon-ai.com/v1 ਸਿੱਧਾ, HTTPS ਰਾਹੀਂ।
ਐਨਕ੍ਰਿਪਟਡ mirror https://api-encrypted.shannon-ai.com/v1 ਸਿੱਧਾ, HTTPS ਰਾਹੀਂ। ਇਸੇ API ਲਈ ਦੂਜਾ host ਨਾਮ।
Tor (onion ਸੇਵਾ) http://shannonmd773o5vxz75byha5rkea7nzr3srotw46uwythq3pjl6y4cad.onion/v1 Tor ਕਲਾਇੰਟ ਰਾਹੀਂ: ਇੱਕ SOCKS5 proxy, ਮੂਲ ਰੂਪ ਵਿੱਚ 127.0.0.1:9050 ਉੱਤੇ।
I2P (eepsite) http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1 I2P router ਰਾਹੀਂ: ਇੱਕ HTTP proxy, ਮੂਲ ਰੂਪ ਵਿੱਚ 127.0.0.1:4444 ਉੱਤੇ।
  • OpenAI SDK base URL ਨੂੰ /v1 ਸਮੇਤ, ਜਿਵੇਂ ਦਿਖਾਇਆ ਹੈ ਉਵੇਂ ਲੈਂਦਾ ਹੈ। Anthropic SDK ਇਸਨੂੰ /v1 ਤੋਂ ਬਿਨਾਂ ਲੈਂਦਾ ਹੈ।
  • ਪਤੇ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ https://api.shannon-ai.com ਦੇ ਜਵਾਬ headers ਪੜ੍ਹੋ: Onion-Location ਵਿੱਚ onion ਪਤਾ ਹੁੰਦਾ ਹੈ ਅਤੇ X-I2P-Location ਵਿੱਚ I2P ਪਤਾ। onion ਪਤਾ shannon ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ।

ਕਿਹੜੇ routes ਕੰਮ ਕਰਦੇ ਹਨ

ਹਰ /v1 route ਚਾਰੇ ਪਤਿਆਂ ਉੱਤੇ ਜਵਾਬ ਦਿੰਦਾ ਹੈ:

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

GET /v1/models ਨੂੰ key ਦੀ ਲੋੜ ਨਹੀਂ, ਇਸ ਲਈ ਇਹ ਇਹ ਪਰਖਣ ਦਾ ਤੇਜ਼ ਤਰੀਕਾ ਹੈ ਕਿ ਤੁਹਾਡਾ proxy API ਤੱਕ ਪਹੁੰਚਦਾ ਹੈ।

ਕੀ ਇੱਕੋ ਜਿਹਾ ਹੈ ਅਤੇ ਕੀ ਵੱਖਰਾ

ਮੱਦ ਇੱਕੋ ਜਿਹਾ? ਵੇਰਵਾ
Routes, ਰਿਕੁਐਸਟ ਫੀਲਡ, ਜਵਾਬ, ਗਲਤੀਆਂ ਇੱਕੋ ਜਿਹਾ ਹਰ ਪਤੇ ਉੱਤੇ ਇੱਕੋ ਜਿਹੇ। ਕੋਈ route host ਨਾਮ ਅਨੁਸਾਰ ਵੱਖਰਾ ਵਿਹਾਰ ਨਹੀਂ ਕਰਦਾ।
API key ਇੱਕੋ ਜਿਹਾ ਇੱਕ key ਹਰ ਪਤੇ ਉੱਤੇ ਕੰਮ ਕਰਦੀ ਹੈ, Authorization: Bearer ਜਾਂ x-api-key ਵਜੋਂ। /v1 ਉੱਤੇ ਕੁਕੀਜ਼ ਕਦੇ ਨਹੀਂ ਪੜ੍ਹੀਆਂ ਜਾਂਦੀਆਂ।
ਬੈਲੇਂਸ ਅਤੇ ਸੀਮਾਵਾਂ ਇੱਕੋ ਜਿਹਾ ਉਹੀ ਬੈਲੇਂਸ ਅਤੇ ਪ੍ਰਤੀ ਮਿੰਟ 120 ਰਿਕੁਐਸਟਾਂ ਦੀ ਉਹੀ ਸੀਮਾ। ਦੋਵੇਂ ਹਰ ਖਾਤੇ ਦੇ ਹਿਸਾਬ ਨਾਲ ਗਿਣੇ ਜਾਂਦੇ ਹਨ, ਹਰ ਪਤੇ ਦੇ ਹਿਸਾਬ ਨਾਲ ਨਹੀਂ।
ਰਿਕੁਐਸਟ ਦਾ ਆਕਾਰ ਇੱਕੋ ਜਿਹਾ ਹਰ ਰਿਕੁਐਸਟ ਬਾਡੀ 32 MiB ਤੱਕ।
Scheme ਵੱਖਰਾ ਸਾਧਾਰਨ ਵੈੱਬ ਅਤੇ mirror ਉੱਤੇ https://। .onion ਅਤੇ .b32.i2p ਪਤਿਆਂ ਉੱਤੇ http://, ਜਿੱਥੇ ਨੈੱਟਵਰਕ ਆਪ ਕਨੈਕਸ਼ਨ ਨੂੰ ਸਿਰੇ ਤੋਂ ਸਿਰੇ ਤੱਕ ਐਨਕ੍ਰਿਪਟ ਕਰਦਾ ਹੈ।
Proxy ਵੱਖਰਾ ਸਾਧਾਰਨ ਵੈੱਬ ਉੱਤੇ ਕੋਈ ਨਹੀਂ। Tor ਲਈ SOCKS5 proxy, I2P ਲਈ HTTP proxy। ਨਾਮ ਨੂੰ proxy ਹੱਲ ਕਰੇ, ਤੁਹਾਡੀ ਮਸ਼ੀਨ ਨਹੀਂ।
ਗਤੀ ਵੱਖਰਾ ਦੋਵੇਂ ਨੈੱਟਵਰਕ ਹਰ ਬਾਈਟ ਵਿੱਚ ਦੇਰੀ ਜੋੜਦੇ ਹਨ। I2P ਦੋਵਾਂ ਵਿੱਚੋਂ ਹੌਲੀ ਹੈ।

ਬੈਲੇਂਸ ਅਤੇ ਸੀਮਾਵਾਂ ਦਾ ਵੇਰਵਾ ਉਨ੍ਹਾਂ ਦੇ ਆਪਣੇ ਪੰਨੇ ਉੱਤੇ ਹੈ। ਸੀਮਾਵਾਂ ਅਤੇ ਬੈਲੇਂਸ

Tor ਰਾਹੀਂ cURL

ਆਪਣੀ ਮਸ਼ੀਨ ਉੱਤੇ Tor ਕਲਾਇੰਟ ਚਲਾਓ। ਇਹ 127.0.0.1:9050 ਉੱਤੇ SOCKS5 proxy ਦਿੰਦਾ ਹੈ। --socks5-hostname .onion ਨਾਮ ਨੂੰ ਉਸ proxy ਦੇ ਹਵਾਲੇ ਕਰਦਾ ਹੈ।

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 router ਚਲਾਓ। ਇਹ 127.0.0.1:4444 ਉੱਤੇ HTTP proxy ਦਿੰਦਾ ਹੈ, ਜੋ .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 base URL

SDK ਨੂੰ ਦੋ ਬਦਲਾਅ ਚਾਹੀਦੇ ਹਨ: ਨੈੱਟਵਰਕ ਦਾ base URL, ਅਤੇ ਇੱਕ HTTP ਕਲਾਇੰਟ ਜੋ proxy ਰਾਹੀਂ ਜਾਵੇ। Python ਵਿੱਚ ਦੋਵੇਂ ਅਧਿਕਾਰਤ SDK httpx ਕਲਾਇੰਟ ਲੈਂਦੇ ਹਨ। SOCKS proxy ਲਈ 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 ਭੇਜਦਾ ਹੈ, ਤਾਂ ਜੋ ਕਨੈਕਸ਼ਨ proxy ਜਾਂ ਤੁਹਾਡੇ ਕਲਾਇੰਟ ਨੂੰ ਮਰਿਆ ਹੋਇਆ ਨਾ ਲੱਗੇ।

ਐਂਡਪੁਆਇੰਟ ਖੁੱਲ੍ਹੀ ਸਟ੍ਰੀਮ ਉੱਤੇ Keep-alive ਕਿਨ੍ਹਾਂ ਲਈ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ
/v1/chat/completions ਹਰ 15 ਸਕਿੰਟ ਬਾਅਦ ਇੱਕ ਕੁਮੈਂਟ ਲਾਈਨ (ਇਹ : ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦੀ ਹੈ)। ਸਾਰੇ ਮਾਡਲ
/v1/messages ਹਰ 15 ਸਕਿੰਟ ਬਾਅਦ ਇੱਕ event: ping, ਜਾਂ ਇੱਕ ਕੁਮੈਂਟ ਲਾਈਨ। ਸਾਰੇ ਮਾਡਲ
/v1/responses ਹਰ 15 ਸਕਿੰਟ ਬਾਅਦ ਇੱਕ ਕੁਮੈਂਟ ਲਾਈਨ। ਹੋਸਟ ਕੀਤੇ open-weight ਮਾਡਲ
  • "stream": true ਭੇਜੋ। ਸਟ੍ਰੀਮ ਹੋਇਆ ਜਵਾਬ ਮਾਡਲ ਦੇ ਲਿਖਦੇ ਹੀ ਆਉਣਾ ਸ਼ੁਰੂ ਹੋ ਜਾਂਦਾ ਹੈ, ਅਤੇ keep-alive ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ ਰਿਕੁਐਸਟ ਉੱਤੇ ਅਜੇ ਕੰਮ ਹੋ ਰਿਹਾ ਹੈ। ਬਿਨਾਂ ਸਟ੍ਰੀਮ ਵਾਲਾ ਜਵਾਬ ਪੂਰਾ ਜਵਾਬ ਤਿਆਰ ਹੋਣ ਤੱਕ ਕੁਝ ਨਹੀਂ ਭੇਜਦਾ।
  • ਕਲਾਇੰਟ ਨੂੰ ਲੰਬਾ read timeout ਦਿਓ। ਨਮੂਨੇ 600 ਸਕਿੰਟ ਵਰਤਦੇ ਹਨ। 15 ਸਕਿੰਟ ਤੋਂ ਛੋਟਾ timeout ਦੋ keep-alive ਵਿਚਕਾਰ ਸਟ੍ਰੀਮ ਨੂੰ ਖਤਮ ਕਰ ਸਕਦਾ ਹੈ।
  • ਆਪਣੇ SSE ਰੀਡਰ ਨੂੰ ਕੁਮੈਂਟ ਲਾਈਨਾਂ ਅਤੇ ping ਇਵੈਂਟ ਛੱਡਣ ਦਿਓ। SDK ਇਹ ਪਹਿਲਾਂ ਹੀ ਕਰਦੇ ਹਨ।
  • ਕਨੈਕਸ਼ਨ ਟੁੱਟਦੇ ਹੀ ਰਿਕੁਐਸਟ ਦੁਬਾਰਾ ਨਾ ਭੇਜੋ। ਜੋ ਰਿਕੁਐਸਟ API ਤੱਕ ਪਹੁੰਚ ਗਈ, ਉਹ ਅੰਤ ਤੱਕ ਚੱਲਦੀ ਹੈ ਅਤੇ ਗਿਣੀ ਜਾਂਦੀ ਹੈ, ਕਨੈਕਸ਼ਨ ਚਲੇ ਜਾਣ ਉੱਤੇ ਵੀ।
  • ਪਹਿਲਾਂ ਰਸਤੇ ਨੂੰ GET /v1/models ਨਾਲ ਪਰਖੋ। ਇਸਨੂੰ key ਦੀ ਲੋੜ ਨਹੀਂ ਅਤੇ ਇਹ ਛੋਟੀ JSON ਸੂਚੀ ਵਾਪਸ ਕਰਦਾ ਹੈ।

ਕਨੈਕਸ਼ਨ ਦੀਆਂ ਸਮੱਸਿਆਵਾਂ

ਲੱਛਣ ਕਾਰਨ ਅਤੇ ਹੱਲ
127.0.0.1:9050 ਜਾਂ 127.0.0.1:4444 ਨਾਲ ਕਨੈਕਸ਼ਨ ਰੱਦ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਤੁਹਾਡੀ ਮਸ਼ੀਨ ਉੱਤੇ ਕੋਈ Tor ਕਲਾਇੰਟ ਜਾਂ I2P router ਨਹੀਂ ਚੱਲ ਰਿਹਾ, ਜਾਂ ਉਹ ਕਿਸੇ ਹੋਰ port ਉੱਤੇ ਸੁਣਦਾ ਹੈ। Tor Browser ਆਪਣਾ SOCKS proxy port 9150 ਉੱਤੇ ਦਿੰਦਾ ਹੈ।
.onion ਨਾਮ ਲਈ Could not resolve host ਕਲਾਇੰਟ ਨੇ ਨਾਮ ਆਪ ਹੱਲ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। cURL ਵਿੱਚ --socks5-hostname ਅਤੇ proxy URL ਵਿੱਚ socks5h:// ਵਰਤੋ, ਤਾਂ ਜੋ Tor ਕਲਾਇੰਟ ਇਸਨੂੰ ਹੱਲ ਕਰੇ।
I2P proxy ਆਪਣੇ ਗਲਤੀ ਪੰਨੇ ਨਾਲ ਜਵਾਬ ਦਿੰਦਾ ਹੈ router ਨੂੰ ਪਤਾ ਅਜੇ ਨਹੀਂ ਮਿਲਿਆ। ਸ਼ੁਰੂ ਹੋਣ ਤੋਂ ਬਾਅਦ router ਨੂੰ ਕੁਝ ਮਿੰਟ ਚਾਹੀਦੇ ਹਨ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।
401 ਅਤੇ Missing authentication ਰਿਕੁਐਸਟ ਬਿਨਾਂ key ਦੇ ਪਹੁੰਚੀ। ਉਹੀ header ਭੇਜੋ ਜੋ ਸਾਧਾਰਨ ਵੈੱਬ ਉੱਤੇ ਭੇਜਦੇ ਹੋ।

ਹਰ ਹੋਰ ਗਲਤੀ ਸਾਧਾਰਨ ਵੈੱਬ ਵਾਂਗ ਹੀ ਹੈ। ਗਲਤੀਆਂ

JavaScript ਤੋਂ ਬਿਨਾਂ ਤੁਹਾਡੀ key

Shannon ਦੀ JavaScript ਤੋਂ ਬਿਨਾਂ ਵੈੱਬਸਾਈਟ ਵੀ ਹੈ, ਜੋ ਸਾਧਾਰਨ ਵੈੱਬ ਉੱਤੇ, onion ਸੇਵਾ ਵਜੋਂ ਅਤੇ eepsite ਵਜੋਂ ਪਹੁੰਚਯੋਗ ਹੈ। ਇਸਦਾ /keys ਪੰਨਾ ਤੁਹਾਡੀ API key ਦਿਖਾਉਂਦਾ ਹੈ ਅਤੇ ਤੁਹਾਨੂੰ ਇਸਨੂੰ ਬਦਲਣ ਦਿੰਦਾ ਹੈ, ਇਸ ਲਈ ਤੁਸੀਂ Tor ਜਾਂ I2P ਛੱਡੇ ਬਿਨਾਂ key ਲੈ ਸਕਦੇ ਹੋ। encrypted.shannon-ai.com/keys

ਉਸ ਵੈੱਬਸਾਈਟ ਦੇ ਤਿੰਨਾਂ ਨੈੱਟਵਰਕਾਂ ਉੱਤੇ ਪਤੇ ਇੱਥੇ ਦਿੱਤੇ ਹਨ: ਐਨਕ੍ਰਿਪਟਡ ਪਹੁੰਚ