Preskoči na vsebino
Šifrirane končne točke, Tor & I2P

Šifrirane končne točke, Tor & I2P

API je objavljen tudi kot storitev onion v omrežju Tor in kot eepsite v omrežju I2P. Iste poti, isti ključ; spremenita se samo osnovni URL in proxy.

Osnovni URL-ji

Štirje naslovi vodijo do istega API-ja. Uporabite tistega, ki ustreza vašemu omrežju, z istim API ključem in istimi zahtevki.

Omrežje Osnovni URL Kako ga dosežete
Navadni splet https://api.shannon-ai.com/v1 Neposredno, prek HTTPS.
Šifrirano zrcalo https://api-encrypted.shannon-ai.com/v1 Neposredno, prek HTTPS. Drugo ime gostitelja za isti API.
Tor (storitev onion) http://shannonmd773o5vxz75byha5rkea7nzr3srotw46uwythq3pjl6y4cad.onion/v1 Prek odjemalca Tor: proxy SOCKS5, privzeto na 127.0.0.1:9050.
I2P (eepsite) http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1 Prek usmerjevalnika I2P: proxy HTTP, privzeto na 127.0.0.1:4444.
  • SDK OpenAI sprejme osnovni URL, kot je prikazan, s /v1. SDK Anthropic ga sprejme brez /v1.
  • Naslov preverite tako, da preberete glave odgovora https://api.shannon-ai.com: Onion-Location nosi naslov onion, X-I2P-Location pa naslov I2P. Naslov onion se začne s shannon.

Katere poti delujejo

Vsaka pot /v1 odgovarja na vseh štirih naslovih:

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

GET /v1/models ne potrebuje ključa, zato je hiter preizkus, da vaš proxy doseže API.

Kaj je enako in kaj se razlikuje

Element Enako? Podrobnost
Poti, polja zahtevka, odgovori, napake Enako Enako na vsakem naslovu. Nobena pot se ne obnaša drugače glede na ime gostitelja.
API ključ Enako En ključ deluje na vsakem naslovu, kot Authorization: Bearer ali x-api-key. Piškotki se na /v1 nikoli ne preberejo.
Stanje in omejitve Enako Isto stanje in ista omejitev 120 zahtevkov na minuto. Oboje se šteje na račun, ne na naslov.
Velikost zahtevka Enako Do 32 MiB na telo zahtevka.
Shema Razlikuje se https:// na navadnem spletu in na zrcalu. http:// na naslovih .onion in .b32.i2p, kjer samo omrežje šifrira povezavo od konca do konca.
Proxy Razlikuje se Na navadnem spletu ga ni. Proxy SOCKS5 za Tor, proxy HTTP za I2P. Ime mora razrešiti proxy, ne vaš računalnik.
Hitrost Razlikuje se Obe omrežji dodata zakasnitev vsakemu bajtu. I2P je počasnejši od obeh.

Stanje in omejitve so opisani na svoji strani. Omejitve in stanje

cURL prek Tor

Na svojem računalniku zaženite odjemalca Tor. Ponuja proxy SOCKS5 na 127.0.0.1:9050. --socks5-hostname preda ime .onion temu proxyju.

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

Na svojem računalniku zaženite usmerjevalnik I2P. Ponuja proxy HTTP na 127.0.0.1:4444, ki ime .b32.i2p sprejme, kot je.

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"}]
  }'

Osnovni URL za SDK

SDK potrebuje dve spremembi: osnovni URL omrežja in odjemalca HTTP, ki gre prek proxyja. V Pythonu oba uradna SDK-ja sprejmeta odjemalca httpx. Za proxy SOCKS namestite 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)

Pretakanje deluje prek obeh omrežij. Medtem ko je tok odprt in model še nima kaj poslati, API pošlje ohranitev povezave, da povezava proxyju ali vašemu odjemalcu ne izgleda mrtva.

Končna točka Ohranjanje povezave na odprtem toku Poslano za
/v1/chat/completions Komentarna vrstica (začne se z :) vsakih 15 sekund. Vsi modeli
/v1/messages event: ping ali komentarna vrstica vsakih 15 sekund. Vsi modeli
/v1/responses Komentarna vrstica vsakih 15 sekund. Gostovani modeli z odprtimi utežmi
  • Pošljite "stream": true. Odgovor s pretakanjem začne prihajati takoj, ko model piše, ohranjanje povezave pa kaže, da se zahtevek še obdeluje. Odgovor brez pretakanja ne pošlje ničesar, dokler ni ves odgovor pripravljen.
  • Odjemalcu nastavite dolg čas čakanja pri branju. Primeri uporabljajo 600 sekund. Časovna omejitev, krajša od 15 sekund, lahko konča tok med dvema ohranitvama povezave.
  • Poskrbite, da vaš bralnik SSE preskoči komentarne vrstice in dogodke ping. SDK-ji to že počnejo.
  • Zahtevka ne pošiljajte znova v trenutku, ko se povezava prekine. Zahtevek, ki je dosegel API, teče do konca in se šteje, tudi ko povezave ni več.
  • Pot najprej preizkusite z GET /v1/models. Ne potrebuje ključa in vrne kratek seznam JSON.

Težave s povezavo

Simptom Vzrok in rešitev
Povezava na 127.0.0.1:9050 ali 127.0.0.1:4444 je zavrnjena Na vašem računalniku ne teče noben odjemalec Tor ali usmerjevalnik I2P ali pa posluša na drugih vratih. Tor Browser ponuja svoj proxy SOCKS na vratih 9150.
Could not resolve host za ime .onion Odjemalec je poskusil ime razrešiti sam. V cURL uporabite --socks5-hostname, v URL-ju proxyja pa socks5h://, da ga razreši odjemalec Tor.
Proxy I2P odgovori z lastno stranjo z napako Usmerjevalnik naslova še ni našel. Usmerjevalnik po zagonu potrebuje nekaj minut. Poskusite znova.
401 z Missing authentication Zahtevek je prispel brez ključa. Pošljite isto glavo kot na navadnem spletu.

Vsaka druga napaka je enaka kot na navadnem spletu. Obravnava napak

Vaš ključ brez JavaScripta

Shannon ima tudi spletno mesto brez JavaScripta, dosegljivo na navadnem spletu, kot storitev onion in kot eepsite. Njegova stran /keys prikazuje vaš API ključ in omogoča njegovo zamenjavo, tako da lahko ključ pridobite, ne da bi zapustili Tor ali I2P. encrypted.shannon-ai.com/keys

Naslovi tega spletnega mesta na vseh treh omrežjih so navedeni tukaj: Šifriran dostop