ఎన్క్రిప్టెడ్, Tor & I2P ఎండ్పాయింట్లు
API ను Tor onion సర్వీస్గా మరియు I2P eepsite గా కూడా ప్రచురించాము. అవే రూట్లు, అదే కీ; base URL మరియు ప్రాక్సీ మాత్రమే మారతాయి.
Base URLలు
నాలుగు అడ్రస్లు ఒకే API కి దారి తీస్తాయి. మీ నెట్వర్క్కు సరిపోయేదాన్ని, అదే API కీ మరియు అవే రిక్వెస్ట్లతో ఉపయోగించండి.
| నెట్వర్క్ | Base URL | ఎలా చేరుకోవాలి |
|---|---|---|
| క్లియర్ వెబ్ | https://api.shannon-ai.com/v1 | నేరుగా, HTTPS ద్వారా. |
| ఎన్క్రిప్టెడ్ మిర్రర్ | https://api-encrypted.shannon-ai.com/v1 | నేరుగా, HTTPS ద్వారా. అదే API కి రెండవ హోస్ట్ పేరు. |
| Tor (onion సర్వీస్) | http://shannonmd773o5vxz75byha5rkea7nzr3srotw46uwythq3pjl6y4cad.onion/v1 | Tor క్లయింట్ ద్వారా: ఒక SOCKS5 ప్రాక్సీ, డిఫాల్ట్గా 127.0.0.1:9050 వద్ద. |
| I2P (eepsite) | http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1 | I2P రౌటర్ ద్వారా: ఒక HTTP ప్రాక్సీ, డిఫాల్ట్గా 127.0.0.1:4444 వద్ద. |
- OpenAI SDK base URL ను చూపినట్లే,
/v1తో తీసుకుంటుంది. Anthropic SDK దాన్ని/v1లేకుండా తీసుకుంటుంది. - అడ్రస్ను ధృవీకరించడానికి,
https://api.shannon-ai.comసమాధాన హెడర్లను చదవండి: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 కు కీ అవసరం లేదు, కాబట్టి మీ ప్రాక్సీ API ని చేరుకుంటుందో లేదో త్వరగా పరీక్షించవచ్చు.
ఏది ఒకేలా ఉంది, ఏది భిన్నంగా ఉంది
| అంశం | ఒకేలా ఉందా? | వివరం |
|---|---|---|
| రూట్లు, రిక్వెస్ట్ ఫీల్డ్లు, సమాధానాలు, ఎర్రర్లు | ఒకేలా | ప్రతి అడ్రస్లో ఒకేలా. ఏ రూట్ కూడా హోస్ట్ పేరును బట్టి వేరుగా ప్రవర్తించదు. |
| API కీ | ఒకేలా | ఒక కీ ప్రతి అడ్రస్లో పనిచేస్తుంది, Authorization: Bearer లేదా x-api-key గా. /v1 లో కుకీలు ఎప్పుడూ చదవబడవు. |
| బ్యాలెన్స్ మరియు పరిమితులు | ఒకేలా | అదే బ్యాలెన్స్ మరియు నిమిషానికి 120 రిక్వెస్ట్ల అదే పరిమితి. రెండూ అడ్రస్ వారీగా కాకుండా ఖాతా వారీగా లెక్కించబడతాయి. |
| రిక్వెస్ట్ పరిమాణం | ఒకేలా | ప్రతి రిక్వెస్ట్ బాడీకి 32 MiB వరకు. |
| స్కీమ్ | భిన్నంగా ఉంది | క్లియర్ వెబ్లో మరియు మిర్రర్లో https://. .onion మరియు .b32.i2p అడ్రస్లలో http://; అక్కడ నెట్వర్క్ స్వయంగా కనెక్షన్ను ఎండ్-టు-ఎండ్ ఎన్క్రిప్ట్ చేస్తుంది. |
| ప్రాక్సీ | భిన్నంగా ఉంది | క్లియర్ వెబ్లో ఏదీ లేదు. Tor కు SOCKS5 ప్రాక్సీ, I2P కు HTTP ప్రాక్సీ. పేరును మీ మెషిన్ కాకుండా ప్రాక్సీ పరిష్కరించాలి. |
| వేగం | భిన్నంగా ఉంది | రెండు నెట్వర్క్లు ప్రతి బైట్కు ఆలస్యాన్ని జోడిస్తాయి. రెండింటిలో I2P నెమ్మదైనది. |
బ్యాలెన్స్ మరియు పరిమితులు వాటి స్వంత పేజీలో వివరించబడ్డాయి. పరిమితులు మరియు బ్యాలెన్స్
Tor ద్వారా cURL
మీ మెషిన్లో Tor క్లయింట్ను నడపండి. ఇది 127.0.0.1:9050 వద్ద SOCKS5 ప్రాక్సీని అందిస్తుంది. --socks5-hostname .onion పేరును ఆ ప్రాక్సీకి అప్పగిస్తుంది.
# 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 రౌటర్ను నడపండి. ఇది 127.0.0.1:4444 వద్ద HTTP ప్రాక్సీని అందిస్తుంది, అది .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, మరియు ప్రాక్సీ ద్వారా వెళ్ళే HTTP క్లయింట్. Python లో రెండు అధికారిక SDKలు httpx క్లయింట్ను తీసుకుంటాయి. SOCKS ప్రాక్సీ కోసం 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) నెమ్మదైన లింక్లలో స్ట్రీమింగ్ మరియు కీప్-అలైవ్
స్ట్రీమింగ్ రెండు నెట్వర్క్లలోనూ పనిచేస్తుంది. స్ట్రీమ్ తెరిచి ఉండి, మోడల్ ఇంకా పంపడానికి ఏమీ లేనప్పుడు, API కీప్-అలైవ్ పంపుతుంది, కాబట్టి ప్రాక్సీకి లేదా మీ క్లయింట్కు కనెక్షన్ చచ్చిపోయినట్లు కనిపించదు.
| ఎండ్పాయింట్ | తెరిచి ఉన్న స్ట్రీమ్లో కీప్-అలైవ్ | ఎవరికి పంపబడుతుంది |
|---|---|---|
/v1/chat/completions | ప్రతి 15 సెకన్లకు ఒక కామెంట్ లైన్ (ఇది : తో మొదలవుతుంది). | అన్ని మోడల్స్ |
/v1/messages | ప్రతి 15 సెకన్లకు ఒక event: ping, లేదా ఒక కామెంట్ లైన్. | అన్ని మోడల్స్ |
/v1/responses | ప్రతి 15 సెకన్లకు ఒక కామెంట్ లైన్. | హోస్ట్ చేసిన ఓపెన్-వెయిట్ మోడల్స్ |
"stream": trueపంపండి. మోడల్ రాయగానే స్ట్రీమ్ చేసిన సమాధానం రావడం మొదలవుతుంది, మరియు కీప్-అలైవ్ రిక్వెస్ట్పై ఇంకా పని జరుగుతోందని చూపిస్తుంది. స్ట్రీమ్ చేయని సమాధానం మొత్తం సిద్ధమయ్యే వరకు ఏమీ పంపదు.- క్లయింట్కు పొడవైన రీడ్ టైమ్అవుట్ ఇవ్వండి. నమూనాలు 600 సెకన్లు ఉపయోగిస్తాయి. 15 సెకన్ల కంటే తక్కువ టైమ్అవుట్ రెండు కీప్-అలైవ్ల మధ్య స్ట్రీమ్ను ముగించవచ్చు.
- మీ SSE రీడర్ కామెంట్ లైన్లను మరియు
pingఈవెంట్లను దాటవేసేలా చేయండి. SDKలు ఇప్పటికే ఇలా చేస్తాయి. - కనెక్షన్ తెగిన వెంటనే రిక్వెస్ట్ను మళ్ళీ పంపవద్దు. API కి చేరిన రిక్వెస్ట్ చివరి వరకు నడుస్తుంది మరియు కనెక్షన్ పోయినా కూడా లెక్కించబడుతుంది.
- ముందు
GET /v1/modelsతో మార్గాన్ని పరీక్షించండి. దానికి కీ అవసరం లేదు మరియు ఇది చిన్న JSON జాబితాను ఇస్తుంది.
కనెక్షన్ సమస్యలు
| లక్షణం | కారణం మరియు పరిష్కారం |
|---|---|
127.0.0.1:9050 లేదా 127.0.0.1:4444 కు కనెక్షన్ తిరస్కరించబడింది | మీ మెషిన్లో Tor క్లయింట్ లేదా I2P రౌటర్ నడవడం లేదు, లేదా అది వేరే పోర్ట్లో వింటోంది. Tor Browser తన SOCKS ప్రాక్సీని పోర్ట్ 9150 లో అందిస్తుంది. |
.onion పేరుకు Could not resolve host | క్లయింట్ పేరును స్వయంగా పరిష్కరించడానికి ప్రయత్నించింది. Tor క్లయింట్ దాన్ని పరిష్కరించేలా cURL లో --socks5-hostname ను, ప్రాక్సీ URL లో socks5h:// ను ఉపయోగించండి. |
| I2P ప్రాక్సీ తన స్వంత ఎర్రర్ పేజీతో సమాధానం ఇస్తుంది | రౌటర్ ఇంకా అడ్రస్ను కనుగొనలేదు. రౌటర్ ప్రారంభమైన తర్వాత కొన్ని నిమిషాలు పడుతుంది. మళ్ళీ ప్రయత్నించండి. |
Missing authentication తో 401 | రిక్వెస్ట్ కీ లేకుండా చేరింది. క్లియర్ వెబ్లో పంపే హెడర్నే పంపండి. |
మిగతా ప్రతి ఎర్రర్ క్లియర్ వెబ్లో ఉన్నట్లే ఉంటుంది. ఎరర్ హ్యాండ్లింగ్
JavaScript లేకుండా మీ కీ
Shannon కు JavaScript లేని వెబ్సైట్ కూడా ఉంది; అది క్లియర్ వెబ్లో, onion సర్వీస్గా మరియు eepsite గా అందుబాటులో ఉంటుంది. దాని /keys పేజీ మీ API కీని చూపిస్తుంది మరియు దాన్ని మార్చుకోనిస్తుంది, కాబట్టి Tor లేదా I2P ను వదలకుండానే కీ పొందవచ్చు. encrypted.shannon-ai.com/keys
ఆ వెబ్సైట్ యొక్క మూడు నెట్వర్క్లలోని అడ్రస్లు ఇక్కడ జాబితా చేయబడ్డాయి: ఎన్క్రిప్టెడ్ యాక్సెస్