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 putanje, isti ključ; mijenjaju se samo osnovni URL i proxy.

Osnovni 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 Osnovni URL Kako ga dosegnuti
Obični web https://api.shannon-ai.com/v1 Direktno, preko HTTPS-a.
Šifrovani mirror 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 proxy, zadano na 127.0.0.1:9050.
I2P (eepsite) http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1 Preko I2P rutera: HTTP proxy, zadano na 127.0.0.1:4444.
  • OpenAI SDK prima osnovni URL kako je prikazan, sa /v1. Anthropic SDK ga prima bez /v1.
  • Da provjerite 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 putanje rade

Svaka putanja /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 da vaš proxy dosiže API.

Šta je isto, a šta se razlikuje

Stavka Isto? Detalj
Putanje, polja zahtjeva, odgovori, greške Isto Isto na svakoj adresi. Nijedna putanja 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 nikada ne čitaju na /v1.
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 konekciju od kraja do kraja.
Proxy Razlikuje se Nijedan na običnom webu. SOCKS5 proxy za Tor, HTTP proxy za I2P. Ime mora razriješiti proxy, a ne vaš računar.
Brzina Razlikuje se Obje mreže dodaju kašnjenje svakom bajtu. I2P je sporija od te dvije.

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

cURL preko Tora

Pokrenite Tor klijent na svom računaru. On 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 ruter na svom računaru. On nudi HTTP proxy na 127.0.0.1:4444, koji prima ime .b32.i2p takvo 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"}]
  }'

Osnovni URL za SDK

SDK treba dvije izmjene: osnovni 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 obje mreže. Dok je stream otvoren i model još nema šta poslati, API šalje keep-alive, tako da konekcija ne izgleda mrtva proxyju ili vašem klijentu.

Endpoint Keep-alive na otvorenom streamu Šalje se za
/v1/chat/completions Linija komentara (počinje sa :) svakih 15 sekundi. Svi modeli
/v1/messages event: ping, ili linija komentara, svakih 15 sekundi. Svi modeli
/v1/responses Linija komentara svakih 15 sekundi. Hostirani open-weight modeli
  • Pošaljite "stream": true. Streamovani 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 timeout čitanja. 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 linije komentara i događaje ping. SDK-ovi to već rade.
  • Ne šaljite ponovo zahtjev čim se konekcija prekine. Zahtjev koji je stigao do API-ja izvršava se do kraja i naplaćuje se, i kada konekcije više nema.
  • Prvo testirajte putanju s GET /v1/models. Ne treba ključ i vraća kratku JSON listu.

Problemi s konekcijom

Simptom Uzrok i rješenje
Konekcija na 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 proxy na portu 9150.
Could not resolve host za ime .onion Klijent je sam pokušao razriješiti ime. Koristite --socks5-hostname u cURL-u i socks5h:// u URL-u proxyja, tako da ga razriješi Tor klijent.
I2P proxy odgovara vlastitom stranicom s greškom Ruter još nije pronašao adresu. Ruteru treba nekoliko minuta nakon pokretanja. Pokušajte ponovo.
401 sa 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 website bez JavaScripta, dostupan na običnom webu, kao onion servis i kao eepsite. Njegova stranica /keys prikazuje vaš API ključ i omogućava da ga rotirate, pa možete dobiti ključ a da ne napustite Tor ili I2P. encrypted.shannon-ai.com/keys

Adrese tog websitea na sve tri mreže navedene su ovdje: Šifrovani pristup