Endpoint zilizosimbwa, Tor na I2P
API pia imechapishwa kama Tor onion service na I2P eepsite. Routes zile zile, key ile ile; ni base URL na proxy pekee vinavyobadilika.
Base URL
Anwani nne zinaelekea kwenye API ile ile. Tumia ile inayofaa mtandao wako, na API key ile ile na maombi yale yale.
| Mtandao | Base URL | Jinsi unavyoifikia |
|---|---|---|
| Clear web | https://api.shannon-ai.com/v1 | Moja kwa moja, kupitia HTTPS. |
| Mirror iliyosimbwa | https://api-encrypted.shannon-ai.com/v1 | Moja kwa moja, kupitia HTTPS. Jina la pili la host kwa API ile ile. |
| Tor (onion service) | http://shannonmd773o5vxz75byha5rkea7nzr3srotw46uwythq3pjl6y4cad.onion/v1 | Kupitia Tor client: SOCKS5 proxy, kwa chaguo-msingi kwenye 127.0.0.1:9050. |
| I2P (eepsite) | http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1 | Kupitia I2P router: HTTP proxy, kwa chaguo-msingi kwenye 127.0.0.1:4444. |
- SDK ya OpenAI inapokea base URL kama inavyoonyeshwa, pamoja na
/v1. SDK ya Anthropic inaipokea bila/v1. - Ili kukagua anwani, soma headers za jibu za
https://api.shannon-ai.com:Onion-Locationhubeba anwani ya onion naX-I2P-Locationanwani ya I2P. Anwani ya onion huanza nashannon.
Routes zipi zinafanya kazi
Kila route ya /v1 hujibu kwenye anwani zote nne:
POST /v1/chat/completionsPOST /v1/responsesPOST /v1/messagesPOST /v1/messages/count_tokensPOST /v1/tokenizeGET /v1/models
GET /v1/models haihitaji key, jambo linaloifanya jaribio la haraka kwamba proxy yako inafikia API.
Nini ni sawa na nini kinatofautiana
| Kipengele | Sawa? | Maelezo |
|---|---|---|
| Routes, fields za ombi, majibu, makosa | Sawa | Sawa kwenye kila anwani. Hakuna route inayofanya kazi tofauti kulingana na jina la host. |
| API key | Sawa | Key moja inafanya kazi kwenye kila anwani, kama Authorization: Bearer au x-api-key. Cookies hazisomwi kamwe kwenye /v1. |
| Salio na mipaka | Sawa | Salio lile lile na kikomo kile kile cha maombi 120 kwa dakika. Vyote vinahesabiwa kwa kila akaunti, si kwa kila anwani. |
| Ukubwa wa ombi | Sawa | Hadi 32 MiB kwa kila mwili wa ombi. |
| Scheme | Tofauti | https:// kwenye clear web na kwenye mirror. http:// kwenye anwani za .onion na .b32.i2p, ambako mtandao wenyewe husimba muunganisho kutoka mwanzo hadi mwisho. |
| Proxy | Tofauti | Hakuna kwenye clear web. SOCKS5 proxy kwa Tor, HTTP proxy kwa I2P. Jina lazima litatuliwe na proxy, si na kompyuta yako. |
| Kasi | Tofauti | Mitandao yote miwili huongeza ucheleweshaji kwa kila byte. I2P ndiyo ya polepole zaidi kati ya hiyo miwili. |
Salio na mipaka vimeelezwa kwenye ukurasa wake. Mipaka na salio
cURL kupitia Tor
Endesha Tor client kwenye kompyuta yako. Inatoa SOCKS5 proxy kwenye 127.0.0.1:9050. --socks5-hostname huipa proxy hiyo jina la .onion.
# 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 kupitia I2P
Endesha I2P router kwenye kompyuta yako. Inatoa HTTP proxy kwenye 127.0.0.1:4444, ambayo inapokea jina la .b32.i2p kama lilivyo.
# 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 ya SDK
SDK inahitaji mabadiliko mawili: base URL ya mtandao, na HTTP client inayopita kwenye proxy. Kwenye Python SDK zote mbili rasmi zinakubali httpx client. Kwa SOCKS proxy sakinisha 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 na keep-alive kwenye viungo vya polepole
Streaming inafanya kazi kwenye mitandao yote miwili. Stream ikiwa wazi na model haina cha kutuma bado, API hutuma keep-alive, ili muunganisho usionekane umekufa kwa proxy au kwa client yako.
| Endpoint | Keep-alive kwenye stream iliyo wazi | Hutumwa kwa |
|---|---|---|
/v1/chat/completions | Mstari wa maoni (huanza na :) kila sekunde 15. | Model zote |
/v1/messages | event: ping, au mstari wa maoni, kila sekunde 15. | Model zote |
/v1/responses | Mstari wa maoni kila sekunde 15. | Model za open-weight zinazopangishwa |
- Tuma
"stream": true. Jibu la stream huanza kufika mara model inapoandika, na keep-alive inaonyesha kwamba ombi bado linashughulikiwa. Jibu lisilo la stream halitumi chochote hadi jibu zima liwe tayari. - Ipe client read timeout ndefu. Mifano inatumia sekunde 600. Timeout fupi kuliko sekunde 15 inaweza kukatisha stream kati ya keep-alives mbili.
- Acha SSE reader yako iruke mistari ya maoni na matukio ya
ping. SDK tayari hufanya hivyo. - Usitume tena ombi mara muunganisho unapokatika. Ombi lililofika kwenye API huendelea hadi mwisho na huhesabiwa, hata muunganisho ukiwa umepotea.
- Jaribu njia kwanza kwa
GET /v1/models. Haihitaji key na hurudisha orodha fupi ya JSON.
Matatizo ya muunganisho
| Dalili | Sababu na suluhisho |
|---|---|
Muunganisho kwa 127.0.0.1:9050 au 127.0.0.1:4444 umekataliwa | Hakuna Tor client wala I2P router inayoendeshwa kwenye kompyuta yako, au inasikiliza kwenye port nyingine. Tor Browser hutoa SOCKS proxy yake kwenye port 9150. |
Could not resolve host kwa jina la .onion | Client ilijaribu kutatua jina yenyewe. Tumia --socks5-hostname kwenye cURL na socks5h:// kwenye URL ya proxy, ili Tor client ilitatue. |
| I2P proxy hujibu kwa ukurasa wake wa kosa | Router bado haijapata anwani. Router inahitaji dakika chache baada ya kuanza. Jaribu tena. |
401 na Missing authentication | Ombi lilifika bila key. Tuma header ile ile kama kwenye clear web. |
Kila kosa lingine ni lile lile kama kwenye clear web. Ushughulikiaji wa Makosa
Key yako bila JavaScript
Shannon pia ina tovuti isiyo na JavaScript, inayopatikana kwenye clear web, kama onion service na kama eepsite. Ukurasa wake wa /keys unaonyesha API key yako na kukuruhusu kuibadilisha, kwa hiyo unaweza kupata key bila kuondoka Tor au I2P. encrypted.shannon-ai.com/keys
Anwani za tovuti hiyo kwenye mitandao yote mitatu zimeorodheshwa hapa: Ufikiaji uliosimbwa