ಎನ್ಕ್ರಿಪ್ಟ್ ಮಾಡಿದ, Tor ಮತ್ತು I2P ಎಂಡ್ಪಾಯಿಂಟ್ಗಳು
API ಅನ್ನು Tor onion ಸೇವೆಯಾಗಿ ಮತ್ತು I2P eepsite ಆಗಿಯೂ ಪ್ರಕಟಿಸಲಾಗಿದೆ. ಅದೇ ಮಾರ್ಗಗಳು, ಅದೇ ಕೀ; ಬೇಸ್ URL ಮತ್ತು ಪ್ರಾಕ್ಸಿ ಮಾತ್ರ ಬದಲಾಗುತ್ತವೆ.
ಬೇಸ್ 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 ಪ್ರಾಕ್ಸಿ, ಡೀಫಾಲ್ಟ್ ಆಗಿ 127.0.0.1:9050 ನಲ್ಲಿ. |
| I2P (eepsite) | http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1 | I2P ರೂಟರ್ ಮೂಲಕ: HTTP ಪ್ರಾಕ್ಸಿ, ಡೀಫಾಲ್ಟ್ ಆಗಿ 127.0.0.1:4444 ನಲ್ಲಿ. |
- OpenAI SDK ಬೇಸ್ URL ಅನ್ನು ತೋರಿಸಿದಂತೆ,
/v1ಸಹಿತ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. Anthropic SDK ಅದನ್ನು/v1ಇಲ್ಲದೆ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. - ವಿಳಾಸವನ್ನು ಪರಿಶೀಲಿಸಲು,
https://api.shannon-ai.comನ ಉತ್ತರ ಹೆಡರ್ಗಳನ್ನು ಓದಿ:Onion-Locationonion ವಿಳಾಸವನ್ನು ಮತ್ತುX-I2P-LocationI2P ವಿಳಾಸವನ್ನು ಹೊತ್ತಿರುತ್ತದೆ. onion ವಿಳಾಸshannonನಿಂದ ಆರಂಭವಾಗುತ್ತದೆ.
ಯಾವ ಮಾರ್ಗಗಳು ಕೆಲಸ ಮಾಡುತ್ತವೆ
ಪ್ರತಿ /v1 ಮಾರ್ಗ ನಾಲ್ಕೂ ವಿಳಾಸಗಳಲ್ಲಿ ಉತ್ತರಿಸುತ್ತದೆ:
POST /v1/chat/completionsPOST /v1/responsesPOST /v1/messagesPOST /v1/messages/count_tokensPOST /v1/tokenizeGET /v1/models
GET /v1/models ಗೆ ಕೀ ಬೇಕಿಲ್ಲ, ಆದ್ದರಿಂದ ನಿಮ್ಮ ಪ್ರಾಕ್ಸಿ API ಗೆ ತಲುಪುತ್ತದೆಯೇ ಎಂದು ತಿಳಿಯಲು ಇದು ತ್ವರಿತ ಪರೀಕ್ಷೆ.
ಯಾವುದು ಒಂದೇ ಮತ್ತು ಯಾವುದು ಭಿನ್ನ
| ಅಂಶ | ಒಂದೇ? | ವಿವರ |
|---|---|---|
| ಮಾರ್ಗಗಳು, ವಿನಂತಿ ಫೀಲ್ಡ್ಗಳು, ಉತ್ತರಗಳು, ದೋಷಗಳು | ಒಂದೇ | ಪ್ರತಿ ವಿಳಾಸದಲ್ಲೂ ಒಂದೇ. ಯಾವ ಮಾರ್ಗವೂ ಹೋಸ್ಟ್ ಹೆಸರಿನ ಆಧಾರದ ಮೇಲೆ ಬೇರೆ ರೀತಿ ವರ್ತಿಸುವುದಿಲ್ಲ. |
| API ಕೀ | ಒಂದೇ | ಒಂದು ಕೀ ಪ್ರತಿ ವಿಳಾಸದಲ್ಲೂ ಕೆಲಸ ಮಾಡುತ್ತದೆ, Authorization: Bearer ಆಗಿ ಅಥವಾ x-api-key ಆಗಿ. /v1 ನಲ್ಲಿ ಕುಕೀಗಳನ್ನು ಎಂದಿಗೂ ಓದಲಾಗುವುದಿಲ್ಲ. |
| ಬ್ಯಾಲೆನ್ಸ್ ಮತ್ತು ಮಿತಿಗಳು | ಒಂದೇ | ಅದೇ ಬ್ಯಾಲೆನ್ಸ್ ಮತ್ತು ನಿಮಿಷಕ್ಕೆ 120 ವಿನಂತಿಗಳ ಅದೇ ಮಿತಿ. ಎರಡನ್ನೂ ಪ್ರತಿ ಖಾತೆಗೆ ಎಣಿಸಲಾಗುತ್ತದೆ, ಪ್ರತಿ ವಿಳಾಸಕ್ಕೆ ಅಲ್ಲ. |
| ವಿನಂತಿಯ ಗಾತ್ರ | ಒಂದೇ | ಪ್ರತಿ ವಿನಂತಿ ಬಾಡಿಗೆ 32 MiB ವರೆಗೆ. |
| ಸ್ಕೀಮ್ | ಭಿನ್ನ | ಕ್ಲಿಯರ್ ವೆಬ್ ಮತ್ತು ಮಿರರ್ನಲ್ಲಿ https://. .onion ಮತ್ತು .b32.i2p ವಿಳಾಸಗಳಲ್ಲಿ http://, ಅಲ್ಲಿ ನೆಟ್ವರ್ಕ್ ಸ್ವತಃ ಸಂಪರ್ಕವನ್ನು ಕೊನೆಯಿಂದ ಕೊನೆಯವರೆಗೆ ಎನ್ಕ್ರಿಪ್ಟ್ ಮಾಡುತ್ತದೆ. |
| ಪ್ರಾಕ್ಸಿ | ಭಿನ್ನ | ಕ್ಲಿಯರ್ ವೆಬ್ನಲ್ಲಿ ಇಲ್ಲ. Tor ಗೆ SOCKS5 ಪ್ರಾಕ್ಸಿ, I2P ಗೆ HTTP ಪ್ರಾಕ್ಸಿ. ಹೆಸರನ್ನು ನಿಮ್ಮ ಯಂತ್ರವಲ್ಲ, ಪ್ರಾಕ್ಸಿ ಪರಿಹರಿಸಬೇಕು. |
| ವೇಗ | ಭಿನ್ನ | ಎರಡೂ ನೆಟ್ವರ್ಕ್ಗಳು ಪ್ರತಿ ಬೈಟ್ಗೆ ವಿಳಂಬ ಸೇರಿಸುತ್ತವೆ. ಎರಡರಲ್ಲಿ I2P ನಿಧಾನ. |
ಬ್ಯಾಲೆನ್ಸ್ ಮತ್ತು ಮಿತಿಗಳನ್ನು ಅವುಗಳ ಸ್ವಂತ ಪುಟದಲ್ಲಿ ವಿವರಿಸಲಾಗಿದೆ. ಮಿತಿಗಳು ಮತ್ತು ಬ್ಯಾಲೆನ್ಸ್
Tor ಮೂಲಕ cURL
ನಿಮ್ಮ ಯಂತ್ರದಲ್ಲಿ Tor ಕ್ಲೈಂಟ್ ಚಲಾಯಿಸಿ. ಅದು 127.0.0.1:9050 ನಲ್ಲಿ SOCKS5 ಪ್ರಾಕ್ಸಿಯನ್ನು ನೀಡುತ್ತದೆ. --socks5-hostname .onion ಹೆಸರನ್ನು ಆ ಪ್ರಾಕ್ಸಿಗೆ ಹಸ್ತಾಂತರಿಸುತ್ತದೆ.
# 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 ಮೂಲಕ cURL
ನಿಮ್ಮ ಯಂತ್ರದಲ್ಲಿ I2P ರೂಟರ್ ಚಲಾಯಿಸಿ. ಅದು 127.0.0.1:4444 ನಲ್ಲಿ HTTP ಪ್ರಾಕ್ಸಿಯನ್ನು ನೀಡುತ್ತದೆ, ಅದು .b32.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 ಬೇಸ್ URL
SDK ಗೆ ಎರಡು ಬದಲಾವಣೆಗಳು ಬೇಕು: ನೆಟ್ವರ್ಕ್ನ ಬೇಸ್ URL, ಮತ್ತು ಪ್ರಾಕ್ಸಿ ಮೂಲಕ ಹೋಗುವ HTTP ಕ್ಲೈಂಟ್. Python ನಲ್ಲಿ ಎರಡೂ ಅಧಿಕೃತ SDK ಗಳು httpx ಕ್ಲೈಂಟ್ ಅನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತವೆ. SOCKS ಪ್ರಾಕ್ಸಿಗಾಗಿ 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) # pip install openai
import httpx
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="http://acvnvkdea4xaczzjap7chysqqi4kkvp2eorfwkasindzmjpa47da.b32.i2p/v1",
http_client=httpx.Client(proxy="http://127.0.0.1:4444", timeout=600),
)
stream = client.chat.completions.create(
model="shannon-3",
messages=[{"role": "user", "content": "Hello over I2P"}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True) # pip install anthropic "httpx[socks]"
import anthropic
import httpx
client = anthropic.Anthropic(
api_key="YOUR_API_KEY",
base_url="http://shannonmd773o5vxz75byha5rkea7nzr3srotw46uwythq3pjl6y4cad.onion",
http_client=httpx.Client(proxy="socks5h://127.0.0.1:9050", timeout=600),
)
with client.messages.stream(
model="shannon-1.6-lite",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello over Tor"}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True) ನಿಧಾನ ಲಿಂಕ್ಗಳಲ್ಲಿ ಸ್ಟ್ರೀಮಿಂಗ್ ಮತ್ತು keep-alive
ಸ್ಟ್ರೀಮಿಂಗ್ ಎರಡೂ ನೆಟ್ವರ್ಕ್ಗಳಲ್ಲಿ ಕೆಲಸ ಮಾಡುತ್ತದೆ. stream ತೆರೆದಿದ್ದು ಮಾಡೆಲ್ ಇನ್ನೂ ಕಳುಹಿಸಲು ಏನೂ ಇಲ್ಲದಿದ್ದಾಗ, API keep-alive ಕಳುಹಿಸುತ್ತದೆ, ಇದರಿಂದ ಸಂಪರ್ಕ ಪ್ರಾಕ್ಸಿಗೆ ಅಥವಾ ನಿಮ್ಮ ಕ್ಲೈಂಟ್ಗೆ ಸತ್ತಂತೆ ಕಾಣುವುದಿಲ್ಲ.
| ಎಂಡ್ಪಾಯಿಂಟ್ | ತೆರೆದ ಸ್ಟ್ರೀಮ್ನಲ್ಲಿ ಕೀಪ್-ಅಲೈವ್ | ಯಾರಿಗಾಗಿ ಕಳುಹಿಸಲಾಗುತ್ತದೆ |
|---|---|---|
/v1/chat/completions | ಪ್ರತಿ 15 ಸೆಕೆಂಡ್ಗೆ ಕಾಮೆಂಟ್ ಸಾಲು (ಅದು : ನಿಂದ ಆರಂಭವಾಗುತ್ತದೆ). | ಎಲ್ಲಾ ಮಾಡೆಲ್ಗಳು |
/v1/messages | ಪ್ರತಿ 15 ಸೆಕೆಂಡ್ಗೆ event: ping, ಅಥವಾ ಕಾಮೆಂಟ್ ಸಾಲು. | ಎಲ್ಲಾ ಮಾಡೆಲ್ಗಳು |
/v1/responses | ಪ್ರತಿ 15 ಸೆಕೆಂಡ್ಗೆ ಕಾಮೆಂಟ್ ಸಾಲು. | ಹೋಸ್ಟ್ ಮಾಡಿದ ಓಪನ್-ವೇಟ್ ಮಾಡೆಲ್ಗಳು |
"stream": trueಕಳುಹಿಸಿ. stream ಮಾಡಿದ ಉತ್ತರ ಮಾಡೆಲ್ ಬರೆದ ಕೂಡಲೇ ಬರಲು ಆರಂಭಿಸುತ್ತದೆ, ಮತ್ತು keep-alive ವಿನಂತಿಯ ಮೇಲೆ ಇನ್ನೂ ಕೆಲಸ ನಡೆಯುತ್ತಿದೆ ಎಂದು ತೋರಿಸುತ್ತದೆ. stream ಮಾಡದ ಉತ್ತರ ಇಡೀ ಉತ್ತರ ಸಿದ್ಧವಾಗುವವರೆಗೆ ಏನನ್ನೂ ಕಳುಹಿಸುವುದಿಲ್ಲ.- ಕ್ಲೈಂಟ್ಗೆ ಉದ್ದವಾದ read timeout ನೀಡಿ. ಮಾದರಿಗಳು 600 ಸೆಕೆಂಡ್ ಬಳಸುತ್ತವೆ. 15 ಸೆಕೆಂಡ್ಗಿಂತ ಚಿಕ್ಕ timeout ಎರಡು keep-alive ಗಳ ನಡುವೆ stream ಅನ್ನು ಕೊನೆಗೊಳಿಸಬಹುದು.
- ನಿಮ್ಮ SSE ರೀಡರ್ ಕಾಮೆಂಟ್ ಸಾಲುಗಳನ್ನು ಮತ್ತು
pingಈವೆಂಟ್ಗಳನ್ನು ಬಿಡಲಿ. SDK ಗಳು ಇದನ್ನು ಈಗಾಗಲೇ ಮಾಡುತ್ತವೆ. - ಸಂಪರ್ಕ ಕಡಿದ ಕ್ಷಣವೇ ವಿನಂತಿಯನ್ನು ಮತ್ತೆ ಕಳುಹಿಸಬೇಡಿ. API ಗೆ ತಲುಪಿದ ವಿನಂತಿ ತನ್ನ ಅಂತ್ಯದವರೆಗೆ ನಡೆಯುತ್ತದೆ ಮತ್ತು ಸಂಪರ್ಕ ಹೋಗಿದ್ದರೂ ಎಣಿಕೆಯಾಗುತ್ತದೆ.
- ಮೊದಲು
GET /v1/modelsನಿಂದ ಮಾರ್ಗವನ್ನು ಪರೀಕ್ಷಿಸಿ. ಇದಕ್ಕೆ ಕೀ ಬೇಕಿಲ್ಲ ಮತ್ತು ಚಿಕ್ಕ JSON ಪಟ್ಟಿಯನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ.
ಸಂಪರ್ಕ ಸಮಸ್ಯೆಗಳು
| ಲಕ್ಷಣ | ಕಾರಣ ಮತ್ತು ಪರಿಹಾರ |
|---|---|
127.0.0.1:9050 ಅಥವಾ 127.0.0.1:4444 ಗೆ ಸಂಪರ್ಕವನ್ನು ನಿರಾಕರಿಸಲಾಗಿದೆ | ನಿಮ್ಮ ಯಂತ್ರದಲ್ಲಿ ಯಾವುದೇ Tor ಕ್ಲೈಂಟ್ ಅಥವಾ I2P ರೂಟರ್ ಚಲಿಸುತ್ತಿಲ್ಲ, ಅಥವಾ ಅದು ಬೇರೆ ಪೋರ್ಟ್ನಲ್ಲಿ ಕೇಳುತ್ತಿದೆ. Tor Browser ತನ್ನ SOCKS ಪ್ರಾಕ್ಸಿಯನ್ನು ಪೋರ್ಟ್ 9150 ನಲ್ಲಿ ನೀಡುತ್ತದೆ. |
.onion ಹೆಸರಿಗೆ Could not resolve host | ಕ್ಲೈಂಟ್ ಹೆಸರನ್ನು ತಾನೇ ಪರಿಹರಿಸಲು ಪ್ರಯತ್ನಿಸಿತು. Tor ಕ್ಲೈಂಟ್ ಅದನ್ನು ಪರಿಹರಿಸುವಂತೆ cURL ನಲ್ಲಿ --socks5-hostname ಮತ್ತು ಪ್ರಾಕ್ಸಿ URL ನಲ್ಲಿ socks5h:// ಬಳಸಿ. |
| I2P ಪ್ರಾಕ್ಸಿ ತನ್ನದೇ ದೋಷ ಪುಟದೊಂದಿಗೆ ಉತ್ತರಿಸುತ್ತದೆ | ರೂಟರ್ಗೆ ಇನ್ನೂ ವಿಳಾಸ ಸಿಕ್ಕಿಲ್ಲ. ರೂಟರ್ ಆರಂಭವಾದ ನಂತರ ಕೆಲವು ನಿಮಿಷ ಬೇಕು. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ. |
Missing authentication ಜೊತೆ 401 | ವಿನಂತಿ ಕೀ ಇಲ್ಲದೆ ಬಂದಿತು. ಕ್ಲಿಯರ್ ವೆಬ್ನಲ್ಲಿರುವ ಅದೇ ಹೆಡರ್ ಕಳುಹಿಸಿ. |
ಉಳಿದ ಪ್ರತಿ ದೋಷ ಕ್ಲಿಯರ್ ವೆಬ್ನಲ್ಲಿರುವಂತೆಯೇ ಇದೆ. ದೋಷ ನಿರ್ವಹಣೆ
JavaScript ಇಲ್ಲದೆ ನಿಮ್ಮ ಕೀ
Shannon JavaScript ಇಲ್ಲದ ವೆಬ್ಸೈಟ್ ಅನ್ನೂ ಹೊಂದಿದೆ, ಅದನ್ನು ಕ್ಲಿಯರ್ ವೆಬ್ನಲ್ಲಿ, onion ಸೇವೆಯಾಗಿ ಮತ್ತು eepsite ಆಗಿ ತಲುಪಬಹುದು. ಅದರ /keys ಪುಟ ನಿಮ್ಮ API ಕೀಯನ್ನು ತೋರಿಸುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಬದಲಾಯಿಸಲು ಬಿಡುತ್ತದೆ, ಆದ್ದರಿಂದ Tor ಅಥವಾ I2P ಬಿಡದೆ ಕೀ ಪಡೆಯಬಹುದು. encrypted.shannon-ai.com/keys
ಆ ವೆಬ್ಸೈಟ್ನ ಮೂರೂ ನೆಟ್ವರ್ಕ್ಗಳ ವಿಳಾಸಗಳನ್ನು ಇಲ್ಲಿ ಪಟ್ಟಿ ಮಾಡಲಾಗಿದೆ: ಎನ್ಕ್ರಿಪ್ಟ್ ಮಾಡಿದ ಪ್ರವೇಶ