કન્ટેન્ટ પર જાઓ
એન્ક્રિપ્ટેડ, Tor અને I2P એન્ડપોઇન્ટ્સ

એન્ક્રિપ્ટેડ, Tor અને I2P એન્ડપોઇન્ટ્સ

API Tor onion સર્વિસ અને I2P eepsite તરીકે પણ પ્રકાશિત છે. એ જ રૂટ્સ, એ જ કી; ફક્ત base URL અને પ્રોક્સી બદલાય છે.

Base URLs

ચાર સરનામાં એ જ API સુધી લઈ જાય છે. તમારા નેટવર્કને અનુકૂળ સરનામું વાપરો, એ જ API કી અને એ જ રિક્વેસ્ટ્સ સાથે.

નેટવર્ક Base 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 base 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 base URL

SDK માં બે ફેરફાર જોઈએ: નેટવર્કનું base 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)

Streaming બંને નેટવર્ક્સ પર ચાલે છે. સ્ટ્રીમ ખુલ્લો હોય અને મોડેલ પાસે હજી મોકલવા જેવું કંઈ ન હોય ત્યારે API keep-alive મોકલે છે, જેથી કનેક્શન પ્રોક્સીને કે તમારા ક્લાયન્ટને મૃત ન લાગે.

એન્ડપોઇન્ટ ખુલ્લા સ્ટ્રીમ પર 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 ઇવેન્ટ્સ છોડવા દો. 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

એ વેબસાઇટના ત્રણેય નેટવર્ક્સ પરનાં સરનામાં અહીં યાદીમાં છે: એન્ક્રિપ્ટેડ એક્સેસ