Drop-in Replacement
CompatibleIsebenza nama-OpenAI ne-Anthropic SDKs. Shintsha i-base URL kuphela.
Zonke izilimi ziyalingana. Khetha ofuna ukulusebenzisa.
I-API ye-AI ehambisana ne-OpenAI ne-Anthropic enefunction calling, web search, kanye ne-structured outputs.
Konke okudingayo ukuqala nge-API ye-Shannon ehambisana ne-OpenAI ne-Anthropic.
https://api.shannon-ai.com/v1/chat/completions Sebenzisa i-Chat Completions API nge-function calling kanye ne-streaming.
https://api.shannon-ai.com/v1/messages Ifomethi ye-Claude Messages enamatheki namakhanda e-anthropic-version.
Authorization: Bearer <api-key> Noma i-X-API-Key ne-anthropic-version kuma-calls esizinda se-Claude.
Imibhalo yomphakathi - ukushaya kudinga ukhiye Streaming, function calling, structured outputs, web search.
Drop-in replacement ye-OpenAI ne-Anthropic APIs, enokusekela amathuluzi, structured outputs, kanye ne-built-in web search.
Isebenza nama-OpenAI ne-Anthropic SDKs. Shintsha i-base URL kuphela.
Chaza amathuluzi, vumela uShannon uwabize. Isekela auto, forced, none modes.
Ukusesha kwewebhu ngesikhathi sangempela nezicaphuno zemithombo. Kutholakala ngokuzenzakalelayo.
Imodi ye-JSON ne-JSON Schema enforcement ukuze kukhishwe idatha ethembekile.
Ama-loop okuzenzakalela wokusebenza kwefunction. Kuya ku-10 iterations ngesicelo.
Server-sent events zokusakaza ama-token ngesikhathi sangempela.
Qala ngezinyathelo ezintathu. Shannon ilingisa amaklayenti e-OpenAI ne-Anthropic.
Sebenzisa i-OpenAI-compatible endpoint.
https://api.shannon-ai.com/v1/chat/completions Sebenzisa i-Bearer auth ku-Authorization header.
Khetha ulimi bese ushintsha ukhiye wakho.
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
}
} Hlola i-Shannon API ngqo kusiphequluli. Yakha isicelo sakho, usiqhube, ubone impendulo ngesikhathi sangempela.
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.
/zu/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.
Zonke izicelo ze-API zidinga ukuqinisekiswa usebenzisa i-Shannon API key yakho.
Authorization: Bearer YOUR_API_KEY X-API-Key: YOUR_API_KEY
anthropic-version: 2023-06-01 Shannon inikezela ngamamodeli amaningi enzelwe izimo ezahlukene zokusebenzisa.
shannon-1.6-lite Shannon 1.6 Lite Impendulo esheshayo nenempumelelo emisebenzini yansuku zonke
shannon-1.6-pro Shannon 1.6 Pro Ukucabanga okujulile ezinkingeni eziyinkimbinkimbi
shannon-2-lite Shannon 2 Lite
shannon-2-pro Shannon 2 Pro
shannon-coder-1 Shannon Coder Isetshenziswe ku-Claude Code CLI nge-call-based quota
Chaza amathuluzi uShannon angawabiza ukuze enze izenzo noma athole ulwazi.
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" Imodeli izinquma ukuthi ibize umsebenzi yini (default) "none" Khubaza function calling kulesi sicelo {"type": "function", "function": {"name": "..."}} Phoqelela function call ethile {
"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"
}
]
} Phoqelela uShannon ukuthi aphendule nge-JSON evumelekile ehambisana ne-schema yakho.
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"} Phoqelela i-JSON output evumelekile (ngaphandle kwe-schema ethile) {"type": "json_schema", "json_schema": {...}} Phoqelela output ehambisana ne-schema yakho ngqo Vumela streaming wama-token ngesikhathi sangempela nge-Server-Sent Events ukuze i-UI iphendule ngokushesha.
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 inefunction web_search eyakhelwe ngaphakathi futhi itholakala ngokuzenzakalelayo.
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 iphinde isekele ifomethi ye-Anthropic Messages API.
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); Sebenzisa noma iyiphi i-OpenAI noma i-Anthropic SDK — shintsha i-base URL kuphela.
Official OpenAI Python SDK — isebenza noShannon
pip install openai Official OpenAI Node.js SDK — isebenza noShannon
npm install openai Community Go client ye-OpenAI-compatible APIs
go get github.com/sashabaranov/go-openai Community Ruby client ye-OpenAI-compatible APIs
gem install ruby-openai Community PHP client ye-OpenAI-compatible APIs
composer require openai-php/client Async Rust client ye-OpenAI-compatible APIs
cargo add async-openai Official Anthropic Python SDK — isebenza noShannon
pip install anthropic Official Anthropic TypeScript SDK — isebenza noShannon
npm install @anthropic-ai/sdk Shannon isebenzisa izinkomba ze-HTTP status ezijwayelekile futhi ibuyise imiyalezo yamaphutha eningiliziwe.
{
"error": {
"message": "Invalid API key provided",
"type": "authentication_error",
"code": "invalid_api_key"
}
} Izibuyekezo zakamuva nokuthuthukiswa kwe-Shannon API.
YOUR_API_KEY Gcina i-API key yakho iyimfihlo. Regenerate yakha i-key entsha futhi yenze endala ingasebenzi.
Bona ukusetshenziswa kwama-token nokusesha kuleli khasi uma ungenile.
Call-based quota ye-Shannon Coder (shannon-coder-1). I-reset njalo emahoreni 4.
Thola i-API key yakho bese uqala ukwakha ne-Shannon AI namuhla.
Ukusesha okudumile: