Ad contentum transili
Endpoints encrypta, Tor & I2P

Endpoints encrypta, Tor & I2P

API etiam ut Tor onion service et I2P eepsite publicatur. Eaedem viae, eadem clavis; solum base URL et proxy mutantur.

Base URLs

Quattuor inscriptiones ad eandem API ducunt. Utere ea quae retem tuam aptat, cum eadem clave API et eisdem petitionibus.

Rete Base URL Quomodo ad eam pervenias
Clear web https://api.shannon-ai.com/v1 Directe, per HTTPS.
Mirror encryptum https://api-encrypted.shannon-ai.com/v1 Directe, per HTTPS. Secundum nomen host pro eadem API.
Tor (onion service) http://shannonmd773o5vxz75byha5rkea7nzr3srotw46uwythq3pjl6y4cad.onion/v1 Per clientem Tor: proxy SOCKS5, defaulto in 127.0.0.1:9050.
I2P (eepsite) http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1 Per router I2P: proxy HTTP, defaulto in 127.0.0.1:4444.
  • SDK OpenAI base URL accipit ut ostenditur, cum /v1. SDK Anthropic eum sine /v1 accipit.
  • Ut inscriptionem verifices, lege headers responsionis https://api.shannon-ai.com: Onion-Location inscriptionem onion fert et X-I2P-Location inscriptionem I2P. Inscriptio onion a shannon incipit.

Quae viae operentur

Omnis via /v1 in omnibus quattuor inscriptionibus respondet:

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

GET /v1/models clavem non requirit, itaque est probatio celeris proxy tuum ad API pervenire.

Quid idem sit et quid differat

Res Idem? Singula
Viae, campi petitionis, responsiones, errores Idem Idem in omni inscriptione. Nulla via per nomen host aliter se gerit.
Clavis API Idem Una clavis in omni inscriptione operatur, ut Authorization: Bearer vel x-api-key. Cookies numquam in /v1 leguntur.
Saldum et limites Idem Idem saldum et idem limes 120 petitionum per minutum. Ambo per rationem computantur, non per inscriptionem.
Magnitudo petitionis Idem Ad 32 MiB per corpus petitionis.
Schema Differt https:// in clear web et in mirror. http:// in inscriptionibus .onion et .b32.i2p, ubi ipsa reti connexionem ab initio ad finem encryptat.
Proxy Differt Nullum in clear web. Proxy SOCKS5 pro Tor, proxy HTTP pro I2P. Nomen a proxy resolvi debet, non a machina tua.
Celeritas Differt Ambae retes moram cuique byte addunt. I2P ex duabus tardior est.

Saldum et limites in pagina propria describuntur. Limites et saldum

cURL per Tor

Curre clientem Tor in machina tua. Proxy SOCKS5 in 127.0.0.1:9050 offert. --socks5-hostname nomen .onion ad illud proxy tradit.

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

Curre router I2P in machina tua. Proxy HTTP in 127.0.0.1:4444 offert, quod nomen .b32.i2p ut est accipit.

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 SDK

SDK duabus mutationibus eget: base URL retis, et cliente HTTP qui per proxy it. In Python ambo SDK officiales clientem httpx accipiunt. Pro proxy SOCKS installa 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 in ambabus retibus operatur. Dum stream apertus est et modellum nihil adhuc mittendum habet, API keep-alive mittit, itaque connexio proxy vel clienti tuo mortua non videtur.

Endpoint Keep-alive in stream aperto Missum pro
/v1/chat/completions Linea commentarii (a : incipit) omnibus 15 secundis. Omnia modelli
/v1/messages event: ping, vel linea commentarii, omnibus 15 secundis. Omnia modelli
/v1/responses Linea commentarii omnibus 15 secundis. Modelli open-weight hosted
  • Mitte "stream": true. Responsio streamed advenire incipit simulac modellum scribit, et keep-alive ostendit petitionem adhuc tractari. Responsio non streamed nihil mittit donec tota responsio parata est.
  • Da clienti read timeout longum. Exempla 600 secundis utuntur. Timeout brevior quam 15 secundae stream inter duo keep-alive finire potest.
  • Permitte lectori SSE tuo lineas commentarii et eventus ping praeterire. SDK id iam faciunt.
  • Noli petitionem iterum mittere statim cum connexio cadit. Petitio quae ad API pervenit ad finem currit et computatur, etiam cum connexio abest.
  • Tenta viam primum cum GET /v1/models. Clavem non requirit et indicem JSON brevem reddit.

Problemata connexionis

Symptoma Causa et remedium
Connexio ad 127.0.0.1:9050 vel 127.0.0.1:4444 recusatur Nullus cliens Tor vel router I2P in machina tua currit, aut in alio portu auscultat. Tor Browser proxy SOCKS suum in portu 9150 offert.
Could not resolve host pro nomine .onion Cliens nomen ipse resolvere tentavit. Utere --socks5-hostname in cURL et socks5h:// in URL proxy, ut cliens Tor id resolvat.
Proxy I2P cum pagina erroris sua respondet Router inscriptionem nondum invenit. Router paucis minutis post initium eget. Tenta iterum.
401 cum Missing authentication Petitio sine clave advenit. Mitte eundem header ac in clear web.

Omnis alius error idem est ac in clear web. Tractatio errorum

Clavis tua sine JavaScript

Shannon etiam paginam interretialem sine JavaScript habet, in clear web, ut onion service et ut eepsite pervenibilem. Eius pagina /keys clavem API tuam ostendit et rotare sinit, itaque clavem accipere potes sine Tor vel I2P relinquendo. encrypted.shannon-ai.com/keys

Inscriptiones illius paginae interretialis in omnibus tribus retibus hic enumerantur: Accessus encryptus