Joan edukira
Endpoint zifratuak, Tor eta I2P

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 /v1 gabe hartzen du.
  • Helbide bat egiaztatzeko, irakurri https://api.shannon-ai.com-en erantzun-goiburuak: Onion-Location-ek onion helbidea darama eta X-I2P-Location-ek I2P helbidea. Onion helbidea shannon-ekin hasten da.

Zein ibilbidek funtzionatzen duten

/v1 ibilbide guztiek erantzuten dute lau helbideetan:

  • POST /v1/chat/completions
  • POST /v1/responses
  • POST /v1/messages
  • POST /v1/messages/count_tokens
  • POST /v1/tokenize
  • GET /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.

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 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.

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"}]
  }'

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)

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 ping gertaerak 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