Preskoči na sadržaj
Šifrirani, Tor i I2P endpointi

Šifrirani, Tor i I2P endpointi

API je objavljen i kao Tor onion servis i I2P eepsite. Iste rute, isti ključ; mijenjaju se samo base URL i proxy.

Base URL-ovi

Četiri adrese vode do istog API-ja. Koristite onu koja odgovara vašoj mreži, s istim API ključem i istim zahtjevima.

Mreža Base URL Kako ga dosegnuti
Obični web https://api.shannon-ai.com/v1 Izravno, preko HTTPS-a.
Šifrirani mirror https://api-encrypted.shannon-ai.com/v1 Izravno, preko HTTPS-a. Drugo ime hosta za isti API.
Tor (onion servis) http://shannonmd773o5vxz75byha5rkea7nzr3srotw46uwythq3pjl6y4cad.onion/v1 Preko Tor klijenta: SOCKS5 proxy, zadano na 127.0.0.1:9050.
I2P (eepsite) http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1 Preko I2P routera: HTTP proxy, zadano na 127.0.0.1:4444.
  • OpenAI SDK prima base URL kako je prikazan, sa /v1. Anthropic SDK ga prima bez /v1.
  • Za provjeru adrese pročitajte zaglavlja odgovora s https://api.shannon-ai.com: Onion-Location nosi onion adresu, a X-I2P-Location I2P adresu. Onion adresa počinje s shannon.

Koje rute rade

Svaka ruta /v1 odgovara na sve četiri adrese:

  • 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 treba ključ, pa je to brz test dosiže li vaš proxy API.

Što je isto, a što se razlikuje

Stavka Isto? Pojedinost
Rute, polja zahtjeva, odgovori, greške Isto Isto na svakoj adresi. Nijedna ruta se ne ponaša drugačije prema imenu hosta.
API ključ Isto Jedan ključ radi na svakoj adresi, kao Authorization: Bearer ili x-api-key. Kolačići se na /v1 nikada ne čitaju.
Stanje i ograničenja Isto Isto stanje i isto ograničenje od 120 zahtjeva u minuti. Oba se broje po računu, a ne po adresi.
Veličina zahtjeva Isto Do 32 MiB po tijelu zahtjeva.
Shema Razlikuje se https:// na običnom webu i na mirroru. http:// na adresama .onion i .b32.i2p, gdje sama mreža šifrira vezu od kraja do kraja.
Proxy Razlikuje se Nema ga na običnom webu. SOCKS5 proxy za Tor, HTTP proxy za I2P. Ime mora razriješiti proxy, a ne vaše računalo.
Brzina Razlikuje se Obje mreže dodaju kašnjenje svakom bajtu. I2P je sporiji od ta dva.

Stanje i ograničenja opisani su na vlastitoj stranici. Ograničenja i stanje

cURL preko Tora

Pokrenite Tor klijent na svom računalu. Nudi SOCKS5 proxy na 127.0.0.1:9050. --socks5-hostname predaje ime .onion tom 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 preko I2P-a

Pokrenite I2P router na svom računalu. Nudi HTTP proxy na 127.0.0.1:4444, koji prima ime .b32.i2p kakvo jest.

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

Base URL za SDK

SDK treba dvije promjene: base URL mreže i HTTP klijent koji ide kroz proxy. U Pythonu oba službena SDK-a primaju httpx klijent. Za SOCKS proxy instalirajte 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 radi preko obiju mreža. Dok je stream otvoren, a model još nema što poslati, API šalje keep-alive, pa veza ne izgleda mrtva proxyju ili vašem klijentu.

Endpoint Keep-alive na otvorenom streamu Šalje se za
/v1/chat/completions Redak komentara (počinje s :) svakih 15 sekundi. Svi modeli
/v1/messages event: ping ili redak komentara svakih 15 sekundi. Svi modeli
/v1/responses Redak komentara svakih 15 sekundi. Hostirani open-weight modeli
  • Pošaljite "stream": true. Streamani odgovor počinje stizati čim model piše, a keep-alive pokazuje da se na zahtjevu još radi. Odgovor bez streaminga ne šalje ništa dok cijeli odgovor nije spreman.
  • Klijentu dajte dug read timeout. Primjeri koriste 600 sekundi. Timeout kraći od 15 sekundi može prekinuti stream između dva keep-alivea.
  • Neka vaš SSE čitač preskače retke komentara i događaje ping. SDK-ovi to već rade.
  • Ne šaljite zahtjev ponovno čim se veza prekine. Zahtjev koji je stigao do API-ja izvršava se do kraja i naplaćuje, i kada veze više nema.
  • Putanju prvo testirajte s GET /v1/models. Ne treba ključ i vraća kratak JSON popis.

Problemi s vezom

Simptom Uzrok i rješenje
Veza na 127.0.0.1:9050 ili 127.0.0.1:4444 je odbijena Na vašem računalu ne radi Tor klijent ili I2P router ili sluša na drugom portu. Tor Browser nudi svoj SOCKS proxy na portu 9150.
Could not resolve host za ime .onion Klijent je pokušao sam razriješiti ime. Koristite --socks5-hostname u cURL-u i socks5h:// u URL-u proxyja, da ga razriješi Tor klijent.
I2P proxy odgovara vlastitom stranicom greške Router još nije pronašao adresu. Routeru treba nekoliko minuta nakon pokretanja. Pokušajte ponovno.
401 s Missing authentication Zahtjev je stigao bez ključa. Pošaljite isto zaglavlje kao na običnom webu.

Svaka druga greška ista je kao na običnom webu. Upravljanje greškama

Vaš ključ bez JavaScripta

Shannon ima i web mjesto bez JavaScripta, dostupno na običnom webu, kao onion servis i kao eepsite. Njegova stranica /keys prikazuje vaš API ključ i omogućuje vam da ga zamijenite, pa ključ možete dobiti a da ne napustite Tor ili I2P. encrypted.shannon-ai.com/keys

Adrese tog web mjesta na sve tri mreže navedene su ovdje: Šifrirani pristup