Lumaktaw sa nilalaman
Mga encrypted, Tor at I2P endpoint

Mga encrypted, Tor at I2P endpoint

Inilalathala rin ang API bilang Tor onion service at I2P eepsite. Parehong mga route, parehong key; ang base URL at ang proxy lang ang nagbabago.

Mga base URL

Apat na address ang patungo sa iisang API. Gamitin ang angkop sa iyong network, na may parehong API key at parehong mga request.

Network Base URL Paano ito maaabot
Clear web https://api.shannon-ai.com/v1 Direkta, sa HTTPS.
Encrypted na mirror https://api-encrypted.shannon-ai.com/v1 Direkta, sa HTTPS. Pangalawang host name para sa parehong API.
Tor (onion service) http://shannonmd773o5vxz75byha5rkea7nzr3srotw46uwythq3pjl6y4cad.onion/v1 Sa pamamagitan ng Tor client: isang SOCKS5 proxy, by default sa 127.0.0.1:9050.
I2P (eepsite) http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1 Sa pamamagitan ng I2P router: isang HTTP proxy, by default sa 127.0.0.1:4444.
  • Tinatanggap ng OpenAI SDK ang base URL ayon sa ipinapakita, na may /v1. Tinatanggap ito ng Anthropic SDK nang walang /v1.
  • Para suriin ang isang address, basahin ang mga reply header ng https://api.shannon-ai.com: dala ng Onion-Location ang onion address at ng X-I2P-Location ang I2P address. Nagsisimula sa shannon ang onion address.

Aling mga route ang gumagana

Sumasagot ang bawat /v1 route sa lahat ng apat na address:

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

Walang key na kailangan ang GET /v1/models, kaya mabilis itong pagsubok na naaabot ng iyong proxy ang API.

Ano ang pareho at ano ang magkaiba

Item Pareho? Detalye
Mga route, request field, reply, error Pareho Pareho sa bawat address. Walang route na iba ang gawi ayon sa host name.
API key Pareho Isang key ang gumagana sa bawat address, bilang Authorization: Bearer o x-api-key. Hindi kailanman binabasa ang cookies sa /v1.
Balance at mga limitasyon Pareho Parehong balance at parehong limitasyong 120 request kada minuto. Parehong binibilang kada account, hindi kada address.
Laki ng request Pareho Hanggang 32 MiB kada request body.
Scheme Magkaiba https:// sa clear web at sa mirror. http:// sa mga address na .onion at .b32.i2p, kung saan mismong ang network ang nag-e-encrypt ng koneksyon mula dulo hanggang dulo.
Proxy Magkaiba Wala sa clear web. SOCKS5 proxy para sa Tor, HTTP proxy para sa I2P. Dapat i-resolve ng proxy ang pangalan, hindi ng iyong makina.
Bilis Magkaiba Parehong nagdaragdag ng delay sa bawat byte ang dalawang network. Ang I2P ang mas mabagal sa dalawa.

Inilalarawan sa sarili nilang pahina ang balance at mga limitasyon. Mga limitasyon at balance

cURL sa pamamagitan ng Tor

Magpatakbo ng Tor client sa iyong makina. Nag-aalok ito ng SOCKS5 proxy sa 127.0.0.1:9050. Ibinibigay ng --socks5-hostname ang pangalang .onion sa proxy na iyon.

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 sa pamamagitan ng I2P

Magpatakbo ng I2P router sa iyong makina. Nag-aalok ito ng HTTP proxy sa 127.0.0.1:4444, na tumatanggap ng pangalang .b32.i2p ayon sa kung ano ito.

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 ng SDK

Dalawang pagbabago ang kailangan ng SDK: ang base URL ng network, at isang HTTP client na dumadaan sa proxy. Sa Python, parehong tumatanggap ang dalawang opisyal na SDK ng httpx client. Para sa SOCKS proxy, i-install ang 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)

Gumagana ang streaming sa parehong network. Habang bukas ang stream at wala pang maipadala ang model, nagpapadala ang API ng keep-alive, para hindi magmukhang patay ang koneksyon sa proxy o sa iyong client.

Endpoint Keep-alive sa bukas na stream Ipinapadala para sa
/v1/chat/completions Isang comment line (nagsisimula sa :) tuwing 15 segundo. Lahat ng model
/v1/messages Isang event: ping, o comment line, tuwing 15 segundo. Lahat ng model
/v1/responses Isang comment line tuwing 15 segundo. Mga hosted open-weight model
  • Magpadala ng "stream": true. Ang naka-stream na reply ay nagsisimulang dumating sa sandaling magsulat ang model, at ipinapakita ng keep-alive na pinoproseso pa ang request. Ang reply na hindi naka-stream ay walang ipinapadala hanggang handa na ang buong sagot.
  • Bigyan ang client ng mahabang read timeout. Gumagamit ng 600 segundo ang mga sample. Ang timeout na mas maikli sa 15 segundo ay maaaring magtapos ng stream sa pagitan ng dalawang keep-alive.
  • Hayaang laktawan ng iyong SSE reader ang mga comment line at ping event. Ginagawa na ito ng mga SDK.
  • Huwag ipadala muli ang request sa sandaling maputol ang koneksyon. Ang request na nakarating sa API ay tumatakbo hanggang dulo at binibilang, kahit wala na ang koneksyon.
  • Subukan muna ang path gamit ang GET /v1/models. Walang key na kailangan at nagbabalik ito ng maikling listahang JSON.

Mga problema sa koneksyon

Sintomas Sanhi at ayos
Tinanggihan ang koneksyon sa 127.0.0.1:9050 o 127.0.0.1:4444 Walang Tor client o I2P router na tumatakbo sa iyong makina, o nakikinig ito sa ibang port. Nag-aalok ang Tor Browser ng SOCKS proxy nito sa port 9150.
Could not resolve host para sa pangalang .onion Sinubukan ng client na i-resolve mismo ang pangalan. Gamitin ang --socks5-hostname sa cURL at socks5h:// sa proxy URL, para ang Tor client ang mag-resolve nito.
Sumasagot ang I2P proxy ng sarili nitong error page Hindi pa nakikita ng router ang address. Kailangan ng router ng ilang minuto pagkatapos itong magsimula. Subukan muli.
401 na may Missing authentication Dumating ang request na walang key. Ipadala ang parehong header tulad sa clear web.

Pareho ng sa clear web ang bawat ibang error. Paghawak ng Error

Ang iyong key nang walang JavaScript

May website din ang Shannon na walang JavaScript, na maaabot sa clear web, bilang onion service at bilang eepsite. Ipinapakita ng pahinang /keys nito ang iyong API key at pinapayagan kang i-rotate ito, kaya makakakuha ka ng key nang hindi umaalis sa Tor o I2P. encrypted.shannon-ai.com/keys

Nakalista rito ang mga address ng website na iyon sa lahat ng tatlong network: Encrypted na access