Verschlësselt, Tor- an I2P-Endpoints
D'API ass och als Tor-Onion-Service an als I2P-Eepsite publizéiert. Déiselwecht Routen, deeselwechte Schlëssel; nëmmen d'Basis-URL a de Proxy änneren sech.
Basis-URLen
Véier Adressen féieren zu där selwechter API. Benotzt déi, déi zu Ärem Netzwierk passt, mat deem selwechten API-Schlëssel an deene selwechten Ufroen.
| Netzwierk | Basis-URL | Wéi Dir se erreecht |
|---|---|---|
| Clearnet | https://api.shannon-ai.com/v1 | Direkt, iwwer HTTPS. |
| Verschlësselte Mirror | https://api-encrypted.shannon-ai.com/v1 | Direkt, iwwer HTTPS. E zweeten Hostnumm fir déiselwecht API. |
| Tor (Onion-Service) | http://shannonmd773o5vxz75byha5rkea7nzr3srotw46uwythq3pjl6y4cad.onion/v1 | Duerch e Tor-Client: e SOCKS5-Proxy, standardméisseg op 127.0.0.1:9050. |
| I2P (Eepsite) | http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1 | Duerch e I2P-Router: en HTTP-Proxy, standardméisseg op 127.0.0.1:4444. |
- En OpenAI-SDK hëlt d'Basis-URL esou, wéi se steet, mat
/v1. En Anthropic-SDK hëlt se ouni/v1. - Fir eng Adress ze kontrolléieren, liest d'Äntwert-Header vun
https://api.shannon-ai.com:Onion-Locationenthält d'Onion-Adress anX-I2P-Locationd'I2P-Adress. D'Onion-Adress fänkt matshannonun.
Wéi eng Routen funktionéieren
All /v1-Route äntwert op allen dräi Adressen:
POST /v1/chat/completionsPOST /v1/responsesPOST /v1/messagesPOST /v1/messages/count_tokensPOST /v1/tokenizeGET /v1/models
GET /v1/models brauch kee Schlëssel, dofir ass et e séieren Test, ob Äre Proxy d'API erreecht.
Wat d'selwecht ass a wat anescht ass
| Punkt | Datselwecht? | Detail |
|---|---|---|
| Routen, Ufro-Felder, Äntwerten, Feeler | D'selwecht | Op all Adress d'selwecht. Keng Route verhält sech no dem Hostnumm anescht. |
| API-Schlëssel | D'selwecht | Ee Schlëssel funktionéiert op all Adress, als Authorization: Bearer oder x-api-key. Cookien ginn op /v1 ni gelies. |
| Solde a Limiten | D'selwecht | Deeselwechte Solde an déiselwecht Limit vun 120 Ufroen pro Minutt. Béid ginn pro Kont gezielt, net pro Adress. |
| Gréisst vun der Ufro | D'selwecht | Bis zu 32 MiB pro Body vun der Ufro. |
| Schema | Anescht | https:// am Clearnet a um Mirror. http:// op den .onion- an .b32.i2p-Adressen, wou d'Netzwierk selwer d'Verbindung vun Enn zu Enn verschlësselt. |
| Proxy | Anescht | Keen am Clearnet. E SOCKS5-Proxy fir Tor, en HTTP-Proxy fir I2P. Den Numm muss vum Proxy opgeléist ginn, net vun Ärer Maschinn. |
| Geschwindegkeet | Anescht | Béid Netzwierker addéieren Verspéidung bei all Byte. I2P ass dat méi lues vun den zwee. |
Solde a Limiten si op hirer eegener Säit beschriwwen. Limiten a Solde
cURL duerch Tor
Lasst e Tor-Client op Ärer Maschinn lafen. Hie bitt e SOCKS5-Proxy op 127.0.0.1:9050 un. --socks5-hostname gëtt dem Proxy den .onion-Numm weider.
# 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 duerch I2P
Lasst e I2P-Router op Ärer Maschinn lafen. Hie bitt en HTTP-Proxy op 127.0.0.1:4444 un, dee mam .b32.i2p-Numm esou, wéi e ass, ëmgeet.
# 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"}]
}' Basis-URL vun der SDK
Eng SDK brauch zwou Ännerungen: d'Basis-URL vum Netzwierk, an en HTTP-Client, dee duerch de Proxy geet. A Python huelen déi zwou offiziell SDKs en httpx-Client. Fir e SOCKS-Proxy installéiert 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 a Keep-alive op luesse Verbindungen
Streaming funktionéiert iwwer béid Netzwierker. Wärend e Stream op ass an de Modell nach näischt ze schécken huet, schéckt d'API e Keep-alive, sou datt d'Verbindung fir e Proxy oder Äre Client net tot ausgesäit.
| Endpoint | Keep-alive op engem oppene Stream | Geschéckt fir |
|---|---|---|
/v1/chat/completions | All 15 Sekonne eng Kommentar-Zeil (si fänkt mat : un). | All Modeller |
/v1/messages | All 15 Sekonne en event: ping, oder eng Kommentar-Zeil. | All Modeller |
/v1/responses | All 15 Sekonne eng Kommentar-Zeil. | Hosted Open-Weight-Modeller |
- Schéckt
"stream": true. Eng gestreamt Äntwert fänkt un ukommen, soubal de Modell schreift, an d'Keep-alive weist, datt un der Ufro nach geschafft gëtt. Eng Äntwert ouni Streaming schéckt näischt, bis déi ganz Äntwert prett ass. - Gitt dem Client en laangen Read-Timeout. D'Beispiller benotzen 600 Sekonnen. En Timeout ënner 15 Sekonne ka e Stream tëscht zwee Keep-alives ofbriechen.
- Looss Äre SSE-Reader Kommentar-Zeilen a
ping-Events iwwerspréngen. D'SDKs maachen dat schonn. - Schéckt eng Ufro net nach eng Kéier, soubal eng Verbindung ofbrécht. Eng Ufro, déi d'API erreecht huet, leeft bis zum Enn a gëtt gezielt, och wann d'Verbindung fort ass.
- Test de Wee fir d'éischt mat
GET /v1/models. Et brauch kee Schlëssel a gëtt eng kuerz JSON-Lëscht zréck.
Verbindungsproblemer
| Symptom | Ursaach a Léisung |
|---|---|
D'Verbindung zu 127.0.0.1:9050 oder 127.0.0.1:4444 gëtt refuséiert | Et leeft kee Tor-Client oder I2P-Router op Ärer Maschinn, oder en lauschtert op engem anere Port. Tor Browser bitt säi SOCKS-Proxy op Port 9150 un. |
Could not resolve host fir den .onion-Numm | De Client huet probéiert, den Numm selwer opzeléisen. Benotzt --socks5-hostname a cURL an socks5h:// an enger Proxy-URL, sou datt de Tor-Client en opléist. |
| De I2P-Proxy äntwert mat senger eegener Feeler-Säit | De Router huet d'Adress nach net fonnt. E Router brauch e puer Minutten, nodeems en ugefaang huet. Probéiert et nach eng Kéier. |
401 mat Missing authentication | D'Ufro ass ouni Schlëssel ukomm. Schéckt deeselwechten Header wéi am Clearnet. |
All anere Feeler ass d'selwecht wéi am Clearnet. Feelerbehandlung
Äre Schlëssel ouni JavaScript
Shannon huet och eng Websäit ouni JavaScript, erreechbar am Clearnet, als Onion-Service an als Eepsite. Hir /keys-Säit weist Äre API-Schlëssel an léisst Iech en erneieren, sou datt Dir e Schlëssel kritt, ouni Tor oder I2P ze verloossen. encrypted.shannon-ai.com/keys
D'Adresse vun där Websäit op allen dräi Netzwierker stinn hei: Verschlësselten Zougang