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

Šifrovani, Tor i I2P endpointi

API je objavljen i kao Tor onion servis i I2P eepsite. Iste rute, isti ključ; menjaju se samo osnovni URL i proksi.

Osnovni URL-ovi

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

Mreža Osnovni URL Kako mu pristupate
Običan web https://api.shannon-ai.com/v1 Direktno, preko HTTPS-a.
Šifrovano ogledalo https://api-encrypted.shannon-ai.com/v1 Direktno, preko HTTPS-a. Drugo ime hosta za isti API.
Tor (onion servis) http://shannonmd773o5vxz75byha5rkea7nzr3srotw46uwythq3pjl6y4cad.onion/v1 Preko Tor klijenta: SOCKS5 proksi, podrazumevano na 127.0.0.1:9050.
I2P (eepsite) http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1 Preko I2P rutera: HTTP proksi, podrazumevano na 127.0.0.1:4444.
  • OpenAI SDK prima osnovni URL kako je prikazan, sa /v1. Anthropic SDK ga prima bez /v1.
  • Da proverite adresu, pročitajte zaglavlja odgovora sa https://api.shannon-ai.com: Onion-Location nosi onion adresu, a X-I2P-Location I2P adresu. Onion adresa počinje sa shannon.

Koje rute rade

Svaka /v1 ruta 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 traži ključ, pa je brz test da li vaš proksi dopire do API-ja.

Šta je isto, a šta se razlikuje

Stavka Isto? Detalj
Rute, polja zahteva, 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 nikad ne čitaju.
Stanje i ograničenja Isto Isto stanje i isto ograničenje od 120 zahteva u minuti. Oba se računaju po nalogu, a ne po adresi.
Veličina zahteva Isto Do 32 MiB po telu zahteva.
Šema Razlikuje se https:// na običnom webu i na ogledalu. http:// na adresama .onion i .b32.i2p, gde sama mreža šifruje vezu od kraja do kraja.
Proksi Razlikuje se Nema ga na običnom webu. SOCKS5 proksi za Tor, HTTP proksi za I2P. Ime mora da razreši proksi, a ne vaš računar.
Brzina Razlikuje se Obe mreže dodaju kašnjenje svakom bajtu. I2P je sporiji od ta dva.

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

cURL preko Tora

Pokrenite Tor klijent na svom računaru. On nudi SOCKS5 proksi na 127.0.0.1:9050. --socks5-hostname predaje ime .onion tom proksiju.

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 ruter na svom računaru. On nudi HTTP proksi na 127.0.0.1:4444, koji prima ime .b32.i2p takvo kakvo jeste.

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-u trebaju dve promene: osnovni URL mreže i HTTP klijent koji ide preko proksija. U Pythonu oba zvanična SDK-a primaju httpx klijent. Za SOCKS proksi 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 obe mreže. Dok je stream otvoren, a model još nema šta da pošalje, API šalje keep-alive, da veza ne izgleda mrtva proksiju ni vašem klijentu.

Endpoint Keep-alive na otvorenom streamu Šalje se za
/v1/chat/completions Komentarska linija (počinje sa :) na svakih 15 sekundi. Svi modeli
/v1/messages event: ping, ili komentarska linija, na svakih 15 sekundi. Svi modeli
/v1/responses Komentarska linija na svakih 15 sekundi. Hostovani open-weight modeli
  • Pošaljite "stream": true. Strimovani odgovor počinje da stiže čim model piše, a keep-alive pokazuje da se na zahtevu i dalje radi. Odgovor bez streama ne šalje ništa dok ceo odgovor nije spreman.
  • Dajte klijentu dug read timeout. Primeri koriste 600 sekundi. Timeout kraći od 15 sekundi može prekinuti stream između dva keep-alive-a.
  • Pustite svoj SSE čitač da preskače komentarske linije i ping događaje. SDK-ovi to već rade.
  • Ne šaljite zahtev ponovo čim se veza prekine. Zahtev koji je stigao do API-ja izvršava se do kraja i računa se, i kada veze više nema.
  • Prvo testirajte putanju pomoću GET /v1/models. Ne traži ključ i vraća kratku JSON listu.

Problemi sa vezom

Simptom Uzrok i rešenje
Veza sa 127.0.0.1:9050 ili 127.0.0.1:4444 je odbijena Na vašem računaru ne radi Tor klijent ili I2P ruter, ili sluša na drugom portu. Tor Browser nudi svoj SOCKS proksi na portu 9150.
Could not resolve host za ime .onion Klijent je pokušao sam da razreši ime. Koristite --socks5-hostname u cURL-u i socks5h:// u URL-u proksija, da ga razreši Tor klijent.
I2P proksi odgovara sopstvenom stranicom greške Ruter još nije pronašao adresu. Ruteru treba nekoliko minuta nakon pokretanja. Pokušajte ponovo.
401 sa Missing authentication Zahtev 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 veb sajt bez JavaScripta, dostupan na običnom webu, kao onion servis i kao eepsite. Njegova stranica /keys prikazuje vaš API ključ i dozvoljava da ga rotirate, pa možete dobiti ključ bez napuštanja Tora ili I2P-a. encrypted.shannon-ai.com/keys

Adrese tog veb sajta na sve tri mreže navedene su ovde: Šifrovani pristup