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/v1accipit. - Ut inscriptionem verifices, lege headers responsionis
https://api.shannon-ai.com:Onion-Locationinscriptionem onion fert etX-I2P-Locationinscriptionem I2P. Inscriptio onion ashannonincipit.
Quae viae operentur
Omnis via /v1 in omnibus quattuor inscriptionibus respondet:
POST /v1/chat/completionsPOST /v1/responsesPOST /v1/messagesPOST /v1/messages/count_tokensPOST /v1/tokenizeGET /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.
# 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.
# 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) # pip install openai
import httpx
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1",
http_client=httpx.Client(proxy="http://127.0.0.1:4444", timeout=600),
)
stream = client.chat.completions.create(
model="shannon-3",
messages=[{"role": "user", "content": "Hello over I2P"}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True) # pip install anthropic "httpx[socks]"
import anthropic
import httpx
client = anthropic.Anthropic(
api_key="YOUR_API_KEY",
base_url="http://shannonmd773o5vxz75byha5rkea7nzr3srotw46uwythq3pjl6y4cad.onion",
http_client=httpx.Client(proxy="socks5h://127.0.0.1:9050", timeout=600),
)
with client.messages.stream(
model="shannon-1.6-lite",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello over Tor"}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True) Streaming et keep-alive in nexibus tardis
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
pingpraeterire. 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