Pereiti prie turinio
Šifruoti, Tor ir I2P galiniai taškai

Šifruoti, Tor ir I2P galiniai taškai

API taip pat paskelbtas kaip Tor onion paslauga ir I2P eepsite. Tie patys keliai, tas pats raktas; keičiasi tik bazinis URL ir tarpinis serveris.

Baziniai URL

Keturi adresai veda į tą patį API. Naudokite tą, kuris tinka jūsų tinklui, su tuo pačiu API raktu ir tomis pačiomis užklausomis.

Tinklas Bazinis URL Kaip pasiekti
Paprastas žiniatinklis https://api.shannon-ai.com/v1 Tiesiogiai, per HTTPS.
Šifruotas veidrodis https://api-encrypted.shannon-ai.com/v1 Tiesiogiai, per HTTPS. Antras to paties API serverio vardas.
Tor (onion paslauga) http://shannonmd773o5vxz75byha5rkea7nzr3srotw46uwythq3pjl6y4cad.onion/v1 Per Tor klientą: SOCKS5 tarpinį serverį, pagal nutylėjimą adresu 127.0.0.1:9050.
I2P (eepsite) http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1 Per I2P maršrutizatorių: HTTP tarpinį serverį, pagal nutylėjimą adresu 127.0.0.1:4444.
  • OpenAI SDK priima bazinį URL, kaip parodyta, su /v1. Anthropic SDK priima jį be /v1.
  • Norėdami patikrinti adresą, perskaitykite https://api.shannon-ai.com atsakymo antraštes: Onion-Location talpina onion adresą, o X-I2P-Location – I2P adresą. Onion adresas prasideda shannon.

Kurie keliai veikia

Kiekvienas /v1 kelias atsako visais keturiais adresais:

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

GET /v1/models rakto nereikia, todėl tai greitas bandymas, ar jūsų tarpinis serveris pasiekia API.

Kas vienodai ir kas skiriasi

Punktas Ar vienodai? Detalės
Keliai, užklausos laukai, atsakymai, klaidos Vienodai Kiekvienu adresu vienodi. Nė vienas kelias nesielgia kitaip dėl serverio vardo.
API raktas Vienodai Vienas raktas veikia kiekvienu adresu, kaip Authorization: Bearer arba x-api-key. Slapukai kelyje /v1 niekada neskaitomi.
Balansas ir ribos Vienodai Tas pats balansas ir ta pati riba – 120 užklausų per minutę. Abu skaičiuojami pagal paskyrą, o ne pagal adresą.
Užklausos dydis Vienodai Iki 32 MiB užklausos turinio.
Schema Skiriasi https:// paprastame žiniatinklyje ir veidrodyje. http:// adresais .onion ir .b32.i2p, kur patį ryšį nuo galo iki galo šifruoja pats tinklas.
Tarpinis serveris Skiriasi Paprastame žiniatinklyje nėra. Tor – SOCKS5 tarpinis serveris, I2P – HTTP tarpinis serveris. Vardą turi išspręsti tarpinis serveris, o ne jūsų kompiuteris.
Greitis Skiriasi Abu tinklai prideda vėlinimą kiekvienam baitui. I2P iš dviejų lėtesnis.

Balansas ir ribos aprašyti savo puslapyje. Ribos ir balansas

cURL per Tor

Savo kompiuteryje paleiskite Tor klientą. Jis siūlo SOCKS5 tarpinį serverį adresu 127.0.0.1:9050. --socks5-hostname perduoda .onion vardą tam tarpiniam serveriui.

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 per I2P

Savo kompiuteryje paleiskite I2P maršrutizatorių. Jis siūlo HTTP tarpinį serverį adresu 127.0.0.1:4444, kuris priima .b32.i2p vardą tokį, koks yra.

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 bazinis URL

SDK reikia dviejų pakeitimų: tinklo bazinio URL ir HTTP kliento, einančio per tarpinį serverį. Python kalboje abu oficialūs SDK priima httpx klientą. SOCKS tarpiniam serveriui įdiekite 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)

Srautinis perdavimas veikia abiejuose tinkluose. Kol srautas atviras ir modelis dar neturi ką siųsti, API siunčia palaikymo eilutę, kad ryšys tarpiniam serveriui ar jūsų klientui neatrodytų miręs.

Galinis taškas Palaikymas atvirame sraute Siunčiama
/v1/chat/completions Komentarų eilutė (prasideda :) kas 15 sekundžių. Visi modeliai
/v1/messages event: ping arba komentarų eilutė kas 15 sekundžių. Visi modeliai
/v1/responses Komentarų eilutė kas 15 sekundžių. Talpinami atvirų svorių modeliai
  • Siųskite "stream": true. Srautinis atsakymas pradeda ateiti, kai tik modelis rašo, o palaikymo eilutės rodo, kad užklausa vis dar vykdoma. Ne srautinis atsakymas nieko nesiunčia, kol visas atsakymas nepasiruošęs.
  • Nustatykite klientui ilgą skaitymo laiko ribą. Pavyzdžiuose naudojamos 600 sekundžių. Už 15 sekundžių trumpesnė laiko riba gali nutraukti srautą tarp dviejų palaikymo eilučių.
  • Leiskite savo SSE skaitytuvui praleisti komentarų eilutes ir ping įvykius. SDK tai jau daro.
  • Nesiųskite užklausos iš naujo vos nutrūkus ryšiui. Užklausa, kuri pasiekė API, vykdoma iki galo ir įskaičiuojama, net kai ryšio nebėra.
  • Pirmiausia išbandykite kelią su GET /v1/models. Jam rakto nereikia, ir jis grąžina trumpą JSON sąrašą.

Ryšio problemos

Simptomas Priežastis ir sprendimas
Ryšys su 127.0.0.1:9050 arba 127.0.0.1:4444 atmestas Jūsų kompiuteryje neveikia Tor klientas ar I2P maršrutizatorius arba jis klauso kitame prievade. Tor Browser savo SOCKS tarpinį serverį siūlo prievade 9150.
Could not resolve host .onion vardui Klientas bandė pats išspręsti vardą. Naudokite --socks5-hostname cURL ir socks5h:// tarpinio serverio URL, kad vardą išspręstų Tor klientas.
I2P tarpinis serveris atsako savo klaidos puslapiu Maršrutizatorius dar neradęs adreso. Paleidus maršrutizatoriui reikia kelių minučių. Pabandykite dar kartą.
401 su Missing authentication Užklausa atvyko be rakto. Siųskite tą pačią antraštę kaip paprastame žiniatinklyje.

Kiekviena kita klaida tokia pati kaip paprastame žiniatinklyje. Klaidų tvarkymas

Jūsų raktas be JavaScript

Shannon turi ir svetainę be JavaScript, pasiekiamą paprastame žiniatinklyje, kaip onion paslauga ir kaip eepsite. Jos puslapis /keys rodo jūsų API raktą ir leidžia jį pakeisti, todėl raktą galite gauti neišėję iš Tor ar I2P. encrypted.shannon-ai.com/keys

Tos svetainės adresai visuose trijuose tinkluose išvardyti čia: Šifruota prieiga