ຂ້າມໄປຫາເນື້ອຫາ
Endpoint ແບບເຂົ້າລະຫັດ, Tor ແລະ I2P

Endpoint ແບບເຂົ້າລະຫັດ, Tor ແລະ I2P

API ຍັງຖືກເຜີຍແຜ່ເປັນ Tor onion service ແລະ I2P eepsite. route ດຽວກັນ, key ດຽວກັນ; ມີແຕ່ base URL ແລະ proxy ທີ່ປ່ຽນ.

Base URL

ສີ່ທີ່ຢູ່ນຳໄປສູ່ API ດຽວກັນ. ໃຊ້ອັນທີ່ເໝາະກັບເຄືອຂ່າຍຂອງທ່ານ, ດ້ວຍ API key ດຽວກັນ ແລະ ຄຳຮ້ອງຂໍດຽວກັນ.

ເຄືອຂ່າຍ Base URL ວິທີເຂົ້າເຖິງ
ເວັບທົ່ວໄປ https://api.shannon-ai.com/v1 ໂດຍກົງ, ຜ່ານ HTTPS.
Mirror ແບບເຂົ້າລະຫັດ https://api-encrypted.shannon-ai.com/v1 ໂດຍກົງ, ຜ່ານ HTTPS. ຊື່ host ທີສອງສຳລັບ API ດຽວກັນ.
Tor (onion service) http://shannonmd773o5vxz75byha5rkea7nzr3srotw46uwythq3pjl6y4cad.onion/v1 ຜ່ານ client ຂອງ 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 ຮັບ base URL ຕາມທີ່ສະແດງ, ພ້ອມ /v1. SDK ຂອງ Anthropic ຮັບມັນໂດຍບໍ່ມີ /v1.
  • ເພື່ອກວດທີ່ຢູ່, ໃຫ້ອ່ານ header ຄຳຕອບຂອງ https://api.shannon-ai.com: Onion-Location ມີທີ່ຢູ່ onion ແລະ X-I2P-Location ມີທີ່ຢູ່ I2P. ທີ່ຢູ່ onion ເລີ່ມດ້ວຍ shannon.

route ໃດໃຊ້ໄດ້

ທຸກ route /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 ບໍ່ຕ້ອງໃຊ້ key, ເຊິ່ງເຮັດໃຫ້ມັນເປັນການທົດສອບດ່ວນວ່າ proxy ຂອງທ່ານເຂົ້າເຖິງ API.

ສິ່ງທີ່ຄືກັນ ແລະ ສິ່ງທີ່ຕ່າງກັນ

ລາຍການ ຄືກັນບໍ? ລາຍລະອຽດ
Route, ຟີລດ໌ຄຳຮ້ອງຂໍ, ຄຳຕອບ, ຂໍ້ຜິດພາດ ຄືກັນ ຄືກັນໃນທຸກທີ່ຢູ່. ບໍ່ມີ route ທີ່ປະພຶດຕ່າງກັນຕາມຊື່ host.
API key ຄືກັນ key ໜຶ່ງອັນໃຊ້ໄດ້ໃນທຸກທີ່ຢູ່, ເປັນ Authorization: Bearer ຫຼື x-api-key. Cookie ບໍ່ເຄີຍຖືກອ່ານໃນ /v1.
ຍອດເງິນ ແລະ ຂີດຈຳກັດ ຄືກັນ ຍອດເງິນດຽວກັນ ແລະ ຂີດຈຳກັດ 120 ຄຳຮ້ອງຂໍຕໍ່ນາທີດຽວກັນ. ທັງສອງນັບຕໍ່ບັນຊີ, ບໍ່ແມ່ນຕໍ່ທີ່ຢູ່.
ຂະໜາດຄຳຮ້ອງຂໍ ຄືກັນ ສູງສຸດ 32 MiB ຕໍ່ body ຂອງຄຳຮ້ອງຂໍ.
Scheme ແຕກຕ່າງ https:// ໃນເວັບທົ່ວໄປ ແລະ ໃນ mirror. http:// ໃນທີ່ຢູ່ .onion ແລະ .b32.i2p, ບ່ອນທີ່ເຄືອຂ່າຍເອງເຂົ້າລະຫັດການເຊື່ອມຕໍ່ຈາກຕົ້ນທາງຮອດປາຍທາງ.
Proxy ແຕກຕ່າງ ບໍ່ມີໃນເວັບທົ່ວໄປ. SOCKS5 proxy ສຳລັບ Tor, HTTP proxy ສຳລັບ I2P. ຊື່ຕ້ອງຖືກແກ້ໂດຍ proxy, ບໍ່ແມ່ນໂດຍເຄື່ອງຂອງທ່ານ.
ຄວາມໄວ ແຕກຕ່າງ ທັງສອງເຄືອຂ່າຍເພີ່ມຄວາມຫຼ້າຊ້າໃຫ້ທຸກ byte. I2P ຊ້າກວ່າໃນສອງຢ່າງ.

ຍອດເງິນ ແລະ ຂີດຈຳກັດຖືກອະທິບາຍໃນໜ້າຂອງຕົນເອງ. ຂີດຈຳກັດ ແລະ ຍອດເງິນ

cURL ຜ່ານ Tor

ຮັນ client ຂອງ 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"}]
  }'

Base URL ຂອງ SDK

SDK ຕ້ອງການສອງການປ່ຽນແປງ: base URL ຂອງເຄືອຂ່າຍ, ແລະ HTTP client ທີ່ຜ່ານ proxy. ໃນ Python SDK ທາງການທັງສອງຮັບ client 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 ໃຊ້ໄດ້ໃນທັງສອງເຄືອຂ່າຍ. ໃນຂະນະທີ່ stream ເປີດຢູ່ແລະ model ຍັງບໍ່ມີຫຍັງຈະສົ່ງ, API ສົ່ງ keep-alive, ເພື່ອໃຫ້ການເຊື່ອມຕໍ່ບໍ່ເບິ່ງຄືຕາຍສຳລັບ proxy ຫຼື client ຂອງທ່ານ.

Endpoint Keep-alive ໃນ stream ທີ່ເປີດຢູ່ ສົ່ງສຳລັບ
/v1/chat/completions ແຖວ comment (ເລີ່ມດ້ວຍ :) ທຸກ 15 ວິນາທີ. ທຸກ model
/v1/messages event: ping, ຫຼື ແຖວ comment, ທຸກ 15 ວິນາທີ. ທຸກ model
/v1/responses ແຖວ comment ທຸກ 15 ວິນາທີ. Hosted open-weight models
  • ສົ່ງ "stream": true. ຄຳຕອບແບບ stream ເລີ່ມມາທັນທີທີ່ model ຂຽນ, ແລະ keep-alive ສະແດງວ່າຄຳຮ້ອງຂໍຍັງຖືກປະມວນຜົນຢູ່. ຄຳຕອບທີ່ບໍ່ stream ບໍ່ສົ່ງຫຍັງຈົນກວ່າຄຳຕອບທັງໝົດພ້ອມ.
  • ໃຫ້ client ມີ read timeout ທີ່ຍາວ. ຕົວຢ່າງໃຊ້ 600 ວິນາທີ. timeout ທີ່ສັ້ນກວ່າ 15 ວິນາທີອາດຕັດ stream ລະຫວ່າງສອງ keep-alive.
  • ໃຫ້ຕົວອ່ານ SSE ຂອງທ່ານຂ້າມແຖວ comment ແລະ event ping. SDK ເຮັດສິ່ງນີ້ຢູ່ແລ້ວ.
  • ຢ່າສົ່ງຄຳຮ້ອງຂໍອີກທັນທີທີ່ການເຊື່ອມຕໍ່ຂາດ. ຄຳຮ້ອງຂໍທີ່ຮອດ API ແລ້ວຈະເຮັດວຽກຈົນຈົບ ແລະ ຖືກນັບ, ເຖິງແມ່ນການເຊື່ອມຕໍ່ຈະຫາຍໄປແລ້ວກໍຕາມ.
  • ທົດສອບເສັ້ນທາງດ້ວຍ GET /v1/models ກ່ອນ. ມັນບໍ່ຕ້ອງໃຊ້ key ແລະ ສົ່ງລາຍຊື່ JSON ສັ້ນໆກັບຄືນ.

ບັນຫາການເຊື່ອມຕໍ່

ອາການ ສາເຫດ ແລະ ວິທີແກ້
ການເຊື່ອມຕໍ່ໄປ 127.0.0.1:9050 ຫຼື 127.0.0.1:4444 ຖືກປະຕິເສດ ບໍ່ມີ client ຂອງ Tor ຫຼື I2P router ຮັນຢູ່ໃນເຄື່ອງຂອງທ່ານ, ຫຼື ມັນຮັບຟັງຢູ່ port ອື່ນ. Tor Browser ສະເໜີ SOCKS proxy ຂອງມັນທີ່ port 9150.
Could not resolve host ສຳລັບຊື່ .onion client ພະຍາຍາມແກ້ຊື່ເອງ. ໃຊ້ --socks5-hostname ໃນ cURL ແລະ socks5h:// ໃນ URL ຂອງ proxy, ເພື່ອໃຫ້ client ຂອງ Tor ແກ້ຊື່.
I2P proxy ຕອບດ້ວຍໜ້າຂໍ້ຜິດພາດຂອງມັນເອງ router ຍັງບໍ່ພົບທີ່ຢູ່. router ຕ້ອງການສອງສາມນາທີຫຼັງເລີ່ມ. ລອງໃໝ່.
401 ພ້ອມ Missing authentication ຄຳຮ້ອງຂໍມາຮອດໂດຍບໍ່ມີ key. ສົ່ງ header ດຽວກັນກັບໃນເວັບທົ່ວໄປ.

ຂໍ້ຜິດພາດອື່ນທັງໝົດຄືກັນກັບໃນເວັບທົ່ວໄປ. ການຈັດການຂໍ້ຜິດພາດ

key ຂອງທ່ານໂດຍບໍ່ມີ JavaScript

Shannon ຍັງມີເວັບໄຊທ໌ທີ່ບໍ່ມີ JavaScript, ເຂົ້າເຖິງໄດ້ໃນເວັບທົ່ວໄປ, ເປັນ onion service ແລະ ເປັນ eepsite. ໜ້າ /keys ຂອງມັນສະແດງ API key ຂອງທ່ານ ແລະ ໃຫ້ທ່ານປ່ຽນ key ໄດ້, ດັ່ງນັ້ນທ່ານຈຶ່ງຮັບ key ໄດ້ໂດຍບໍ່ຕ້ອງອອກຈາກ Tor ຫຼື I2P. encrypted.shannon-ai.com/keys

ທີ່ຢູ່ຂອງເວັບໄຊທ໌ນັ້ນໃນທັງສາມເຄືອຂ່າຍຖືກລາຍຊື່ຢູ່ນີ້: ການເຂົ້າເຖິງແບບເຂົ້າລະຫັດ