உள்ளடக்கத்துக்குச் செல்
குறியாக்கப்பட்ட, Tor & I2P endpoints

குறியாக்கப்பட்ட, 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-Location onion முகவரியையும், X-I2P-Location I2P முகவரியையும் தரும். onion முகவரி shannon என்று தொடங்கும்.

எந்த வழிகள் செயல்படும்

ஒவ்வொரு /v1 வழியும் நான்கு முகவரிகளிலும் பதிலளிக்கும்:

  • POST /v1/chat/completions
  • POST /v1/responses
  • POST /v1/messages
  • POST /v1/messages/count_tokens
  • POST /v1/tokenize
  • GET /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-க்கு அனுப்பும்.

cURL · Tor
# 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 பெயரை அப்படியே ஏற்கும்.

cURL · 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)

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

அந்த வலைத்தளத்தின் முகவரிகள் மூன்று நெட்வொர்க்குகளிலும் இங்கே பட்டியலிடப்பட்டுள்ளன: குறியாக்கப்பட்ட அணுகல்