इन्क्रिप्टेड, Tor र I2P इन्डपोइन्टहरू
API Tor onion सेवा र I2P eepsite का रूपमा पनि प्रकाशित छ। उही रुट, उही की; बेस URL र प्रोक्सी मात्र बदलिन्छन्।
बेस URL हरू
चारवटा ठेगानाले उही API मा पुर्याउँछन्। उही API की र उही अनुरोधसहित, आफ्नो नेटवर्कलाई मिल्ने ठेगाना प्रयोग गर्नुहोस्।
| नेटवर्क | बेस 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 ले बेस URL देखाइएझैं,
/v1सहित लिन्छ। Anthropic SDK ले/v1बिना लिन्छ। - ठेगाना जाँच्न
https://api.shannon-ai.comका जवाफ हेडरहरू पढ्नुहोस्: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 लाई की चाहिँदैन, जसले यसलाई तपाईंको प्रोक्सी 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 बेस URL
SDK लाई दुई परिवर्तन चाहिन्छ: नेटवर्कको बेस 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 | क्लाइन्टले नाम आफैं रिजोल्भ गर्ने प्रयास गर्यो। cURL मा --socks5-hostname र प्रोक्सी URL मा socks5h:// प्रयोग गर्नुहोस्, ताकि Tor क्लाइन्टले रिजोल्भ गरोस्। |
| I2P प्रोक्सीले आफ्नै त्रुटि पेजले जवाफ दिन्छ | राउटरले ठेगाना अझै भेट्टाएको छैन। राउटरलाई सुरु भएपछि केही मिनेट चाहिन्छ। फेरि प्रयास गर्नुहोस्। |
Missing authentication सहित 401 | अनुरोध की बिना आइपुग्यो। सामान्य वेबमा जस्तै उही हेडर पठाउनुहोस्। |
अरू हरेक त्रुटि सामान्य वेबमा जस्तै हो। त्रुटि व्यवस्थापन
JavaScript बिना तपाईंको की
Shannon को JavaScript बिनाको वेबसाइट पनि छ, जुन सामान्य वेबमा, onion सेवाका रूपमा र eepsite का रूपमा पुग्न सकिन्छ। यसको /keys पेजले तपाईंको API की देखाउँछ र बदल्न दिन्छ, त्यसैले तपाईं Tor वा I2P नछोडी की पाउन सक्नुहुन्छ। encrypted.shannon-ai.com/keys
त्यो वेबसाइटका तीनवटै नेटवर्कका ठेगानाहरू यहाँ सूचीबद्ध छन्: इन्क्रिप्टेड पहुँच