Drop‑in Replacement
InoenderanaInoshanda neOpenAI neAnthropic SDKs. Chinja base URL chete.
Mitauro yese yakafanana. Sarudza yaunoda kushandisa.
AI API inoenderana neOpenAI neAnthropic ine kudanwa kwemabasa, kutsvaga pawebhu, uye zvinobuda zvakarongeka.
Zvose zvaunoda kuti utumire neAPI inoenderana neOpenAI neAnthropic ya Shannon.
https://api.shannon-ai.com/v1/chat/completions Shandisa Chat Completions API ine kufona mabasa uye streaming.
https://api.shannon-ai.com/v1/messages Claude Messages fomati ine maturusi uye anthropic-version header.
Authorization: Bearer <api-key> Kana X-API-Key ine anthropic-version kune Claude-style calls.
Magwaro eruzhinji - kiyi inodiwa pakufona Streaming, kufona mabasa, structured outputs, kutsvaga web.
Drop‑in kutsiva maAPI eOpenAI neAnthropic ane rutsigiro rwezvishandiso, zvinobuda zvakarongeka, uye kutsvaga pawebhu kwakavakirwa mukati.
Inoshanda neOpenAI neAnthropic SDKs. Chinja base URL chete.
Tsanangura tools, Shannon anodzidaidza. Inotsigira auto, forced, uye none modes.
Kutsvaga web munguva chaiyo nemareferenzi. Inowanikwa otomatiki.
JSON mode uye JSON Schema enforcement yekuburitsa data rakavimbika.
Automatic function execution loops. Kusvika 10 iterations pachikumbiro.
Server‑Sent Events yeku streaming token munguva chaiyo.
Tanga mumatanho matatu. Shannon inotevedzera vatengi veOpenAI neAnthropic.
Shandisa OpenAI‑compatible endpoint.
https://api.shannon-ai.com/v1/chat/completions Shandisa Bearer auth muAuthorization header.
Sarudza mutauro uye chinja kiyi yako.
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.shannon-ai.com/v1"
)
response = client.chat.completions.create(
model="shannon-1.6-lite",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello, Shannon!"}
],
max_tokens=1024
)
print(response.choices[0].message.content) import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'YOUR_API_KEY',
baseURL: 'https://api.shannon-ai.com/v1'
});
const response = await client.chat.completions.create({
model: 'shannon-1.6-lite',
messages: [
{ role: 'system', content: 'You are a helpful assistant.' },
{ role: 'user', content: 'Hello, Shannon!' }
],
max_tokens: 1024
});
console.log(response.choices[0].message.content); package main
import (
"context"
"fmt"
openai "github.com/sashabaranov/go-openai"
)
func main() {
config := openai.DefaultConfig("YOUR_API_KEY")
config.BaseURL = "https://api.shannon-ai.com/v1"
client := openai.NewClientWithConfig(config)
resp, err := client.CreateChatCompletion(
context.Background(),
openai.ChatCompletionRequest{
Model: "shannon-1.6-lite",
Messages: []openai.ChatCompletionMessage{
{Role: "system", Content: "You are a helpful assistant."},
{Role: "user", Content: "Hello, Shannon!"},
},
MaxTokens: 1024,
},
)
if err != nil {
panic(err)
}
fmt.Println(resp.Choices[0].Message.Content)
} curl -X POST "https://api.shannon-ai.com/v1/chat/completions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "shannon-1.6-lite",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello, Shannon!"}
],
"max_tokens": 1024
}' {
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1234567890,
"model": "Shannon 1.6 Lite",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! I'm Shannon, your AI assistant. How can I help you today?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 25,
"completion_tokens": 18,
"total_tokens": 43
}
} Edza Shannon API zvakananga mubrowser yako. Gadzira chikumbiro, mhanyisa uye uone mhinduro munguva chaiyo.
Switch across OpenAI Chat Completions, Responses, and Anthropic Messages without leaving the playground.
Run real requests, inspect raw JSON, and view stream events from the same operator console.
Signed-in users can pull their Shannon API key straight into the dedicated playground workspace.
/sn/docs/playground The playground now lives on its own route so the API docs stay Astro-rendered while the request builder remains an explicitly interactive client tool.
Zvikumbiro zvese zveAPI zvinoda kusimbiswa uchishandisa Shannon API kiyi yako.
Authorization: Bearer YOUR_API_KEY X-API-Key: YOUR_API_KEY
anthropic-version: 2023-06-01 Shannon inopa mamodheru akati wandei akagadzirirwa kushandiswa kwakasiyana.
shannon-1.6-lite Shannon 1.6 Lite Mhinduro dzinokurumidza uye dzinoshanda pamabasa emazuva ese
shannon-1.6-pro Shannon 1.6 Pro Reasoning yepamusoro yezvinetso zvakaoma
shannon-2-lite Shannon 2 Lite
shannon-2-pro Shannon 2 Pro
shannon-coder-1 Shannon Coder Yakagadzirirwa Claude Code CLI ine call‑based quota
Tsanangura zvishandiso zvinogona kudanwa naShannon kuita zviito kana kuwana ruzivo.
from openai import OpenAI
import json
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.shannon-ai.com/v1"
)
# Define available tools/functions
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get current weather for a location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "City name, e.g., 'Tokyo'"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
}
]
response = client.chat.completions.create(
model="shannon-1.6-lite",
messages=[{"role": "user", "content": "What's the weather in Tokyo?"}],
tools=tools,
tool_choice="auto"
)
# Check if model wants to call a function
if response.choices[0].message.tool_calls:
tool_call = response.choices[0].message.tool_calls[0]
print(f"Function: {tool_call.function.name}")
print(f"Arguments: {tool_call.function.arguments}") import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'YOUR_API_KEY',
baseURL: 'https://api.shannon-ai.com/v1'
});
const tools = [
{
type: 'function',
function: {
name: 'get_weather',
description: 'Get current weather for a location',
parameters: {
type: 'object',
properties: {
location: { type: 'string', description: "City name" },
unit: { type: 'string', enum: ['celsius', 'fahrenheit'] }
},
required: ['location']
}
}
}
];
const response = await client.chat.completions.create({
model: 'shannon-1.6-lite',
messages: [{ role: 'user', content: "What's the weather in Tokyo?" }],
tools,
tool_choice: 'auto'
});
if (response.choices[0].message.tool_calls) {
const toolCall = response.choices[0].message.tool_calls[0];
console.log('Function:', toolCall.function.name);
console.log('Arguments:', toolCall.function.arguments);
} "auto" Modhi inosarudza kana kuita function call (default) "none" Dzima function calling pachikumbiro ichi {"type": "function", "function": {"name": "..."}} Manikidza specific function call {
"id": "chatcmpl-xyz",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": null,
"tool_calls": [
{
"id": "call_abc123",
"type": "function",
"function": {
"name": "get_weather",
"arguments": "{\"location\": \"Tokyo\", \"unit\": \"celsius\"}"
}
}
]
},
"finish_reason": "tool_calls"
}
]
} Sundidzira Shannon kupindura neJSON inoshanda inoenderana ne schema yako.
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.shannon-ai.com/v1"
)
# Force JSON output with schema
response = client.chat.completions.create(
model="shannon-1.6-lite",
messages=[
{"role": "user", "content": "Extract: John Doe, 30 years old, engineer"}
],
response_format={
"type": "json_schema",
"json_schema": {
"name": "person_info",
"schema": {
"type": "object",
"properties": {
"name": {"type": "string"},
"age": {"type": "integer"},
"occupation": {"type": "string"}
},
"required": ["name", "age", "occupation"]
}
}
}
)
import json
data = json.loads(response.choices[0].message.content)
print(data) # {"name": "John Doe", "age": 30, "occupation": "engineer"} import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'YOUR_API_KEY',
baseURL: 'https://api.shannon-ai.com/v1'
});
const response = await client.chat.completions.create({
model: 'shannon-1.6-lite',
messages: [
{ role: 'user', content: 'Extract: John Doe, 30 years old, engineer' }
],
response_format: {
type: 'json_schema',
json_schema: {
name: 'person_info',
schema: {
type: 'object',
properties: {
name: { type: 'string' },
age: { type: 'integer' },
occupation: { type: 'string' }
},
required: ['name', 'age', 'occupation']
}
}
}
});
const data = JSON.parse(response.choices[0].message.content);
console.log(data); // { name: "John Doe", age: 30, occupation: "engineer" } {"type": "json_object"} Manikidza valid JSON output (pasina schema yakatarwa) {"type": "json_schema", "json_schema": {...}} Manikidza output inoenderana neschema yako Batidza token streaming munguva chaiyo neServer‑Sent Events kuti UI ipindure nekukurumidza.
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.shannon-ai.com/v1"
)
# Enable streaming for real-time responses
stream = client.chat.completions.create(
model="shannon-1.6-lite",
messages=[
{"role": "user", "content": "Write a short poem about AI"}
],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True) import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'YOUR_API_KEY',
baseURL: 'https://api.shannon-ai.com/v1'
});
// Enable streaming for real-time responses
const stream = await client.chat.completions.create({
model: 'shannon-1.6-lite',
messages: [
{ role: 'user', content: 'Write a short poem about AI' }
],
stream: true
});
for await (const chunk of stream) {
const content = chunk.choices[0]?.delta?.content;
if (content) process.stdout.write(content);
} Shannon ine built‑in web_search inowanikwa otomatiki.
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.shannon-ai.com/v1"
)
# Web search is automatically available!
# Shannon will use it when needed for current information
response = client.chat.completions.create(
model="shannon-1.6-lite",
messages=[
{"role": "user", "content": "What are the latest AI news today?"}
],
# Optionally, explicitly define web_search tool
tools=[{
"type": "function",
"function": {
"name": "web_search",
"description": "Search the web for current information",
"parameters": {
"type": "object",
"properties": {
"query": {"type": "string", "description": "Search query"}
},
"required": ["query"]
}
}
}]
)
print(response.choices[0].message.content)
# Response includes sources and citations import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'YOUR_API_KEY',
baseURL: 'https://api.shannon-ai.com/v1'
});
// Web search is automatically available!
// Shannon will use it when needed for current information
const response = await client.chat.completions.create({
model: 'shannon-1.6-lite',
messages: [
{ role: 'user', content: 'What are the latest AI news today?' }
],
// Optionally, explicitly define web_search tool
tools: [{
type: 'function',
function: {
name: 'web_search',
description: 'Search the web for current information',
parameters: {
type: 'object',
properties: {
query: { type: 'string', description: 'Search query' }
},
required: ['query']
}
}
}]
});
console.log(response.choices[0].message.content);
// Response includes sources and citations Shannon inotsigirawo Anthropic Messages API format.
https://api.shannon-ai.com/v1/messages import anthropic
client = anthropic.Anthropic(
api_key="YOUR_API_KEY",
base_url="https://api.shannon-ai.com/messages"
)
response = client.messages.create(
model="shannon-1.6-lite",
max_tokens=1024,
messages=[
{"role": "user", "content": "Hello, Shannon!"}
],
# Tool use (Anthropic format)
tools=[{
"name": "web_search",
"description": "Search the web",
"input_schema": {
"type": "object",
"properties": {
"query": {"type": "string"}
},
"required": ["query"]
}
}]
)
print(response.content[0].text) import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic({
apiKey: 'YOUR_API_KEY',
baseURL: 'https://api.shannon-ai.com/messages'
});
const response = await client.messages.create({
model: 'shannon-1.6-lite',
max_tokens: 1024,
messages: [
{ role: 'user', content: 'Hello, Shannon!' }
],
// Tool use (Anthropic format)
tools: [{
name: 'web_search',
description: 'Search the web',
input_schema: {
type: 'object',
properties: {
query: { type: 'string' }
},
required: ['query']
}
}]
});
console.log(response.content[0].text); Shandisa chero OpenAI kana Anthropic SDK — shandura base URL chete.
Official OpenAI Python SDK - inoshanda neShannon
pip install openai Official OpenAI Node.js SDK - inoshanda neShannon
npm install openai Community Go client yeOpenAI‑compatible APIs
go get github.com/sashabaranov/go-openai Community Ruby client yeOpenAI‑compatible APIs
gem install ruby-openai Community PHP client yeOpenAI‑compatible APIs
composer require openai-php/client Async Rust client yeOpenAI‑compatible APIs
cargo add async-openai Official Anthropic Python SDK - inoshanda neShannon
pip install anthropic Official Anthropic TypeScript SDK - inoshanda neShannon
npm install @anthropic-ai/sdk Shannon inoshandisa standard HTTP status codes uye inodzosa mashoko eruzivo rwemhosho.
{
"error": {
"message": "Invalid API key provided",
"type": "authentication_error",
"code": "invalid_api_key"
}
} Zvigadziriso zvichangoburwa uye kuvandudzwa kuShannon API.
YOUR_API_KEY Chengeta API key yako yakavanzika. Kugadzira patsva kunogadzira kiyi nyowani uye kunodzima yekare.
Paunenge wapinda, ona kushandiswa kwetoken uye kutsvaga papeji iri.
Call‑based quota yeShannon Coder (shannon-coder-1). Inodzokororwa mushure me 4 maawa.
Tora API kiyi yako wotanga kuvaka neShannon AI nhasi.
Kutsvaga kunofarirwa: