குறியாக்கப்பட்ட, Tor & I2P endpoints
API ஒரு Tor onion service ஆகவும் I2P eepsite ஆகவும் வெளியிடப்பட்டுள்ளது. அதே வழிகள், அதே key; base URL-உம் proxy-யும் மட்டுமே மாறும்.
Base URL-கள்
நான்கு முகவரிகள் ஒரே API-க்கு இட்டுச் செல்கின்றன. உங்கள் நெட்வொர்க்குக்குப் பொருந்துவதைப் பயன்படுத்தவும்; API key-யும் கோரிக்கைகளும் ஒன்றே.
| நெட்வொர்க் | Base URL | எப்படி அணுகுவது |
|---|---|---|
| Clear web | https://api.shannon-ai.com/v1 | நேரடியாக, HTTPS வழியாக. |
| குறியாக்கப்பட்ட mirror | https://api-encrypted.shannon-ai.com/v1 | நேரடியாக, HTTPS வழியாக. அதே API-க்கான இரண்டாவது host பெயர். |
| Tor (onion service) | 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-Locationonion முகவரியையும்,X-I2P-LocationI2P முகவரியையும் தரும். onion முகவரிshannonஎன்று தொடங்கும்.
எந்த வழிகள் செயல்படும்
ஒவ்வொரு /v1 வழியும் நான்கு முகவரிகளிலும் பதிலளிக்கும்:
POST /v1/chat/completionsPOST /v1/responsesPOST /v1/messagesPOST /v1/messages/count_tokensPOST /v1/tokenizeGET /v1/models
GET /v1/models-க்கு key தேவையில்லை; உங்கள் proxy API-ஐ அடைகிறதா என்று விரைவாகச் சோதிக்க இது உதவும்.
எது ஒன்றே, எது வேறுபடுகிறது
| அம்சம் | ஒன்றா? | விவரம் |
|---|---|---|
| வழிகள், கோரிக்கை புலங்கள், பதில்கள், பிழைகள் | ஒன்றே | ஒவ்வொரு முகவரியிலும் ஒன்றே. host பெயரால் எந்த வழியும் வேறுபடுவதில்லை. |
| API key | ஒன்றே | ஒரு key ஒவ்வொரு முகவரியிலும் செயல்படும், Authorization: Bearer அல்லது x-api-key ஆக. /v1-ல் cookies ஒருபோதும் படிக்கப்படுவதில்லை. |
| Balance மற்றும் வரம்புகள் | ஒன்றே | அதே balance, நிமிடத்திற்கு 120 கோரிக்கைகள் என்ற அதே வரம்பு. இரண்டும் முகவரிக்கு அல்ல, கணக்குக்கு எண்ணப்படுகின்றன. |
| கோரிக்கை அளவு | ஒன்றே | ஒரு கோரிக்கை body-க்கு 32 MiB வரை. |
| Scheme | வேறுபடுகிறது | clear web-லும் mirror-லும் https://. .onion மற்றும் .b32.i2p முகவரிகளில் http://; அங்கு நெட்வொர்க்கே இணைப்பை முனையிலிருந்து முனை வரை குறியாக்கம் செய்கிறது. |
| Proxy | வேறுபடுகிறது | clear web-ல் எதுவுமில்லை. Tor-க்கு SOCKS5 proxy, I2P-க்கு HTTP proxy. பெயரை உங்கள் கணினி அல்ல, proxy தீர்க்க வேண்டும். |
| வேகம் | வேறுபடுகிறது | இரு நெட்வொர்க்குகளும் ஒவ்வொரு பைட்டிலும் தாமதத்தைச் சேர்க்கின்றன. இரண்டில் I2P மெதுவானது. |
Balance மற்றும் வரம்புகள் அவற்றுக்கான தனிப் பக்கத்தில் விவரிக்கப்பட்டுள்ளன. வரம்புகளும் இருப்பும்
Tor வழியாக cURL
உங்கள் கணினியில் 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"}]
}' I2P வழியாக cURL
உங்கள் கணினியில் 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-ல் இரண்டு அதிகாரப்பூர்வ SDK-களும் 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 வினாடிக்கும் ஒரு கருத்து வரி (அது : உடன் தொடங்கும்). | அனைத்து மாடல்கள் |
/v1/messages | ஒவ்வொரு 15 வினாடிக்கும் ஒரு event: ping, அல்லது ஒரு கருத்து வரி. | அனைத்து மாடல்கள் |
/v1/responses | ஒவ்வொரு 15 வினாடிக்கும் ஒரு கருத்து வரி. | ஹோஸ்ட் செய்யப்பட்ட open-weight மாடல்கள் |
"stream": trueஅனுப்பவும். stream செய்யப்படும் பதில் மாடல் எழுதியவுடனே வரத் தொடங்கும்; keep-alive கோரிக்கை இன்னும் செயலாக்கப்படுவதைக் காட்டும். stream செய்யப்படாத பதில் முழுப் பதிலும் தயாராகும் வரை எதையும் அனுப்பாது.- client-க்கு நீண்ட read timeout கொடுக்கவும். மாதிரிகள் 600 வினாடிகளைப் பயன்படுத்துகின்றன. 15 வினாடிகளுக்குக் குறைவான timeout இரண்டு keep-alive இடையே stream-ஐ முடித்துவிடலாம்.
- உங்கள் SSE reader கருத்து வரிகளையும்
pingநிகழ்வுகளையும் தவிர்க்கட்டும். SDK-கள் இதை ஏற்கெனவே செய்கின்றன. - இணைப்பு துண்டிக்கப்பட்ட உடனே கோரிக்கையை மீண்டும் அனுப்ப வேண்டாம். API-ஐ அடைந்த கோரிக்கை இறுதிவரை இயங்கி எண்ணப்படும்; இணைப்பு போனாலும் அப்படியே.
- முதலில்
GET /v1/modelsமூலம் பாதையைச் சோதிக்கவும். அதற்கு key தேவையில்லை; சிறிய 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 தொடங்கிய பிறகு சில நிமிடங்கள் தேவைப்படும். மீண்டும் முயற்சிக்கவும். |
Missing authentication உடன் 401 | கோரிக்கை key இல்லாமல் வந்தது. clear web-ல் அனுப்பும் அதே header-ஐ அனுப்பவும். |
மற்ற ஒவ்வொரு பிழையும் clear web-ல் உள்ளதைப் போலவே. கையாளுவதில் பிழை
JavaScript இல்லாமல் உங்கள் key
Shannon-க்கு JavaScript இல்லாத வலைத்தளமும் உள்ளது; அதை clear web-லும், onion service ஆகவும், eepsite ஆகவும் அணுகலாம். அதன் /keys பக்கம் உங்கள் API key-ஐக் காட்டி, அதை மாற்ற (rotate) அனுமதிக்கிறது; எனவே Tor அல்லது I2P-ஐ விட்டு வெளியேறாமலே key பெறலாம். encrypted.shannon-ai.com/keys
அந்த வலைத்தளத்தின் முகவரிகள் மூன்று நெட்வொர்க்குகளிலும் இங்கே பட்டியலிடப்பட்டுள்ளன: குறியாக்கப்பட்ட அணுகல்