Slaan oor na inhoud
Geënkripteerde, Tor- en I2P-eindpunte

Geënkripteerde, Tor- en I2P-eindpunte

Die API word ook as 'n Tor-onion-diens en 'n I2P-eepsite gepubliseer. Dieselfde roetes, dieselfde sleutel; net die basis-URL en die proxy verander.

Basis-URL's

Vier adresse lei na dieselfde API. Gebruik die een wat by jou netwerk pas, met dieselfde API-sleutel en dieselfde versoeke.

Netwerk Basis-URL Hoe jy dit bereik
Oop web https://api.shannon-ai.com/v1 Direk, oor HTTPS.
Geënkripteerde spieël https://api-encrypted.shannon-ai.com/v1 Direk, oor HTTPS. 'n Tweede gasheernaam vir dieselfde API.
Tor (onion-diens) http://shannonmd773o5vxz75byha5rkea7nzr3srotw46uwythq3pjl6y4cad.onion/v1 Deur 'n Tor-kliënt: 'n SOCKS5-proxy, by verstek by 127.0.0.1:9050.
I2P (eepsite) http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1 Deur 'n I2P-router: 'n HTTP-proxy, by verstek by 127.0.0.1:4444.
  • 'n OpenAI-SDK neem die basis-URL soos gewys, met /v1. 'n Anthropic-SDK neem dit sonder /v1.
  • Om 'n adres na te gaan, lees die antwoord-headers van https://api.shannon-ai.com: Onion-Location dra die onion-adres en X-I2P-Location die I2P-adres. Die onion-adres begin met shannon.

Watter roetes werk

Elke /v1-roete antwoord op al vier adresse:

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

GET /v1/models het geen sleutel nodig nie, wat dit 'n vinnige toets maak dat jou proxy die API bereik.

Wat dieselfde is en wat verskil

Item Dieselfde? Besonderhede
Roetes, versoekvelde, antwoorde, foute Dieselfde Dieselfde op elke adres. Geen roete gedra hom anders volgens gasheernaam nie.
API-sleutel Dieselfde Een sleutel werk op elke adres, as Authorization: Bearer of x-api-key. Koekies word nooit op /v1 gelees nie.
Balans en perke Dieselfde Dieselfde balans en dieselfde perk van 120 versoeke per minuut. Albei word per rekening getel, nie per adres nie.
Versoekgrootte Dieselfde Tot 32 MiB per versoekliggaam.
Skema Verskil https:// op die oop web en op die spieël. http:// op die .onion- en .b32.i2p-adresse, waar die netwerk self die verbinding van punt tot punt enkripteer.
Proxy Verskil Geen op die oop web nie. 'n SOCKS5-proxy vir Tor, 'n HTTP-proxy vir I2P. Die naam moet deur die proxy opgelos word, nie deur jou masjien nie.
Spoed Verskil Albei netwerke voeg vertraging by elke greep by. I2P is die stadiger van die twee.

Balans en perke word op hul eie bladsy beskryf. Perke en balans

cURL deur Tor

Laat 'n Tor-kliënt op jou masjien loop. Dit bied 'n SOCKS5-proxy op 127.0.0.1:9050. --socks5-hostname gee die .onion-naam aan daardie 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 deur I2P

Laat 'n I2P-router op jou masjien loop. Dit bied 'n HTTP-proxy op 127.0.0.1:4444 wat die .b32.i2p-naam soos dit is neem.

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-basis-URL

'n SDK het twee veranderings nodig: die basis-URL van die netwerk, en 'n HTTP-kliënt wat deur die proxy gaan. In Python neem albei amptelike SDK's 'n httpx-kliënt. Vir 'n SOCKS-proxy, installeer 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)

Stroming werk oor albei netwerke. Terwyl 'n stroom oop is en die model nog niks het om te stuur nie, stuur die API 'n keep-alive, sodat die verbinding nie vir 'n proxy of vir jou kliënt dood lyk nie.

Eindpunt Keep-alive op 'n oop stroom Gestuur vir
/v1/chat/completions 'n Kommentaarreël (dit begin met :) elke 15 sekondes. Alle modelle
/v1/messages 'n event: ping, of 'n kommentaarreël, elke 15 sekondes. Alle modelle
/v1/responses 'n Kommentaarreël elke 15 sekondes. Gehuisveste oopgewig-modelle
  • Stuur "stream": true. 'n Gestroomde antwoord begin aankom sodra die model skryf, en die keep-alive wys dat daar nog aan die versoek gewerk word. 'n Antwoord sonder stroming stuur niks voordat die hele antwoord gereed is nie.
  • Gee die kliënt 'n lang lees-time-out. Die voorbeelde gebruik 600 sekondes. 'n Time-out korter as 15 sekondes kan 'n stroom tussen twee keep-alives beëindig.
  • Laat jou SSE-leser kommentaarreëls en ping-gebeure oorslaan. Die SDK's doen dit reeds.
  • Moenie 'n versoek weer stuur sodra 'n verbinding val nie. 'n Versoek wat die API bereik het, loop tot sy einde en word getel, ook wanneer die verbinding weg is.
  • Toets die pad eers met GET /v1/models. Dit het geen sleutel nodig nie en gee 'n kort JSON-lys terug.

Verbindingsprobleme

Simptoom Oorsaak en regstelling
Die verbinding met 127.0.0.1:9050 of 127.0.0.1:4444 word geweier Geen Tor-kliënt of I2P-router loop op jou masjien nie, of dit luister op 'n ander poort. Tor Browser bied sy SOCKS-proxy op poort 9150.
Could not resolve host vir die .onion-naam Die kliënt het probeer om die naam self op te los. Gebruik --socks5-hostname in cURL en socks5h:// in 'n proxy-URL, sodat die Tor-kliënt dit oplos.
Die I2P-proxy antwoord met sy eie foutbladsy Die router het die adres nog nie gevind nie. 'n Router het 'n paar minute nodig nadat dit begin het. Probeer weer.
401 met Missing authentication Die versoek het sonder 'n sleutel aangekom. Stuur dieselfde header as op die oop web.

Elke ander fout is dieselfde as op die oop web. Fouthantering

Jou sleutel sonder JavaScript

Shannon het ook 'n webwerf sonder JavaScript, bereikbaar op die oop web, as 'n onion-diens en as 'n eepsite. Sy /keys-bladsy wys jou API-sleutel en laat jou dit wissel, sodat jy 'n sleutel kan kry sonder om Tor of I2P te verlaat. encrypted.shannon-ai.com/keys

Die adresse van daardie webwerf op al drie netwerke word hier gelys: Geënkripteerde toegang