Drop‑in Replacement
YogwirizanaImagwira ndi OpenAI ndi Anthropic SDKs. Sinthani base URL kokha.
Zilankhulo zonse ndi zofanana. Sankhani chomwe mukufuna kugwiritsa ntchito poyang'ana.
AI API yogwirizana ndi OpenAI ndi Anthropic yokhala ndi kuyitana mafunkseni, kusaka pa web, ndi zotuluka zokonzedwa.
Zonse zomwe mukufuna kuti mutulutse ndi API yogwirizana ndi OpenAI ndi Anthropic ya Shannon.
https://api.shannon-ai.com/v1/chat/completions Gwiritsani ntchito Chat Completions API yokhala ndi function calling ndi streaming.
https://api.shannon-ai.com/v1/messages Claude Messages format yokhala ndi tools ndi anthropic-version header.
Authorization: Bearer <api-key> Kapena X-API-Key ndi anthropic-version pa Claude-style calls.
Zolemba zapagulu - kiyi ikufunika Streaming, function calling, structured outputs, web search.
Drop‑in m'malo mwa OpenAI ndi Anthropic APIs ndi thandizo la zida, zotuluka zokonzedwa, komanso kusaka pa web komangidwa.
Imagwira ndi OpenAI ndi Anthropic SDKs. Sinthani base URL kokha.
Fotokozani tools, Shannon adzawayitana. Imathandiza auto, forced, none modes.
Web search nthawi yeniyeni yokhala ndi citations. Imapezeka yokha.
JSON mode ndi JSON Schema enforcement kuti mutenge data yolondola.
Automatic function execution loops. Mpaka 10 iterations pa pempho.
Server‑Sent Events ya streaming ya token nthawi yeniyeni.
Yambani m'masitepe atatu. Shannon imatsanzira makasitomala a OpenAI ndi Anthropic.
Gwiritsani ntchito OpenAI‑compatible endpoint.
https://api.shannon-ai.com/v1/chat/completions Gwiritsani ntchito Bearer auth mu Authorization header.
Sankhani chilankhulo ndi kuyika kiyi yanu.
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
}
} Yesani Shannon API mwachindunji mu browser yanu. Pangani pempho, yendetsani, ndipo muwone yankho nthawi yeniyeni.
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.
/ny/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.
Pempho lililonse la API limafuna kutsimikiziridwa pogwiritsa ntchito kiyi yanu ya Shannon API.
Authorization: Bearer YOUR_API_KEY X-API-Key: YOUR_API_KEY
anthropic-version: 2023-06-01 Shannon imapereka mitundu ingapo yoikidwa bwino pa ntchito zosiyanasiyana.
shannon-1.6-lite Shannon 1.6 Lite Mayankho othamanga komanso ogwira ntchito pa ntchito za tsiku ndi tsiku
shannon-1.6-pro Shannon 1.6 Pro Reasoning yapamwamba pa zovuta
shannon-2-lite Shannon 2 Lite
shannon-2-pro Shannon 2 Pro
shannon-coder-1 Shannon Coder Yokonzedwa kwa Claude Code CLI yokhala ndi call‑based quota
Tanthauzirani zida zomwe Shannon angathe kuyitana kuti achite zochita kapena atenge zambiri.
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" Model amasankha ngati ayitana function (default) "none" Tsekani function calling pa pempho ili {"type": "function", "function": {"name": "..."}} Kakamizani function inayake {
"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"
}
]
} Kakamizani Shannon kuyankha ndi JSON yolondola yomwe ikugwirizana ndi schema yanu.
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"} Kakamizani valid JSON output (popanda schema inayake) {"type": "json_schema", "json_schema": {...}} Kakamizani output yofanana ndi schema yanu Yatsani token streaming ya nthawi yeniyeni ndi Server‑Sent Events kuti UI ikhale yothamanga.
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 ili ndi web_search yomangidwira yomwe imapezeka yokha.
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 imathandizanso mtundu wa 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); Gwiritsani ntchito OpenAI kapena Anthropic SDK iliyonse — ingosinthani base URL.
Official OpenAI Python SDK - imagwira ndi Shannon
pip install openai Official OpenAI Node.js SDK - imagwira ndi Shannon
npm install openai Community Go client ya OpenAI‑compatible APIs
go get github.com/sashabaranov/go-openai Community Ruby client ya OpenAI‑compatible APIs
gem install ruby-openai Community PHP client ya OpenAI‑compatible APIs
composer require openai-php/client Async Rust client ya OpenAI‑compatible APIs
cargo add async-openai Official Anthropic Python SDK - imagwira ndi Shannon
pip install anthropic Official Anthropic TypeScript SDK - imagwira ndi Shannon
npm install @anthropic-ai/sdk Shannon imagwiritsa ntchito ma HTTP status code okhazikika ndipo imabwezera mauthenga olakwika atsatanetsatane.
{
"error": {
"message": "Invalid API key provided",
"type": "authentication_error",
"code": "invalid_api_key"
}
} Zosintha zaposachedwa ndi kukonza kwa Shannon API.
YOUR_API_KEY Sungani API key yanu mwachinsinsi. Kubwezeretsa kumapanga key yatsopano ndikuchotsa yakale.
Mukalowa, onani kugwiritsa ntchito token ndi search patsamba ili.
Call‑based quota ya Shannon Coder (shannon-coder-1). Imayambiranso pa 4 maola aliwonse.
Pezani kiyi yanu ya API ndipo yambani kumanga ndi Shannon AI lero.
Zosaka zotchuka: