Անցնել բովանդակությանը
Գաղտնագրված, Tor և I2P endpoint-ներ

Գաղտնագրված, Tor և I2P endpoint-ներ

API-ն հրապարակված է նաև որպես Tor onion ծառայություն և I2P eepsite։ Նույն ուղիները, նույն բանալին. փոխվում են միայն base URL-ը և proxy-ն։

Base URL-ներ

Չորս հասցե տանում են նույն API-ին։ Օգտագործեք այն, որը համապատասխանում է ձեր ցանցին՝ նույն API բանալիով և նույն հարցումներով։

Ցանց Base URL Ինչպես հասնել
Բաց վեբ https://api.shannon-ai.com/v1 Ուղղակիորեն՝ HTTPS-ով։
Գաղտնագրված mirror https://api-encrypted.shannon-ai.com/v1 Ուղղակիորեն՝ HTTPS-ով։ Նույն API-ի երկրորդ հոսթի անունը։
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-ի պատասխանի header-ները. 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-ը բանալի չի պահանջում, ինչը այն դարձնում է արագ ստուգում, որ ձեր proxy-ն հասնում է API-ին։

Ինչն է նույնը և ինչով է տարբերվում

Կետ Նույնն է՞ Մանրամասն
Ուղիներ, հարցման դաշտեր, պատասխաններ, սխալներ Նույնը Նույնն են յուրաքանչյուր հասցեի վրա։ Ոչ մի ուղի հոսթի անունից կախված այլ կերպ չի վարվում։
API բանալի Նույնը Մեկ բանալին աշխատում է յուրաքանչյուր հասցեի վրա՝ որպես Authorization: Bearer կամ x-api-key։ Cookie-ները /v1-ում երբեք չեն կարդացվում։
Մնացորդ և սահմաններ Նույնը Նույն մնացորդը և րոպեում 120 հարցման նույն սահմանը։ Երկուսն էլ հաշվվում են ըստ հաշվի, ոչ թե ըստ հասցեի։
Հարցման չափ Նույնը Մինչև 32 MiB հարցման մարմնի համար։
Սխեմա Տարբերվում է https:// բաց վեբում և mirror-ում։ http:// .onion և .b32.i2p հասցեների վրա, որտեղ ցանցն ինքը կողից կողք գաղտնագրում է կապը։
Proxy Տարբերվում է Բաց վեբում՝ ոչ մի։ Tor-ի համար՝ SOCKS5 proxy, I2P-ի համար՝ HTTP proxy։ Անունը պետք է լուծի proxy-ն, ոչ թե ձեր մեքենան։
Արագություն Տարբերվում է Երկու ցանցերն էլ ավելացնում են ուշացում յուրաքանչյուր բայթի համար։ I2P-ն երկուսից ավելի դանդաղն է։

Մնացորդը և սահմանները նկարագրված են իրենց էջում։ Սահմանաչափեր և մնացորդ

cURL՝ Tor-ի միջոցով

Գործարկեք Tor կլիենտ ձեր մեքենայի վրա։ Այն առաջարկում է SOCKS5 proxy 127.0.0.1:9050-ում։ --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"}]
  }'

cURL՝ I2P-ի միջոցով

Գործարկեք I2P router ձեր մեքենայի վրա։ Այն առաջարկում է HTTP proxy 127.0.0.1:4444-ում, որը ընդունում է .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)

Streaming-ն աշխատում է երկու ցանցերով էլ։ Մինչ հոսքը բաց է և մոդելը դեռ ուղարկելու բան չունի, API-ն ուղարկում է keep-alive, որպեսզի կապը proxy-ին կամ ձեր կլիենտին մեռած չթվա։

Endpoint Keep-alive բաց հոսքում Ուղարկվում է
/v1/chat/completions Մեկնաբանության տող (սկսվում է :-ով) ամեն 15 վայրկյանը մեկ։ Բոլոր մոդելները
/v1/messages event: ping կամ մեկնաբանության տող՝ ամեն 15 վայրկյանը մեկ։ Բոլոր մոդելները
/v1/responses Մեկնաբանության տող ամեն 15 վայրկյանը մեկ։ Hosted open-weight մոդելներ
  • Ուղարկեք "stream": true։ Streaming պատասխանը սկսում է գալ հենց որ մոդելը գրում է, և keep-alive-ը ցույց է տալիս, որ հարցումը դեռ մշակվում է։ Streaming չունեցող պատասխանը ոչինչ չի ուղարկում, մինչև ամբողջ պատասխանը պատրաստ լինի։
  • Կլիենտին տվեք երկար read timeout։ Օրինակներն օգտագործում են 600 վայրկյան։ 15 վայրկյանից կարճ timeout-ը կարող է ավարտել հոսքը երկու keep-alive-ի միջև։
  • Թող ձեր SSE ընթերցողը բաց թողնի մեկնաբանության տողերը և ping իրադարձությունները։ SDK-ներն արդեն անում են դա։
  • Կապի խզվելու պահին հարցումը կրկին մի ուղարկեք։ API-ին հասած հարցումը աշխատում է մինչև վերջ և հաշվվում է, նույնիսկ երբ կապն արդեն չկա։
  • Ճանապարհը նախ ստուգեք GET /v1/models-ով։ Այն բանալի չի պահանջում և վերադարձնում է կարճ JSON ցանկ։

Կապի խնդիրներ

Ախտանիշ Պատճառը և լուծումը
Կապը 127.0.0.1:9050-ին կամ 127.0.0.1:4444-ին մերժվում է Ձեր մեքենայի վրա Tor կլիենտ կամ I2P router չի աշխատում, կամ այն լսում է այլ պորտ։ Tor Browser-ն իր SOCKS proxy-ն առաջարկում է 9150 պորտում։
Could not resolve host .onion անվան համար Կլիենտը փորձել է անունը լուծել ինքը։ cURL-ում օգտագործեք --socks5-hostname, իսկ proxy URL-ում՝ socks5h://, որպեսզի Tor կլիենտը լուծի այն։
I2P proxy-ն պատասխանում է իր սեփական սխալի էջով Router-ը դեռ չի գտել հասցեն։ Router-ին մեկնարկից հետո մի քանի րոպե է պետք։ Փորձեք կրկին։
401 Missing authentication-ով Հարցումը հասել է առանց բանալու։ Ուղարկեք նույն header-ը, ինչ բաց վեբում։

Մնացած յուրաքանչյուր սխալ նույնն է, ինչ բաց վեբում։ Սխալների մշակում

Ձեր բանալին առանց JavaScript-ի

Shannon-ն ունի նաև առանց JavaScript-ի կայք, որը հասանելի է բաց վեբում, որպես onion ծառայություն և որպես eepsite։ Դրա /keys էջը ցույց է տալիս ձեր API բանալին և թույլ է տալիս փոխել այն, ուստի բանալի կարող եք ստանալ առանց Tor-ից կամ I2P-ից դուրս գալու։ encrypted.shannon-ai.com/keys

Այդ կայքի հասցեները բոլոր երեք ցանցերում թվարկված են այստեղ. Գաղտնագրված հասանելիություն