İçeriğe geç
Şifreli, Tor & I2P uç noktaları

Şifreli, Tor & I2P uç noktaları

API ayrıca bir Tor onion hizmeti ve bir I2P eepsite olarak da yayımlanır. Aynı yollar, aynı anahtar; yalnızca temel URL ve proxy değişir.

Temel URL'ler

Dört adres aynı API'ye çıkar. Ağınıza uyanı, aynı API anahtarı ve aynı isteklerle kullanın.

Ağ Temel URL Nasıl ulaşılır
Açık web https://api.shannon-ai.com/v1 Doğrudan, HTTPS üzerinden.
Şifreli mirror https://api-encrypted.shannon-ai.com/v1 Doğrudan, HTTPS üzerinden. Aynı API için ikinci bir ana bilgisayar adı.
Tor (onion hizmeti) http://shannonmd773o5vxz75byha5rkea7nzr3srotw46uwythq3pjl6y4cad.onion/v1 Bir Tor istemcisi üzerinden: varsayılan olarak 127.0.0.1:9050 adresinde bir SOCKS5 proxy.
I2P (eepsite) http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1 Bir I2P router üzerinden: varsayılan olarak 127.0.0.1:4444 adresinde bir HTTP proxy.
  • Bir OpenAI SDK'sı temel URL'yi gösterildiği gibi, /v1 ile alır. Bir Anthropic SDK'sı /v1 olmadan alır.
  • Bir adresi doğrulamak için https://api.shannon-ai.com yanıt başlıklarını okuyun: Onion-Location onion adresini, X-I2P-Location I2P adresini taşır. Onion adresi shannon ile başlar.

Hangi yollar çalışır

Her /v1 yolu dört adresin hepsinde yanıt verir:

  • POST /v1/chat/completions
  • POST /v1/responses
  • POST /v1/messages
  • POST /v1/messages/count_tokens
  • POST /v1/tokenize
  • GET /v1/models

GET /v1/models anahtar gerektirmez; bu da proxy'nizin API'ye ulaştığını görmek için hızlı bir testtir.

Neyin aynı, neyin farklı olduğu

Öğe Aynı mı? Ayrıntı
Yollar, istek alanları, yanıtlar, hatalar Aynı Her adreste aynı. Hiçbir yol ana bilgisayar adına göre farklı davranmaz.
API anahtarı Aynı Tek bir anahtar Authorization: Bearer ya da x-api-key olarak her adreste çalışır. /v1 üzerinde çerezler asla okunmaz.
Bakiye ve limitler Aynı Aynı bakiye ve dakikada 120 istek sınırı. İkisi de adres başına değil, hesap başına sayılır.
İstek boyutu Aynı İstek gövdesi başına en fazla 32 MiB.
Şema Farklı Açık webde ve mirror'da https://. Ağın bağlantıyı uçtan uca kendisinin şifrelediği .onion ve .b32.i2p adreslerinde http://.
Proxy Farklı Açık webde yok. Tor için SOCKS5 proxy, I2P için HTTP proxy. Adı makineniz değil, proxy çözmelidir.
Hız Farklı İki ağ da her bayta gecikme ekler. İkisinden yavaş olan I2P'dir.

Bakiye ve limitler kendi sayfasında anlatılır. Limitler ve bakiye

Tor üzerinden cURL

Makinenizde bir Tor istemcisi çalıştırın. 127.0.0.1:9050 adresinde bir SOCKS5 proxy sunar. --socks5-hostname, .onion adını o proxy'ye devreder.

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 üzerinden cURL

Makinenizde bir I2P router çalıştırın. 127.0.0.1:4444 adresinde, .b32.i2p adını olduğu gibi kabul eden bir HTTP proxy sunar.

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 temel URL'si

Bir SDK için iki değişiklik gerekir: ağın temel URL'si ve proxy üzerinden giden bir HTTP istemcisi. Python'da resmi SDK'ların ikisi de bir httpx istemcisi alır. SOCKS proxy için httpx[socks] kurun.

# 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 her iki ağda da çalışır. Bir stream açıkken ve modelin henüz gönderecek bir şeyi yokken API bir keep-alive gönderir; böylece bağlantı bir proxy'ye ya da istemcinize ölü görünmez.

Uç nokta Açık bir stream'de keep-alive Gönderildiği
/v1/chat/completions Her 15 saniyede bir yorum satırı (: ile başlar). Tüm modeller
/v1/messages Her 15 saniyede bir event: ping ya da bir yorum satırı. Tüm modeller
/v1/responses Her 15 saniyede bir yorum satırı. Host edilen açık ağırlıklı modeller
  • "stream": true gönderin. Stream edilen bir yanıt, model yazar yazmaz gelmeye başlar ve keep-alive, isteğin hâlâ işlendiğini gösterir. Stream edilmeyen bir yanıt, yanıtın tamamı hazır olana kadar hiçbir şey göndermez.
  • İstemciye uzun bir okuma zaman aşımı verin. Örnekler 600 saniye kullanır. 15 saniyeden kısa bir zaman aşımı, bir stream'i iki keep-alive arasında bitirebilir.
  • SSE okuyucunuzun yorum satırlarını ve ping olaylarını atlamasına izin verin. SDK'lar bunu zaten yapar.
  • Bir bağlantı koptuğu anda isteği yeniden göndermeyin. API'ye ulaşan bir istek sonuna kadar çalışır ve bağlantı gitmiş olsa da sayılır.
  • Yolu önce GET /v1/models ile deneyin. Anahtar gerektirmez ve kısa bir JSON listesi döndürür.

Bağlantı sorunları

Belirti Neden ve çözüm
127.0.0.1:9050 veya 127.0.0.1:4444 bağlantısı reddedildi Makinenizde Tor istemcisi ya da I2P router çalışmıyor veya başka bir portu dinliyor. Tor Browser SOCKS proxy'sini 9150 portunda sunar.
.onion adı için Could not resolve host İstemci adı kendisi çözmeye çalıştı. cURL'de --socks5-hostname, proxy URL'sinde socks5h:// kullanın; böylece adı Tor istemcisi çözer.
I2P proxy kendi hata sayfasıyla yanıt veriyor Router adresi henüz bulamadı. Bir router'ın başladıktan sonra birkaç dakikaya ihtiyacı vardır. Yeniden deneyin.
Missing authentication ile 401 İstek anahtarsız geldi. Açık webdekiyle aynı başlığı gönderin.

Diğer her hata açık webdekiyle aynıdır. Hata yönetimi

JavaScript olmadan anahtarınız

Shannon'ın ayrıca JavaScript olmadan çalışan, açık webde, onion hizmeti olarak ve eepsite olarak erişilebilen bir web sitesi vardır. /keys sayfası API anahtarınızı gösterir ve yenilemenizi sağlar; böylece Tor veya I2P'den ayrılmadan bir anahtar alabilirsiniz. encrypted.shannon-ai.com/keys

O web sitesinin üç ağdaki adresleri burada listelenir: Şifreli erişim