Mine sisu juurde
Krüpteeritud, Tor ja I2P lõpp-punktid

Krüpteeritud, Tor ja I2P lõpp-punktid

API on avaldatud ka Tor onion-teenuse ja I2P eepsite'ina. Samad marsruudid, sama võti; muutuvad ainult base URL ja proksi.

Base URL-id

Neli aadressi viivad sama API juurde. Kasuta seda, mis sinu võrku sobib, sama API võtme ja samade päringutega.

Võrk Base URL Kuidas sinna jõuad
Avalik veeb https://api.shannon-ai.com/v1 Otse, HTTPS-i kaudu.
Krüpteeritud peegel https://api-encrypted.shannon-ai.com/v1 Otse, HTTPS-i kaudu. Sama API teine hostinimi.
Tor (onion-teenus) http://shannonmd773o5vxz75byha5rkea7nzr3srotw46uwythq3pjl6y4cad.onion/v1 Tor-kliendi kaudu: SOCKS5-proksi, vaikimisi aadressil 127.0.0.1:9050.
I2P (eepsite) http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1 I2P ruuteri kaudu: HTTP-proksi, vaikimisi aadressil 127.0.0.1:4444.
  • OpenAI SDK võtab base URL-i nii, nagu näidatud, koos /v1. Anthropic SDK võtab selle ilma /v1.
  • Aadressi kontrollimiseks loe aadressi https://api.shannon-ai.com vastuse päiseid: Onion-Location kannab onion-aadressi ja X-I2P-Location I2P aadressi. Onion-aadress algab sõnaga shannon.

Millised marsruudid töötavad

Iga /v1 marsruut vastab kõigil neljal aadressil:

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

GET /v1/models ei vaja võtit, mistõttu on see kiire test, kas sinu proksi jõuab API-ni.

Mis on sama ja mis erineb

Punkt Sama? Üksikasjad
Marsruudid, päringuväljad, vastused, vead Sama Igal aadressil samad. Ükski marsruut ei käitu hostinime järgi erinevalt.
API võti Sama Üks võti töötab igal aadressil, kujul Authorization: Bearer või x-api-key. Küpsiseid ei loeta /v1 all kunagi.
Saldo ja piirangud Sama Sama saldo ja sama piirang 120 päringut minutis. Mõlemat loetakse konto, mitte aadressi kohta.
Päringu suurus Sama Kuni 32 MiB päringu keha kohta.
Skeem Erineb https:// avalikus veebis ja peegli puhul. http:// aadressidel .onion ja .b32.i2p, kus võrk ise krüpteerib ühenduse otsast otsani.
Proksi Erineb Avalikus veebis puudub. Tori jaoks SOCKS5-proksi, I2P jaoks HTTP-proksi. Nime peab lahendama proksi, mitte sinu masin.
Kiirus Erineb Mõlemad võrgud lisavad igale baidile viivituse. I2P on neist aeglasem.

Saldot ja piiranguid kirjeldab eraldi leht. Piirangud ja saldo

cURL Tori kaudu

Käivita oma masinas Tor-klient. See pakub SOCKS5-proksit aadressil 127.0.0.1:9050. --socks5-hostname annab .onion nime sellele proksile.

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 kaudu

Käivita oma masinas I2P ruuter. See pakub HTTP-proksit aadressil 127.0.0.1:4444, mis võtab .b32.i2p nime sellisena, nagu ta on.

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

SDK vajab kahte muudatust: võrgu base URL-i ja HTTP-klienti, mis läheb läbi proksi. Pythonis võtavad mõlemad ametlikud SDK-d httpx kliendi. SOCKS-proksi jaoks paigalda 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)

Voogedastus töötab mõlemas võrgus. Kui voog on avatud ja mudelil pole veel midagi saata, saadab API keep-alive'i, et ühendus ei paistaks proksile ega sinu kliendile surnud.

Lõpp-punkt Keep-alive avatud voos Saadetakse mudelitele
/v1/chat/completions Kommentaarirea (algab :) iga 15 sekundi järel. Kõik mudelid
/v1/messages event: ping või kommentaarirea iga 15 sekundi järel. Kõik mudelid
/v1/responses Kommentaarirea iga 15 sekundi järel. Hostitud avatud kaaludega mudelid
  • Saada "stream": true. Voogedastatud vastus hakkab saabuma niipea, kui mudel kirjutab, ja keep-alive näitab, et päringut töödeldakse. Mitte-voogedastatud vastus ei saada midagi enne, kui kogu vastus on valmis.
  • Anna kliendile pikk lugemise timeout. Näited kasutavad 600 sekundit. Alla 15 sekundi timeout võib voo kahe keep-alive'i vahel katkestada.
  • Lase oma SSE-lugejal kommentaarread ja ping sündmused vahele jätta. SDK-d teevad seda juba.
  • Ära saada päringut uuesti kohe, kui ühendus katkeb. API-ni jõudnud päring käib lõpuni ja arvestatakse, ka siis, kui ühendus on kadunud.
  • Proovi teed kõigepealt käsuga GET /v1/models. See ei vaja võtit ja tagastab lühikese JSON-loendi.

Ühenduse probleemid

Sümptom Põhjus ja lahendus
Ühendus aadressiga 127.0.0.1:9050 või 127.0.0.1:4444 lükatakse tagasi Sinu masinas ei tööta Tor-klienti ega I2P ruuterit või see kuulab teist porti. Tor Browser pakub oma SOCKS-proksit pordil 9150.
Could not resolve host .onion nime puhul Klient proovis nime ise lahendada. Kasuta cURL-is --socks5-hostname ja proksi URL-is socks5h://, et Tor-klient selle lahendaks.
I2P proksi vastab oma vealehega Ruuter pole aadressi veel leidnud. Ruuter vajab pärast käivitamist mõned minutid. Proovi uuesti.
401 teatega Missing authentication Päring saabus ilma võtmeta. Saada sama päis, mis avalikus veebis.

Kõik muud vead on samad mis avalikus veebis. Vigade käsitlus

Sinu võti ilma JavaScriptita

Shannonil on ka veebisait ilma JavaScriptita, mis on kättesaadav avalikus veebis, onion-teenusena ja eepsite'ina. Selle leht /keys näitab sinu API võtit ja laseb seda vahetada, nii et võtme saad kätte ka Torist või I2P-st lahkumata. encrypted.shannon-ai.com/keys

Selle veebisaidi aadressid kõigis kolmes võrgus on loetletud siin: Krüpteeritud ligipääs