Μετάβαση στο περιεχόμενο
Κρυπτογραφημένα endpoints, Tor & I2P

Κρυπτογραφημένα endpoints, Tor & I2P

Το API δημοσιεύεται επίσης ως υπηρεσία Tor onion και ως eepsite I2P. Ίδιες διαδρομές, ίδιο κλειδί· αλλάζουν μόνο το base URL και ο διαμεσολαβητής.

Base URLs

Τέσσερις διευθύνσεις οδηγούν στο ίδιο API. Χρησιμοποιήστε αυτή που ταιριάζει στο δίκτυό σας, με το ίδιο κλειδί API και τα ίδια αιτήματα.

Δίκτυο Base URL Πώς το φτάνετε
Ανοιχτός ιστός https://api.shannon-ai.com/v1 Απευθείας, μέσω HTTPS.
Κρυπτογραφημένο mirror https://api-encrypted.shannon-ai.com/v1 Απευθείας, μέσω HTTPS. Δεύτερο όνομα host για το ίδιο API.
Tor (υπηρεσία onion) http://shannonmd773o5vxz75byha5rkea7nzr3srotw46uwythq3pjl6y4cad.onion/v1 Μέσω client Tor: ένας διαμεσολαβητής SOCKS5, από προεπιλογή στο 127.0.0.1:9050.
I2P (eepsite) http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1 Μέσω router I2P: ένας διαμεσολαβητής HTTP, από προεπιλογή στο 127.0.0.1:4444.
  • Ένα SDK της OpenAI δέχεται το base URL όπως φαίνεται, με /v1. Ένα SDK της Anthropic το δέχεται χωρίς /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.

Τι είναι ίδιο και τι διαφέρει

Στοιχείο Ίδιο; Λεπτομέρεια
Διαδρομές, πεδία αιτημάτων, απαντήσεις, σφάλματα Ίδιο Ίδια σε κάθε διεύθυνση. Καμία διαδρομή δεν συμπεριφέρεται διαφορετικά ανάλογα με το όνομα host.
Κλειδί API Ίδιο Ένα κλειδί δουλεύει σε κάθε διεύθυνση, ως Authorization: Bearer ή x-api-key. Τα cookies δεν διαβάζονται ποτέ στο /v1.
Υπόλοιπο και όρια Ίδιο Το ίδιο υπόλοιπο και το ίδιο όριο των 120 αιτημάτων ανά λεπτό. Και τα δύο μετρώνται ανά λογαριασμό, όχι ανά διεύθυνση.
Μέγεθος αιτήματος Ίδιο Έως 32 MiB ανά σώμα αιτήματος.
Σχήμα Διαφέρει https:// στον ανοιχτό ιστό και στο mirror. http:// στις διευθύνσεις .onion και .b32.i2p, όπου το ίδιο το δίκτυο κρυπτογραφεί τη σύνδεση από άκρο σε άκρο.
Διαμεσολαβητής Διαφέρει Κανένας στον ανοιχτό ιστό. Διαμεσολαβητής SOCKS5 για το Tor, διαμεσολαβητής HTTP για το I2P. Το όνομα πρέπει να επιλύεται από τον διαμεσολαβητή, όχι από τον υπολογιστή σας.
Ταχύτητα Διαφέρει Και τα δύο δίκτυα προσθέτουν καθυστέρηση σε κάθε byte. Το I2P είναι το πιο αργό από τα δύο.

Το υπόλοιπο και τα όρια περιγράφονται στη δική τους σελίδα. Όρια και υπόλοιπο

cURL μέσω Tor

Τρέξτε έναν client Tor στον υπολογιστή σας. Προσφέρει διαμεσολαβητή SOCKS5 στο 127.0.0.1:9050. Το --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"}]
  }'

cURL μέσω I2P

Τρέξτε έναν router I2P στον υπολογιστή σας. Προσφέρει διαμεσολαβητή HTTP στο 127.0.0.1:4444, που δέχεται το όνομα .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"}]
  }'

Base URL για SDK

Ένα SDK χρειάζεται δύο αλλαγές: το base URL του δικτύου και έναν HTTP client που περνά μέσα από τον διαμεσολαβητή. Στην Python και τα δύο επίσημα SDK δέχονται client 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)

Το streaming δουλεύει και στα δύο δίκτυα. Όσο ένα stream είναι ανοιχτό και το μοντέλο δεν έχει ακόμη τίποτα να στείλει, το API στέλνει ένα keep-alive, ώστε η σύνδεση να μη φαίνεται νεκρή σε έναν διαμεσολαβητή ή στον client σας.

Endpoint Keep-alive σε ανοιχτό stream Αποστέλλεται για
/v1/chat/completions Μια γραμμή σχολίου (αρχίζει με :) κάθε 15 δευτερόλεπτα. Όλα τα μοντέλα
/v1/messages Ένα event: ping, ή μια γραμμή σχολίου, κάθε 15 δευτερόλεπτα. Όλα τα μοντέλα
/v1/responses Μια γραμμή σχολίου κάθε 15 δευτερόλεπτα. Φιλοξενούμενα μοντέλα ανοιχτών βαρών
  • Στείλτε "stream": true. Μια απάντηση με streaming αρχίζει να φτάνει μόλις γράφει το μοντέλο, και το keep-alive δείχνει ότι το αίτημα εξακολουθεί να επεξεργάζεται. Μια απάντηση χωρίς streaming δεν στέλνει τίποτα μέχρι να είναι έτοιμη ολόκληρη η απάντηση.
  • Δώστε στον client μεγάλο timeout ανάγνωσης. Τα παραδείγματα χρησιμοποιούν 600 δευτερόλεπτα. Ένα timeout μικρότερο από 15 δευτερόλεπτα μπορεί να τερματίσει ένα stream ανάμεσα σε δύο keep-alive.
  • Αφήστε τον αναγνώστη SSE σας να προσπερνά τις γραμμές σχολίων και τα συμβάντα ping. Τα SDK το κάνουν ήδη.
  • Μην ξαναστέλνετε ένα αίτημα τη στιγμή που πέφτει μια σύνδεση. Ένα αίτημα που έφτασε στο API τρέχει μέχρι το τέλος και μετριέται, ακόμη κι όταν η σύνδεση έχει χαθεί.
  • Δοκιμάστε πρώτα τη διαδρομή με το GET /v1/models. Δεν χρειάζεται κλειδί και επιστρέφει μια σύντομη λίστα JSON.

Προβλήματα σύνδεσης

Σύμπτωμα Αιτία και διόρθωση
Η σύνδεση στο 127.0.0.1:9050 ή 127.0.0.1:4444 απορρίπτεται Δεν τρέχει client Tor ή router I2P στον υπολογιστή σας, ή ακούει σε άλλη θύρα. Το Tor Browser προσφέρει τον διαμεσολαβητή SOCKS του στη θύρα 9150.
Could not resolve host για το όνομα .onion Ο client προσπάθησε να επιλύσει μόνος του το όνομα. Χρησιμοποιήστε --socks5-hostname στο cURL και socks5h:// σε URL διαμεσολαβητή, ώστε να το επιλύσει ο client Tor.
Ο διαμεσολαβητής I2P απαντά με τη δική του σελίδα σφάλματος Ο router δεν έχει βρει ακόμη τη διεύθυνση. Ένας router χρειάζεται λίγα λεπτά αφού ξεκινήσει. Δοκιμάστε ξανά.
401 με Missing authentication Το αίτημα έφτασε χωρίς κλειδί. Στείλτε την ίδια κεφαλίδα όπως στον ανοιχτό ιστό.

Κάθε άλλο σφάλμα είναι ίδιο με τον ανοιχτό ιστό. Χειρισμός σφαλμάτων

Το κλειδί σας χωρίς JavaScript

Το Shannon έχει επίσης ιστότοπο χωρίς JavaScript, προσβάσιμο στον ανοιχτό ιστό, ως υπηρεσία onion και ως eepsite. Η σελίδα /keys του δείχνει το κλειδί API σας και σας αφήνει να το αλλάξετε, ώστε να πάρετε κλειδί χωρίς να φύγετε από το Tor ή το I2P. encrypted.shannon-ai.com/keys

Οι διευθύνσεις αυτού του ιστότοπου και στα τρία δίκτυα αναγράφονται εδώ: Κρυπτογραφημένη πρόσβαση