የተመሰጠሩ፣ Tor & I2P endpoints
API እንዲሁ እንደ Tor onion አገልግሎት እና እንደ I2P eepsite ታትሟል። ተመሳሳይ መንገዶች፣ ተመሳሳይ ቁልፍ፤ የሚቀየሩት base URL እና proxy ብቻ ናቸው።
Base URLs
አራት አድራሻዎች ወደ ተመሳሳዩ API ይመራሉ። ለኔትወርክዎ የሚስማማውን ይጠቀሙ፣ በተመሳሳይ API ቁልፍ እና በተመሳሳይ ጥያቄዎች።
| ኔትወርክ | Base URL | እንዴት እንደሚደርሱበት |
|---|---|---|
| ግልጹ ድር | https://api.shannon-ai.com/v1 | በቀጥታ፣ በHTTPS። |
| የተመሰጠረ mirror | https://api-encrypted.shannon-ai.com/v1 | በቀጥታ፣ በHTTPS። ለተመሳሳዩ API ሁለተኛ የhost ስም። |
| Tor (onion አገልግሎት) | http://shannonmd773o5vxz75byha5rkea7nzr3srotw46uwythq3pjl6y4cad.onion/v1 | በTor client በኩል፦ SOCKS5 proxy ነው፣ በነባሪ በ127.0.0.1:9050 ላይ። |
| I2P (eepsite) | http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1 | በI2P router በኩል፦ HTTP proxy ነው፣ በነባሪ በ127.0.0.1:4444 ላይ። |
- የOpenAI SDK base URL ን እንደተመለከተው ከ
/v1ጋር ይቀበላል። የAnthropic SDK ያለ/v1ይቀበላል። - አድራሻን ለማረጋገጥ የ
https://api.shannon-ai.comየምላሽ headers ያንብቡ፦Onion-Locationየonion አድራሻውን ይይዛል እናX-I2P-LocationየI2P አድራሻውን። የonion አድራሻ በshannonይጀምራል።
የትኞቹ መንገዶች ይሰራሉ
እያንዳንዱ /v1 መንገድ በአራቱም አድራሻዎች ይመልሳል፦
POST /v1/chat/completionsPOST /v1/responsesPOST /v1/messagesPOST /v1/messages/count_tokensPOST /v1/tokenizeGET /v1/models
GET /v1/models ቁልፍ አያስፈልገውም፣ ስለዚህ proxy ዎ ወደ API መድረሱን ለመፈተሽ ፈጣን መንገድ ነው።
ተመሳሳይ የሆነው እና የሚለያየው
| ንጥል | ተመሳሳይ? | ዝርዝር |
|---|---|---|
| መንገዶች፣ የጥያቄ መስኮች፣ ምላሾች፣ ስህተቶች | ተመሳሳይ | በእያንዳንዱ አድራሻ ተመሳሳይ። በhost ስም የተለየ ባህሪ ያለው መንገድ የለም። |
| API ቁልፍ | ተመሳሳይ | አንድ ቁልፍ በእያንዳንዱ አድራሻ ይሰራል፣ እንደ Authorization: Bearer ወይም x-api-key። Cookies በ/v1 ላይ በፍጹም አይነበቡም። |
| ቀሪ ሂሳብ እና ገደቦች | ተመሳሳይ | ተመሳሳይ ቀሪ ሂሳብ እና በደቂቃ 120 ጥያቄዎች ተመሳሳይ ገደብ። ሁለቱም የሚቆጠሩት በመለያ ነው እንጂ በአድራሻ አይደለም። |
| የጥያቄ መጠን | ተመሳሳይ | በጥያቄ body እስከ 32 MiB። |
| Scheme | ይለያያል | በግልጹ ድር ላይ እና በmirror ላይ https://። ኔትወርኩ ራሱ ግንኙነቱን ከጫፍ እስከ ጫፍ በሚያመሰጥርበት በ.onion እና በ.b32.i2p አድራሻዎች ላይ http://። |
| Proxy | ይለያያል | በግልጹ ድር ላይ የለም። ለTor SOCKS5 proxy፣ ለI2P HTTP proxy። ስሙ በማሽንዎ ሳይሆን በproxy መፈታት አለበት። |
| ፍጥነት | ይለያያል | ሁለቱም ኔትወርኮች በእያንዳንዱ ባይት ላይ መዘግየት ይጨምራሉ። ከሁለቱ I2P ዘገምተኛው ነው። |
ቀሪ ሂሳብ እና ገደቦች በራሳቸው ገጽ ላይ ተብራርተዋል። ገደቦች እና ቀሪ ሂሳብ
cURL በTor በኩል
በማሽንዎ ላይ Tor client ያስኪዱ። በ127.0.0.1:9050 SOCKS5 proxy ያቀርባል። --socks5-hostname የ.onion ስሙን ለዚያ 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 በI2P በኩል
በማሽንዎ ላይ I2P router ያስኪዱ። በ127.0.0.1:4444 HTTP proxy ያቀርባል፣ እሱም የ.b32.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"}]
}' SDK base URL
SDK ሁለት ለውጦች ያስፈልጉታል፦ የኔትወርኩ base URL፣ እና በproxy የሚያልፍ HTTP client። በPython ሁለቱም ኦፊሴላዊ SDKs httpx client ይቀበላሉ። ለSOCKS proxy 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 እና keep-alive
Streaming በሁለቱም ኔትወርኮች ላይ ይሰራል። stream ክፍት ሲሆን እና ሞዴሉ ገና የሚልከው ነገር ሳይኖረው API keep-alive ይልካል፣ ስለዚህ ግንኙነቱ ለproxy ወይም ለclient ዎ የሞተ አይመስልም።
| Endpoint | በክፍት stream ላይ የሚላክ Keep-alive | የሚላከው ለ |
|---|---|---|
/v1/chat/completions | በየ15 ሰከንዱ የcomment መስመር (በ: ይጀምራል)። | ሁሉም ሞዴሎች |
/v1/messages | በየ15 ሰከንዱ event: ping፣ ወይም የcomment መስመር። | ሁሉም ሞዴሎች |
/v1/responses | በየ15 ሰከንዱ የcomment መስመር። | የተስተናገዱ open-weight ሞዴሎች |
"stream": trueይላኩ። የstream ምላሽ ሞዴሉ እንደጻፈ መድረስ ይጀምራል፣ እና keep-alive ጥያቄው አሁንም እየተሰራ መሆኑን ያሳያል። stream ያልሆነ ምላሽ ሙሉው መልስ እስኪዘጋጅ ምንም አይልክም።- ለclient ረጅም የንባብ timeout ይስጡት። ናሙናዎቹ 600 ሰከንድ ይጠቀማሉ። ከ15 ሰከንድ ያነሰ timeout በሁለት keep-alives መካከል stream ሊያቋርጥ ይችላል።
- SSE አንባቢዎ የcomment መስመሮችን እና
pingevents ን እንዲዘል ያድርጉ። SDKs ይህን አስቀድመው ያደርጋሉ። - ግንኙነት በተቋረጠ ቅጽበት ጥያቄን እንደገና አይላኩ። ወደ API የደረሰ ጥያቄ እስከ መጨረሻው ይሄዳል እና ይቆጠራል፣ ግንኙነቱ ቢጠፋም።
- መንገዱን መጀመሪያ በ
GET /v1/modelsይሞክሩ። ቁልፍ አያስፈልገውም እና አጭር የJSON ዝርዝር ይመልሳል።
የግንኙነት ችግሮች
| ምልክት | ምክንያት እና መፍትሄ |
|---|---|
ወደ 127.0.0.1:9050 ወይም 127.0.0.1:4444 ግንኙነት ውድቅ ተደርጓል | በማሽንዎ ላይ ምንም Tor client ወይም I2P router አይሰራም፣ ወይም በሌላ port ያዳምጣል። Tor Browser SOCKS proxy ውን በport 9150 ያቀርባል። |
ለ.onion ስም Could not resolve host | client ስሙን ራሱ ለመፍታት ሞክሯል። Tor client እንዲፈታው በcURL --socks5-hostname እና በproxy URL socks5h:// ይጠቀሙ። |
| የI2P proxy በራሱ የስህተት ገጽ ይመልሳል | router አድራሻውን ገና አላገኘውም። router ከጀመረ በኋላ ጥቂት ደቂቃዎች ይፈልጋል። እንደገና ይሞክሩ። |
401 ከMissing authentication ጋር | ጥያቄው ያለ ቁልፍ ደርሷል። በግልጹ ድር ላይ ያለውን ተመሳሳይ header ይላኩ። |
ሌላ ማንኛውም ስህተት በግልጹ ድር ላይ ካለው ጋር ተመሳሳይ ነው። ስህተት አስተዳደር
ቁልፍዎ ያለ JavaScript
Shannon ያለ JavaScript የሚሰራ ድር ጣቢያም አለው፣ በግልጹ ድር ላይ፣ እንደ onion አገልግሎት እና እንደ eepsite ይገኛል። የ/keys ገጹ የAPI ቁልፍዎን ያሳያል እና እንዲቀይሩት ያስችልዎታል፣ ስለዚህ Tor ወይም I2P ሳይለቁ ቁልፍ ማግኘት ይችላሉ። encrypted.shannon-ai.com/keys
የዚያ ድር ጣቢያ አድራሻዎች በሦስቱም ኔትወርኮች እዚህ ተዘርዝረዋል፦ የተመሰጠረ መዳረሻ