Endpoints masu ɓoyewa, Tor & I2P
Ana kuma wallafa API a matsayin Tor onion service da I2P eepsite. Routes iri ɗaya, maɓalli iri ɗaya; base URL da proxy kaɗai ke canzawa.
Base URLs
Adireshi huɗu suna kai wa API iri ɗaya. Ku yi amfani da wanda ya dace da hanyar sadarwarku, da API key iri ɗaya da requests iri ɗaya.
| Hanyar sadarwa | Base URL | Yadda kuke kaiwa gare shi |
|---|---|---|
| Clear web | https://api.shannon-ai.com/v1 | Kai tsaye, ta HTTPS. |
| Mirror mai ɓoyewa | https://api-encrypted.shannon-ai.com/v1 | Kai tsaye, ta HTTPS. Sunan host na biyu ga API iri ɗaya. |
| Tor (onion service) | http://shannonmd773o5vxz75byha5rkea7nzr3srotw46uwythq3pjl6y4cad.onion/v1 | Ta Tor client: SOCKS5 proxy, a asali a 127.0.0.1:9050. |
| I2P (eepsite) | http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1 | Ta I2P router: HTTP proxy, a asali a 127.0.0.1:4444. |
- OpenAI SDK yana ɗaukar base URL yadda aka nuna, da
/v1. Anthropic SDK yana ɗaukarsa ba tare da/v1ba. - Don tabbatar da adireshi, ku karanta headers na amsar
https://api.shannon-ai.com:Onion-Locationyana ɗauke da adireshin onion kumaX-I2P-Locationadireshin I2P. Adireshin onion yana farawa dashannon.
Wane routes ke aiki
Kowane route na /v1 yana amsawa a dukkan adireshi huɗun:
POST /v1/chat/completionsPOST /v1/responsesPOST /v1/messagesPOST /v1/messages/count_tokensPOST /v1/tokenizeGET /v1/models
GET /v1/models ba ya buƙatar maɓalli, wanda ya sa shi gwaji mai sauri cewa proxy ɗinku yana kaiwa API.
Abin da ke iri ɗaya da abin da ya bambanta
| Abu | Iri ɗaya? | Bayani dalla-dalla |
|---|---|---|
| Routes, fields na request, amsoshi, kurakurai | Iri ɗaya | Iri ɗaya a kowane adireshi. Babu route da ke aiki daban ta sunan host. |
| API key | Iri ɗaya | Maɓalli ɗaya yana aiki a kowane adireshi, a matsayin Authorization: Bearer ko x-api-key. Ba a taɓa karanta cookies a /v1 ba. |
| Balance da iyakoki | Iri ɗaya | Balance iri ɗaya da iyakar requests 120 a minti ɗaya iri ɗaya. Ana ƙidaya duka biyun ga kowane asusu, ba ga kowane adireshi ba. |
| Girman request | Iri ɗaya | Har zuwa 32 MiB ga kowane body na request. |
| Scheme | Ya bambanta | https:// a clear web da mirror. http:// a adireshin .onion da .b32.i2p, inda hanyar sadarwa kanta ke ɓoye haɗin daga ƙarshe zuwa ƙarshe. |
| Proxy | Ya bambanta | Babu a clear web. SOCKS5 proxy ga Tor, HTTP proxy ga I2P. Dole proxy ne ya warware sunan, ba na'urarku ba. |
| Gudu | Ya bambanta | Hanyoyin sadarwa biyun suna ƙara jinkiri ga kowane byte. I2P ya fi jinkiri a cikin biyun. |
An bayyana balance da iyakoki a shafinsu na kansu. Iyakoki da balance
cURL ta Tor
Ku gudanar da Tor client a na'urarku. Yana bayar da SOCKS5 proxy a 127.0.0.1:9050. --socks5-hostname yana mika sunan .onion ga wannan proxy.
# 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 ta I2P
Ku gudanar da I2P router a na'urarku. Yana bayar da HTTP proxy a 127.0.0.1:4444, wanda ke ɗaukar sunan .b32.i2p yadda yake.
# 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 na SDK
SDK yana buƙatar canje-canje biyu: base URL na hanyar sadarwa, da HTTP client da ke bi ta proxy. A Python SDKs na hukuma biyun suna ɗaukar httpx client. Don SOCKS proxy ku shigar da 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 da keep-alive a haɗi masu jinkiri
Streaming yana aiki a hanyoyin sadarwa biyun. Yayin da stream ke buɗe kuma model bai da abin aikawa tukuna, API yana aika keep-alive, don haka haɗin ba ya zama kamar ya mutu ga proxy ko client ɗinku.
| Endpoint | Keep-alive a stream da ke buɗe | Ana aikawa don |
|---|---|---|
/v1/chat/completions | Layin sharhi (yana farawa da :) kowane daƙiƙa 15. | Dukkan models |
/v1/messages | event: ping, ko layin sharhi, kowane daƙiƙa 15. | Dukkan models |
/v1/responses | Layin sharhi kowane daƙiƙa 15. | Hosted open-weight models |
- Ku aika
"stream": true. Amsa ta streaming tana fara isowa da zarar model ya rubuta, kuma keep-alive yana nuna cewa ana ci gaba da aiki a kan request. Amsa ba tare da streaming ba ba ta aika komai ba sai dukkan amsar ta shirya. - Ku ba client read timeout mai tsawo. Samfuran suna amfani da daƙiƙa 600. Timeout da ya gaza daƙiƙa 15 na iya kawo ƙarshen stream tsakanin keep-alives biyu.
- Ku bar SSE reader ɗinku ya tsallake layukan sharhi da events na
ping. SDKs suna yin haka tuni. - Kada ku sake aika request da zarar haɗi ya katse. Request da ya isa API yana gudana har ƙarshe kuma ana ƙidaya shi, ko da haɗin ya tafi.
- Ku fara gwada hanyar da
GET /v1/models. Ba ya buƙatar maɓalli kuma yana mayar da ɗan gajeren jerin JSON.
Matsalolin haɗi
| Alama | Dalili da gyara |
|---|---|
An ƙi haɗin zuwa 127.0.0.1:9050 ko 127.0.0.1:4444 | Babu Tor client ko I2P router da ke gudana a na'urarku, ko kuma yana saurare a wata tashar. Tor Browser yana bayar da SOCKS proxy ɗinsa a tashar 9150. |
Could not resolve host ga sunan .onion | Client ya yi ƙoƙarin warware sunan da kansa. Ku yi amfani da --socks5-hostname a cURL da socks5h:// a proxy URL, don Tor client ya warware shi. |
| I2P proxy yana amsawa da shafin kuskurensa na kansa | Router bai sami adireshin ba tukuna. Router yana buƙatar ƙarin mintuna kaɗan bayan ya fara. Ku sake gwadawa. |
401 da Missing authentication | Request ya iso ba tare da maɓalli ba. Ku aika header iri ɗaya kamar a clear web. |
Kowane sauran kuskure iri ɗaya ne da na clear web. Kuskuren Gudanarwa
Maɓallinku ba tare da JavaScript ba
Shannon yana kuma da gidan yanar gizo ba tare da JavaScript ba, wanda ake kaiwa gare shi a clear web, a matsayin onion service da kuma eepsite. Shafinsa na /keys yana nuna API key ɗinku kuma yana ba ku damar sauya shi, don haka kuna iya samun maɓalli ba tare da barin Tor ko I2P ba. encrypted.shannon-ai.com/keys
An lissafa adireshin wannan gidan yanar gizo a dukkan hanyoyin sadarwa uku a nan: Samun dama mai ɓoyewa