सामग्रीमा जानुहोस्
इन्क्रिप्टेड, Tor र I2P इन्डपोइन्टहरू

इन्क्रिप्टेड, 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/completions
  • POST /v1/responses
  • POST /v1/messages
  • POST /v1/messages/count_tokens
  • POST /v1/tokenize
  • GET /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 नाम त्यो प्रोक्सीलाई दिन्छ।

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 राउटर चलाउनुहोस्। यसले 127.0.0.1:4444 मा HTTP प्रोक्सी दिन्छ, जसले .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 बेस 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)

स्ट्रिमिङ दुवै नेटवर्कमा काम गर्छ। स्ट्रिम खुला हुँदा र मोडलसँग पठाउन केही नहुँदा 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

त्यो वेबसाइटका तीनवटै नेटवर्कका ठेगानाहरू यहाँ सूचीबद्ध छन्: इन्क्रिप्टेड पहुँच