Прескокни до содржината
Шифрирани, Tor и I2P ендпоинти

Шифрирани, Tor и I2P ендпоинти

API-то е објавено и како Tor onion услуга и како I2P eepsite. Исти патеки, ист клуч; се менуваат само основниот URL и proxy-то.

Основни 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 proxy, стандардно на 127.0.0.1:9050.
I2P (eepsite) http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1 Преку I2P router: HTTP proxy, стандардно на 127.0.0.1:4444.
  • SDK на OpenAI го прима основниот URL како што е прикажан, со /v1. SDK на Anthropic го прима без /v1.
  • За да проверите адреса, прочитајте ги header-ите на одговорот од 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 не бара клуч, па е брз тест дали вашиот proxy стигнува до API-то.

Што е исто, а што се разликува

Ставка Исто? Детали
Патеки, полиња на барање, одговори, грешки Исто Исто на секоја адреса. Ниту една патека не се однесува поинаку според името на хостот.
API клуч Исто Еден клуч работи на секоја адреса, како Authorization: Bearer или x-api-key. Колачињата никогаш не се читаат на /v1.
Салдо и ограничувања Исто Исто салдо и исто ограничување од 120 барања во минута. И двете се бројат по сметка, а не по адреса.
Големина на барањето Исто До 32 MiB по тело на барање.
Шема Се разликува https:// на обичниот веб и на огледалото. http:// на адресите .onion и .b32.i2p, каде самата мрежа ја шифрира врската од крај до крај.
Proxy Се разликува Нема на обичниот веб. SOCKS5 proxy за Tor, HTTP proxy за I2P. Името мора да го разрешува proxy-то, а не вашата машина.
Брзина Се разликува Двете мрежи додаваат доцнење на секој бајт. I2P е побавната од двете.

Салдото и ограничувањата се опишани на нивна страница. Ограничувања и салдо

cURL преку Tor

Пуштете Tor клиент на вашата машина. Нуди SOCKS5 proxy на 127.0.0.1:9050. --socks5-hostname му го предава името .onion на тој proxy.

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

Пуштете I2P router на вашата машина. Нуди HTTP proxy на 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"}]
  }'

Основен URL за SDK

SDK-то бара две промени: основниот URL на мрежата и HTTP клиент што минува низ proxy-то. Во Python двете официјални SDK-а примаат клиент httpx. За SOCKS proxy инсталирајте 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 работи преку двете мрежи. Додека streaming е отворен и моделот сè уште нема што да испрати, API-то испраќа keep-alive, па врската не изгледа мртва за proxy или за вашиот клиент.

Ендпоинт Keep-alive на отворен streaming Се испраќа за
/v1/chat/completions Ред-коментар (започнува со :) на секои 15 секунди. Сите модели
/v1/messages event: ping, или ред-коментар, на секои 15 секунди. Сите модели
/v1/responses Ред-коментар на секои 15 секунди. Хостирани open-weight модели
  • Испратете "stream": true. Одговорот со streaming започнува да пристигнува штом моделот пишува, а keep-alive покажува дека барањето сè уште се работи. Одговор без streaming не испраќа ништо додека целиот одговор не е готов.
  • Дајте му на клиентот долг read timeout. Примерите користат 600 секунди. Timeout пократок од 15 секунди може да го прекине streaming-от меѓу два keep-alive.
  • Дозволете вашиот SSE читач да прескокнува редови-коментари и настани ping. SDK-ата тоа веќе го прават.
  • Не го испраќајте барањето повторно веднаш штом врската ќе падне. Барање што стигнало до API-то се извршува до крај и се брои, и кога врската ја нема.
  • Прво тестирајте ја патеката со GET /v1/models. Не бара клуч и враќа кратка JSON листа.

Проблеми со врската

Симптом Причина и решение
Врската со 127.0.0.1:9050 или 127.0.0.1:4444 е одбиена На вашата машина не работи Tor клиент или I2P router, или слуша на друг порт. Tor Browser го нуди својот SOCKS proxy на порт 9150.
Could not resolve host за името .onion Клиентот се обидел сам да го разреши името. Користете --socks5-hostname во cURL и socks5h:// во proxy URL, за Tor клиентот да го разреши.
I2P proxy-то одговара со своја страница за грешка Router-от сè уште не ја пронашол адресата. На router-от му требаат неколку минути откако ќе стартува. Обидете се повторно.
401 со Missing authentication Барањето пристигнало без клуч. Испратете го истиот header како на обичниот веб.

Секоја друга грешка е иста како на обичниот веб. Ракување со грешки

Вашиот клуч без JavaScript

Shannon има и веб-страница без JavaScript, достапна на обичниот веб, како onion услуга и како eepsite. Нејзината страница /keys го прикажува вашиот API клуч и ви дозволува да го смените, па можете да добиете клуч без да ги напуштите Tor или I2P. encrypted.shannon-ai.com/keys

Адресите на таа веб-страница на сите три мрежи се наведени овде: Шифриран пристап