Shifrlangan, Tor va I2P endpointlari
API Tor onion xizmati va I2P eepsite sifatida ham e'lon qilingan. Yo'nalishlar bir xil, kalit bir xil; faqat base URL va proksi o'zgaradi.
Base URL'lar
To'rtta manzil bir xil API'ga olib boradi. Tarmog'ingizga mosini tanlang, API kalit va so'rovlar o'sha-o'sha.
| Tarmoq | Base URL | Qanday ulanish kerak |
|---|---|---|
| Oddiy veb | https://api.shannon-ai.com/v1 | To'g'ridan-to'g'ri, HTTPS orqali. |
| Shifrlangan mirror | https://api-encrypted.shannon-ai.com/v1 | To'g'ridan-to'g'ri, HTTPS orqali. Xuddi shu API uchun ikkinchi host nomi. |
| Tor (onion xizmati) | http://shannonmd773o5vxz75byha5rkea7nzr3srotw46uwythq3pjl6y4cad.onion/v1 | Tor klienti orqali: SOCKS5 proksi, odatda 127.0.0.1:9050 da. |
| I2P (eepsite) | http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1 | I2P router orqali: HTTP proksi, odatda 127.0.0.1:4444 da. |
- OpenAI SDK base URL'ni ko'rsatilganidek,
/v1bilan oladi. Anthropic SDK uni/v1siz oladi. - Manzilni tekshirish uchun
https://api.shannon-ai.comjavob sarlavhalarini o'qing:Onion-Locationonion manzilini,X-I2P-LocationI2P manzilini beradi. Onion manzilshannonbilan boshlanadi.
Qaysi yo'nalishlar ishlaydi
Har bir /v1 yo'nalishi to'rttala manzilda ham javob beradi:
POST /v1/chat/completionsPOST /v1/responsesPOST /v1/messagesPOST /v1/messages/count_tokensPOST /v1/tokenizeGET /v1/models
GET /v1/models kalit talab qilmaydi, shuning uchun proksingiz API'ga yetib borishini tez tekshirishga mos.
Nima bir xil va nima farq qiladi
| Band | Bir xilmi? | Tafsilot |
|---|---|---|
| Yo'nalishlar, so'rov maydonlari, javoblar, xatolar | Bir xil | Har bir manzilda bir xil. Hech bir yo'nalish host nomiga qarab boshqacha ishlamaydi. |
| API kalit | Bir xil | Bitta kalit har bir manzilda ishlaydi, Authorization: Bearer yoki x-api-key sifatida. /v1 da cookie'lar hech qachon o'qilmaydi. |
| Balans va limitlar | Bir xil | Balans ham, daqiqasiga 120 ta so'rov limiti ham bir xil. Ikkalasi ham manzil bo'yicha emas, akkaunt bo'yicha sanaladi. |
| So'rov hajmi | Bir xil | Har bir so'rov tanasi 32 MiB gacha. |
| Sxema | Farq qiladi | Oddiy veb'da va mirror'da https://. .onion va .b32.i2p manzillarida http://, bunda tarmoqning o'zi ulanishni boshidan oxirigacha shifrlaydi. |
| Proksi | Farq qiladi | Oddiy veb'da yo'q. Tor uchun SOCKS5 proksi, I2P uchun HTTP proksi. Nomni kompyuteringiz emas, proksi hal qilishi kerak. |
| Tezlik | Farq qiladi | Ikkala tarmoq ham har bir baytga kechikish qo'shadi. I2P ikkisidan sekinroq. |
Balans va limitlar o'z sahifasida tasvirlangan. Limitlar va balans
Tor orqali cURL
Kompyuteringizda Tor klientini ishga tushiring. U 127.0.0.1:9050 da SOCKS5 proksi taklif qiladi. --socks5-hostname .onion nomini shu proksiga uzatadi.
# 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"}]
}' I2P orqali cURL
Kompyuteringizda I2P router ishga tushiring. U 127.0.0.1:4444 da HTTP proksi taklif qiladi, u .b32.i2p nomini o'zgartirmasdan qabul qiladi.
# 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 uchun ikkita o'zgartirish kerak: tarmoqning base URL'i va proksi orqali o'tadigan HTTP klient. Python'da ikkala rasmiy SDK ham httpx klientini qabul qiladi. SOCKS proksi uchun httpx[socks] ni o'rnating.
# 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) Sekin ulanishlarda streaming va keep-alive
Streaming ikkala tarmoqda ham ishlaydi. Oqim ochiq bo'lib, modelda hali yuboradigan narsa bo'lmagan paytda API keep-alive yuboradi, shunda ulanish proksiga yoki klientingizga o'lik ko'rinmaydi.
| Endpoint | Ochiq oqimdagi keep-alive | Qaysi modellarga yuboriladi |
|---|---|---|
/v1/chat/completions | Har 15 soniyada izoh satri (u : bilan boshlanadi). | Barcha modellar |
/v1/messages | Har 15 soniyada event: ping yoki izoh satri. | Barcha modellar |
/v1/responses | Har 15 soniyada izoh satri. | Xostingdagi open-weight modellar |
"stream": trueyuboring. Oqimli javob model yozishi bilan kela boshlaydi, keep-alive esa so'rov hali ishlanayotganini ko'rsatadi. Oqimsiz javob butun javob tayyor bo'lguncha hech narsa yubormaydi.- Klientga uzun o'qish timeout'ini bering. Namunalarda 600 soniya ishlatilgan. 15 soniyadan qisqa timeout oqimni ikki keep-alive orasida uzib qo'yishi mumkin.
- SSE o'quvchingiz izoh satrlari va
pinghodisalarini o'tkazib yuborsin. SDK'lar buni allaqachon qiladi. - Ulanish uzilishi bilanoq so'rovni qayta yubormang. API'ga yetib borgan so'rov oxirigacha bajariladi va hisoblanadi, ulanish yo'q bo'lsa ham.
- Yo'lni avval
GET /v1/modelsbilan sinab ko'ring. U kalit talab qilmaydi va qisqa JSON ro'yxatini qaytaradi.
Ulanish muammolari
| Alomat | Sabab va yechim |
|---|---|
127.0.0.1:9050 yoki 127.0.0.1:4444 ga ulanish rad etildi | Kompyuteringizda Tor klienti yoki I2P router ishlamayapti yoki u boshqa portda tinglayapti. Tor Browser o'zining SOCKS proksisini 9150 portda taklif qiladi. |
.onion nomi uchun Could not resolve host | Klient nomni o'zi hal qilishga urindi. cURL'da --socks5-hostname, proksi URL'da socks5h:// ishlating, shunda nomni Tor klienti hal qiladi. |
| I2P proksi o'zining xato sahifasi bilan javob beradi | Router manzilni hali topmagan. Router ishga tushgandan keyin bir necha daqiqa kerak bo'ladi. Qayta urinib ko'ring. |
401 va Missing authentication | So'rov kalitsiz yetib keldi. Oddiy veb'dagi bilan bir xil sarlavhani yuboring. |
Boshqa har bir xato oddiy veb'dagi bilan bir xil. Xatolarni boshqarish
Kalitingiz JavaScript'siz
Shannon'ning JavaScript'siz veb-sayti ham bor, u oddiy veb'da, onion xizmati va eepsite sifatida mavjud. Uning /keys sahifasi API kalitingizni ko'rsatadi va uni almashtirishga imkon beradi, shuning uchun Tor yoki I2P'dan chiqmasdan kalit olishingiz mumkin. encrypted.shannon-ai.com/keys
Shu veb-saytning uchala tarmoqdagi manzillari bu yerda keltirilgan: Shifrlangan kirish