Endpoint zifratuak, Tor eta I2P
APIa Tor onion zerbitzu gisa eta I2P eepsite gisa ere argitaratzen da. Ibilbide berak, giltza bera; base URL-a eta proxya bakarrik aldatzen dira.
Base URLak
Lau helbidek API berera eramaten dute. Erabili zure sareari egokitzen zaiona, API giltza berarekin eta eskaera berberekin.
| Sarea | Base URL | Nola iristen zaren |
|---|---|---|
| Web argia | https://api.shannon-ai.com/v1 | Zuzenean, HTTPS bidez. |
| Ispilu zifratua | https://api-encrypted.shannon-ai.com/v1 | Zuzenean, HTTPS bidez. Ostalari-izen bigarren bat API berarentzat. |
| Tor (onion zerbitzua) | http://shannonmd773o5vxz75byha5rkea7nzr3srotw46uwythq3pjl6y4cad.onion/v1 | Tor bezero baten bidez: SOCKS5 proxy bat, lehenespenez 127.0.0.1:9050-n. |
| I2P (eepsite) | http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1 | I2P router baten bidez: HTTP proxy bat, lehenespenez 127.0.0.1:4444-n. |
- OpenAI SDK batek base URL-a erakusten den bezala hartzen du,
/v1-ekin. Anthropic SDK batek/v1gabe hartzen du. - Helbide bat egiaztatzeko, irakurri
https://api.shannon-ai.com-en erantzun-goiburuak:Onion-Location-ek onion helbidea darama etaX-I2P-Location-ek I2P helbidea. Onion helbideashannon-ekin hasten da.
Zein ibilbidek funtzionatzen duten
/v1 ibilbide guztiek erantzuten dute lau helbideetan:
POST /v1/chat/completionsPOST /v1/responsesPOST /v1/messagesPOST /v1/messages/count_tokensPOST /v1/tokenizeGET /v1/models
GET /v1/models-ek ez du giltzarik behar, beraz zure proxyak APIra iristen dela egiaztatzeko proba azkarra da.
Zer den berdina eta zer desberdina
| Elementua | Berdina? | Xehetasuna |
|---|---|---|
| Ibilbideak, eskaera-eremuak, erantzunak, erroreak | Berdina | Berdinak helbide guztietan. Ibilbide batek ere ez du besterik jokatzen ostalari-izenaren arabera. |
| API giltza | Berdina | Giltza batek helbide guztietan balio du, Authorization: Bearer edo x-api-key gisa. Cookie-ak ez dira inoiz irakurtzen /v1-en. |
| Saldoa eta mugak | Berdina | Saldo bera eta minutuko 120 eskaerako muga bera. Biak kontuko kontatzen dira, ez helbideko. |
| Eskaeraren tamaina | Berdina | Eskaeraren gorputzeko 32 MiB arte. |
| Eskema | Desberdina | https:// web argian eta ispiluan. http:// .onion eta .b32.i2p helbideetan, sareak berak konexioa muturretik muturrera zifratzen baitu. |
| Proxya | Desberdina | Bat ere ez web argian. SOCKS5 proxy bat Torrentzat, HTTP proxy bat I2Prentzat. Izena proxyak ebatzi behar du, ez zure makinak. |
| Abiadura | Desberdina | Bi sareek atzerapena gehitzen diote byte bakoitzari. I2P bien artean motelagoa da. |
Saldoa eta mugak beren orrian azaltzen dira. Mugak eta saldoa
cURL Tor bidez
Exekutatu Tor bezero bat zure makinan. SOCKS5 proxy bat eskaintzen du 127.0.0.1:9050-n. --socks5-hostname-ek .onion izena proxy horri ematen dio.
# 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 bidez
Exekutatu I2P router bat zure makinan. HTTP proxy bat eskaintzen du 127.0.0.1:4444-n, eta honek .b32.i2p izena dagoen bezala hartzen du.
# 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"}]
}' SDKaren base URL-a
SDK batek bi aldaketa behar ditu: sarearen base URL-a, eta proxytik pasatzen den HTTP bezero bat. Python-en bi SDK ofizialek httpx bezero bat hartzen dute. SOCKS proxy baterako instalatu 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 eta keep-alive-a lotura mantsoetan
Streaming-ak bi sareetan funtzionatzen du. Stream bat irekita dagoen bitartean eta modeloak oraindik bidaltzeko ezer ez duenean, APIak keep-alive bat bidaltzen du, konexioa proxyari edo zure bezeroari hilda ez iruditzeko.
| Endpointa | Keep-alive stream irekian | Honentzat bidaliak |
|---|---|---|
/v1/chat/completions | Iruzkin-lerro bat (:-rekin hasten da) 15 segundoz behin. | Modelo guztiak |
/v1/messages | event: ping bat, edo iruzkin-lerro bat, 15 segundoz behin. | Modelo guztiak |
/v1/responses | Iruzkin-lerro bat 15 segundoz behin. | Pisu irekiko modelo ostatatuak |
- Bidali
"stream": true. Streamean doan erantzuna modeloak idatzi bezain laster iristen hasten da, eta keep-alive-ak eskaera oraindik lantzen ari dela erakusten du. Streamean ez doan erantzun batek ez du ezer bidaltzen erantzun osoa prest egon arte. - Eman bezeroari irakurketa-timeout luze bat. Adibideek 600 segundo erabiltzen dituzte. 15 segundo baino laburragoa den timeout batek streama bi keep-alive-en artean amaitu dezake.
- Utzi zure SSE irakurleak iruzkin-lerroak eta
pinggertaerak saltatzen. SDKek dagoeneko egiten dute. - Ez bidali eskaera berriro konexioa erortzen den unean bertan. APIra iritsi zen eskaera bat amaierara arte exekutatzen da eta kontatzen da, konexioa joan bada ere.
- Probatu bidea lehenengo
GET /v1/models-ekin. Ez du giltzarik behar eta JSON zerrenda labur bat itzultzen du.
Konexio-arazoak
| Sintoma | Kausa eta konponbidea |
|---|---|
127.0.0.1:9050 edo 127.0.0.1:4444-rako konexioa errefusatzen da | Ez dago Tor bezerorik edo I2P routerrik exekutatzen zure makinan, edo beste ataka batean entzuten du. Tor Browser-ek bere SOCKS proxya 9150 atakan eskaintzen du. |
Could not resolve host .onion izenarentzat | Bezeroak izena bere kabuz ebazten saiatu da. Erabili --socks5-hostname cURL-en eta socks5h:// proxy URL batean, Tor bezeroak ebatz dezan. |
| I2P proxyak bere errore-orriarekin erantzuten du | Routerrak ez du helbidea oraindik aurkitu. Router batek minutu batzuk behar ditu abiatu ondoren. Saiatu berriro. |
401 eta Missing authentication | Eskaera giltzarik gabe iritsi zen. Bidali web argian bezalako goiburu bera. |
Gainerako errore guztiak web argian bezalakoak dira. Errore‑kudeaketa
Zure giltza JavaScript gabe
Shannonek JavaScript gabeko webgune bat ere badu, web argian, onion zerbitzu gisa eta eepsite gisa eskura daitekeena. Bere /keys orriak zure API giltza erakusten du eta biratzen uzten du, beraz giltza bat lor dezakezu Tor edo I2P utzi gabe. encrypted.shannon-ai.com/keys
Webgune horren helbideak hiru sareetan hemen zerrendatzen dira: Sarbide zifratua