Siirry sisältöön
Salatut, Tor- ja I2P-päätepisteet

Salatut, Tor- ja I2P-päätepisteet

API on julkaistu myös Tor-onion-palveluna ja I2P-eepsitenä. Samat reitit, sama avain; vain perus-URL ja välityspalvelin vaihtuvat.

Perus-URL:t

Neljä osoitetta johtaa samaan API:in. Käytä sitä, joka sopii verkkoosi, samalla API-avaimella ja samoilla pyynnöillä.

Verkko Perus-URL Miten sen tavoittaa
Avoin verkko https://api.shannon-ai.com/v1 Suoraan, HTTPS:n yli.
Salattu peili https://api-encrypted.shannon-ai.com/v1 Suoraan, HTTPS:n yli. Toinen isäntänimi samalle API:lle.
Tor (onion-palvelu) http://shannonmd773o5vxz75byha5rkea7nzr3srotw46uwythq3pjl6y4cad.onion/v1 Tor-asiakkaan kautta: SOCKS5-välityspalvelin, oletuksena osoitteessa 127.0.0.1:9050.
I2P (eepsite) http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1 I2P-reitittimen kautta: HTTP-välityspalvelin, oletuksena osoitteessa 127.0.0.1:4444.
  • OpenAI-SDK ottaa perus-URL:n kuten näytetty, /v1-päätteellä. Anthropic-SDK ottaa sen ilman /v1.
  • Tarkistaaksesi osoitteen lue osoitteen https://api.shannon-ai.com vastausotsakkeet: Onion-Location sisältää onion-osoitteen ja X-I2P-Location I2P-osoitteen. Onion-osoite alkaa merkinnällä shannon.

Mitkä reitit toimivat

Jokainen /v1-reitti vastaa kaikissa neljässä osoitteessa:

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

GET /v1/models ei tarvitse avainta, joten se on nopea testi sille, että välityspalvelimesi tavoittaa API:n.

Mikä on samaa ja mikä eroaa

Kohde Sama? Tieto
Reitit, pyyntökentät, vastaukset, virheet Sama Samat jokaisessa osoitteessa. Mikään reitti ei toimi eri tavalla isäntänimen mukaan.
API-avain Sama Yksi avain toimii jokaisessa osoitteessa, otsakkeena Authorization: Bearer tai x-api-key. Evästeitä ei lueta koskaan polussa /v1.
Saldo ja rajat Sama Sama saldo ja sama 120 pyynnön minuuttiraja. Molemmat lasketaan tiliä kohti, ei osoitetta kohti.
Pyynnön koko Sama Enintään 32 MiB pyynnön runkoa kohti.
Skeema Eroaa https:// avoimella verkolla ja peilissä. http:// osoitteissa .onion ja .b32.i2p, joissa verkko itse salaa yhteyden päästä päähän.
Välityspalvelin Eroaa Ei mitään avoimella verkolla. SOCKS5-välityspalvelin Torille, HTTP-välityspalvelin I2P:lle. Nimen on ratkaistava välityspalvelimen, ei koneesi.
Nopeus Eroaa Molemmat verkot lisäävät viivettä jokaiseen tavuun. I2P on kahdesta hitaampi.

Saldo ja rajat on kuvattu omalla sivullaan. Rajat ja saldo

cURL Torin kautta

Käynnistä Tor-asiakas koneellasi. Se tarjoaa SOCKS5-välityspalvelimen osoitteessa 127.0.0.1:9050. --socks5-hostname antaa .onion-nimen tälle välityspalvelimelle.

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 I2P:n kautta

Käynnistä I2P-reititin koneellasi. Se tarjoaa HTTP-välityspalvelimen osoitteessa 127.0.0.1:4444, joka ottaa .b32.i2p-nimen sellaisenaan.

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:n perus-URL

SDK tarvitsee kaksi muutosta: verkon perus-URL:n ja HTTP-asiakkaan, joka kulkee välityspalvelimen kautta. Pythonissa molemmat viralliset SDK:t ottavat httpx-asiakkaan. SOCKS-välityspalvelinta varten asenna 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)

Striimaus toimii molemmissa verkoissa. Kun striimi on auki eikä mallilla ole vielä mitään lähetettävää, API lähettää keep-alive-viestin, jotta yhteys ei näytä kuolleelta välityspalvelimelle tai asiakkaallesi.

Päätepiste Keep-alive avoimessa striimissä Lähetetään malleille
/v1/chat/completions Kommenttirivi (alkaa merkillä :) 15 sekunnin välein. Kaikki mallit
/v1/messages event: ping tai kommenttirivi 15 sekunnin välein. Kaikki mallit
/v1/responses Kommenttirivi 15 sekunnin välein. Hostatut avoimen painon mallit
  • Lähetä "stream": true. Striimattu vastaus alkaa saapua heti, kun malli kirjoittaa, ja keep-alive osoittaa, että pyyntöä käsitellään yhä. Ei-striimattu vastaus ei lähetä mitään ennen kuin koko vastaus on valmis.
  • Anna asiakkaalle pitkä lukuaikakatkaisu. Esimerkit käyttävät 600 sekuntia. Alle 15 sekunnin aikakatkaisu voi katkaista striimin kahden keep-alive-viestin välillä.
  • Anna SSE-lukijasi ohittaa kommenttirivit ja ping-tapahtumat. SDK:t tekevät tämän jo.
  • Älä lähetä pyyntöä uudelleen heti, kun yhteys katkeaa. Pyyntö, joka ehti API:lle, suoritetaan loppuun ja lasketaan, myös silloin kun yhteys on poissa.
  • Testaa reitti ensin komennolla GET /v1/models. Se ei tarvitse avainta ja palauttaa lyhyen JSON-listan.

Yhteysongelmat

Oire Syy ja korjaus
Yhteys osoitteeseen 127.0.0.1:9050 tai 127.0.0.1:4444 evätään Koneellasi ei ole käynnissä Tor-asiakasta tai I2P-reititintä, tai se kuuntelee toista porttia. Tor Browser tarjoaa SOCKS-välityspalvelimensa portissa 9150.
Could not resolve host .onion-nimelle Asiakas yritti ratkaista nimen itse. Käytä cURLissa --socks5-hostname ja välityspalvelimen URL:ssa socks5h://, jotta Tor-asiakas ratkaisee sen.
I2P-välityspalvelin vastaa omalla virhesivullaan Reititin ei ole vielä löytänyt osoitetta. Reititin tarvitsee muutaman minuutin käynnistyksen jälkeen. Yritä uudelleen.
401 ja Missing authentication Pyyntö saapui ilman avainta. Lähetä sama otsake kuin avoimella verkolla.

Jokainen muu virhe on sama kuin avoimella verkolla. Virheiden käsittely

Avaimesi ilman JavaScriptiä

Shannonilla on myös verkkosivusto ilman JavaScriptiä, joka on tavoitettavissa avoimella verkolla, onion-palveluna ja eepsitenä. Sen /keys-sivu näyttää API-avaimesi ja antaa vaihtaa sen, joten voit hankkia avaimen poistumatta Torista tai I2P:stä. encrypted.shannon-ai.com/keys

Tuon verkkosivuston osoitteet kaikissa kolmessa verkossa on listattu täällä: Salattu pääsy