Àwọn endpoint onídìpọ̀, Tor àti I2P
A tún tẹ API jáde gẹ́gẹ́ bí Tor onion service àti I2P eepsite. Àwọn route kan náà, key kan náà; base URL àti proxy nìkan ló yípadà.
Àwọn base URL
Àdírẹ́sì mẹ́rin ló ń lọ sí API kan náà. Lo èyí tó bá network rẹ mu, pẹ̀lú API key kan náà àti àwọn ìbéèrè kan náà.
| Network | Base URL | Bí o ṣe ń dé ibẹ̀ |
|---|---|---|
| Clear web | https://api.shannon-ai.com/v1 | Tààrà, lórí HTTPS. |
| Mirror onídìpọ̀ | https://api-encrypted.shannon-ai.com/v1 | Tààrà, lórí HTTPS. Orúkọ host kejì fún API kan náà. |
| Tor (onion service) | http://shannonmd773o5vxz75byha5rkea7nzr3srotw46uwythq3pjl6y4cad.onion/v1 | Nípasẹ̀ Tor client: SOCKS5 proxy, ní 127.0.0.1:9050 ní àfikún. |
| I2P (eepsite) | http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1 | Nípasẹ̀ I2P router: HTTP proxy, ní 127.0.0.1:4444 ní àfikún. |
- OpenAI SDK gba base URL bí a ṣe fi hàn, pẹ̀lú
/v1. Anthropic SDK gbà á láìsí/v1. - Láti ṣàyẹ̀wò àdírẹ́sì kan, ka àwọn header èsì ti
https://api.shannon-ai.com:Onion-Locationń gbé àdírẹ́sì onion,X-I2P-Locationsì ń gbé àdírẹ́sì I2P. Àdírẹ́sì onion bẹ̀rẹ̀ pẹ̀lúshannon.
Àwọn route tó ń ṣiṣẹ́
Gbogbo route /v1 ń dáhùn lórí gbogbo àdírẹ́sì mẹ́rẹ̀ẹ́rin:
POST /v1/chat/completionsPOST /v1/responsesPOST /v1/messagesPOST /v1/messages/count_tokensPOST /v1/tokenizeGET /v1/models
GET /v1/models kò nílò key, èyí sì jẹ́ kó jẹ́ ìdánwò kíákíá pé proxy rẹ dé API.
Ohun tó jọra àti ohun tó yàtọ̀
| Ohun kan | Bákan náà? | Àlàyé |
|---|---|---|
| Àwọn route, àwọn field ìbéèrè, àwọn èsì, àwọn àṣìṣe | Bákan náà | Bákan náà lórí gbogbo àdírẹ́sì. Kò sí route tó ń hùwà yàtọ̀ nítorí orúkọ host. |
| API key | Bákan náà | Key kan ń ṣiṣẹ́ lórí gbogbo àdírẹ́sì, gẹ́gẹ́ bí Authorization: Bearer tàbí x-api-key. A kì í ka cookie lórí /v1 láéláé. |
| Balance àti àwọn ààlà | Bákan náà | Balance kan náà àti ààlà ìbéèrè 120 lósìkò ìṣẹ́jú kan náà. A ń kà méjèèjì fún account kọ̀ọ̀kan, kì í ṣe fún àdírẹ́sì kọ̀ọ̀kan. |
| Ìwọ̀n ìbéèrè | Bákan náà | Títí dé 32 MiB fún body ìbéèrè kọ̀ọ̀kan. |
| Scheme | Yàtọ̀ | https:// lórí clear web àti lórí mirror. http:// lórí àwọn àdírẹ́sì .onion àti .b32.i2p, níbi tí network fúnra rẹ̀ ti ń fi ìsokọ́ra pamọ́ láti ìbẹ̀rẹ̀ dé òpin. |
| Proxy | Yàtọ̀ | Kò sí lórí clear web. SOCKS5 proxy fún Tor, HTTP proxy fún I2P. Proxy ni ó gbọdọ̀ yanjú orúkọ náà, kì í ṣe ẹ̀rọ rẹ. |
| Ìyára | Yàtọ̀ | Àwọn network méjèèjì ń fi ìdádúró kún byte kọ̀ọ̀kan. I2P ló lọ́ra jù nínú méjèèjì. |
A ṣàlàyé balance àti àwọn ààlà lórí ojú-ìwé tiwọn. Àwọn ààlà àti balance
cURL nípasẹ̀ Tor
Ṣiṣẹ́ Tor client lórí ẹ̀rọ rẹ. Ó ń pèsè SOCKS5 proxy lórí 127.0.0.1:9050. --socks5-hostname ń fi orúkọ .onion lé proxy yẹn lọ́wọ́.
# 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 nípasẹ̀ I2P
Ṣiṣẹ́ I2P router lórí ẹ̀rọ rẹ. Ó ń pèsè HTTP proxy lórí 127.0.0.1:4444, tó gba orúkọ .b32.i2p bí ó ṣe wà.
# 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 ti SDK
SDK nílò àtúnṣe méjì: base URL ti network náà, àti HTTP client tó ń gba proxy kọjá. Nínú Python, àwọn SDK osise méjèèjì gba client httpx. Fún SOCKS proxy, fi httpx[socks] sórí ẹ̀rọ.
# 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 àti keep-alive lórí àwọn ìsokọ́ra tó lọ́ra
Streaming ń ṣiṣẹ́ lórí àwọn network méjèèjì. Nígbà tí stream bá ṣí tí model kò sì tíì ní nǹkan láti fi ránṣẹ́, API ń fi keep-alive ránṣẹ́, kí asopọ̀ má bàa dà bí èyí tó ti kú sí proxy tàbí sí client rẹ.
| Endpoint | Keep-alive lórí stream tó ṣí | A fi ránṣẹ́ fún |
|---|---|---|
/v1/chat/completions | Ìlà ọ̀rọ̀ ìṣàlàyé (ó bẹ̀rẹ̀ pẹ̀lú :) ní ìṣẹ́jú-àáyá 15 kọ̀ọ̀kan. | Gbogbo model |
/v1/messages | event: ping, tàbí ìlà ọ̀rọ̀ ìṣàlàyé, ní ìṣẹ́jú-àáyá 15 kọ̀ọ̀kan. | Gbogbo model |
/v1/responses | Ìlà ọ̀rọ̀ ìṣàlàyé ní ìṣẹ́jú-àáyá 15 kọ̀ọ̀kan. | Àwọn model open-weight tí a gbàlejò |
- Fi
"stream": trueránṣẹ́. Èsì tí a ṣe stream ń bẹ̀rẹ̀ sí dé ní kété tí model bá ń kọ, keep-alive sì fi hàn pé a ṣì ń ṣiṣẹ́ lórí ìbéèrè náà. Èsì tí kì í ṣe stream kì í fi nǹkan kan ránṣẹ́ títí gbogbo ìdáhùn yóò fi ṣetán. - Fún client ní read timeout gígùn. Àwọn àpẹẹrẹ ń lo ìṣẹ́jú-àáyá 600. Timeout tó kéré ju ìṣẹ́jú-àáyá 15 lè fi òpin sí stream láàrin keep-alive méjì.
- Jẹ́ kí olùkà SSE rẹ fò àwọn ìlà ọ̀rọ̀ ìṣàlàyé àti àwọn event
ping. Àwọn SDK ti ń ṣe èyí tẹ́lẹ̀. - Má ṣe tún fi ìbéèrè ránṣẹ́ ní kété tí asopọ̀ bá já. Ìbéèrè tó dé API ń ṣiṣẹ́ dé òpin, a sì ń kà á, kódà nígbà tí asopọ̀ kò bá sí mọ́.
- Dán ọ̀nà náà wò pẹ̀lú
GET /v1/modelsní àkọ́kọ́. Kò nílò key, ó sì ń dá àtòjọ JSON kúkúrú padà.
Àwọn ìṣòro asopọ̀
| Àmì | Ohun tó fà á àti àtúnṣe |
|---|---|
A kọ asopọ̀ sí 127.0.0.1:9050 tàbí 127.0.0.1:4444 | Kò sí Tor client tàbí I2P router tó ń ṣiṣẹ́ lórí ẹ̀rọ rẹ, tàbí ó ń gbọ́ lórí port mìíràn. Tor Browser ń pèsè SOCKS proxy rẹ̀ lórí port 9150. |
Could not resolve host fún orúkọ .onion | Client gbìyànjú láti yanjú orúkọ náà fúnra rẹ̀. Lo --socks5-hostname nínú cURL àti socks5h:// nínú URL proxy, kí Tor client lè yanjú rẹ̀. |
| I2P proxy dáhùn pẹ̀lú ojú-ìwé àṣìṣe tirẹ̀ | Router kò tíì rí àdírẹ́sì náà. Router nílò ìṣẹ́jú díẹ̀ lẹ́yìn tó bá bẹ̀rẹ̀. Gbìyànjú lẹ́ẹ̀kan sí i. |
401 pẹ̀lú Missing authentication | Ìbéèrè dé láìsí key. Fi header kan náà ránṣẹ́ bí lórí clear web. |
Gbogbo àṣìṣe mìíràn jẹ́ bákan náà bí lórí clear web. Mimu Aṣiṣe
Key rẹ láìsí JavaScript
Shannon tún ní ojú-opo wẹ́ẹ̀bù láìsí JavaScript, tí a lè dé lórí clear web, gẹ́gẹ́ bí onion service àti gẹ́gẹ́ bí eepsite. Ojú-ìwé /keys rẹ̀ ń fi API key rẹ hàn, ó sì jẹ́ kí o pààrọ̀ rẹ̀, nítorí náà o lè gba key láìkúrò ní Tor tàbí I2P. encrypted.shannon-ai.com/keys
A ṣe àtòjọ àwọn àdírẹ́sì ojú-opo wẹ́ẹ̀bù yẹn lórí gbogbo network mẹ́tẹ̀ẹ̀ta níbí: Wíwọlé onídìpọ̀