Drop-in Ersatz
KompatibelSchafft mat OpenAI- an Anthropic-SDKs. Ännert just d'Base URL.
All Sprooche sinn gläich. Wielt déi, déi Dir benotze wëllt.
OpenAI- an Anthropic-kompatibel AI-API mat Funktiounsofruff, Websich an strukturéierte Output.
Alles wat Dir braucht, fir mat Shannon senger OpenAI- an Anthropic-kompatibeler API ze starten.
https://api.shannon-ai.com/v1/chat/completions Benotzt d'Chat Completions API mat Funktiounsofruff a Streaming.
https://api.shannon-ai.com/v1/messages Claude Messages Format mat Tools an anthropic-version Header.
Authorization: Bearer <api-key> Oder X-API-Key mat anthropic-version fir Claude-ähnlech Uruffen.
Ëffentlech Docs - Schlëssel néideg fir Uruff Streaming, Funktiounsofruff, strukturéierte Output, Websich.
Drop-in Ersatz fir OpenAI- an Anthropic-APIs mat native Support fir Tools, strukturéierte Output an integréiert Websich.
Schafft mat OpenAI- an Anthropic-SDKs. Ännert just d'Base URL.
Definéiert Tools, loosst Shannon se ruffen. Ënnerstëtzt auto-, forced- an none-Modi.
Websich an Echtzäit mat Quellennennungen. Automatesch disponibel.
JSON-Modus an JSON-Schema-Erzwingung fir zouverlässeg Donnéeausliesen.
Automatesch Funktiouns-Exekutiounsschleifen. Bis zu 10 Iteratiounen pro Ufro.
Server-sent events fir Echtzäit Token-Streaming.
Start an dräi Schrëtt. Shannon spigelt OpenAI- an Anthropic-Clients.
Benotzt den OpenAI-kompatiblen Endpunkt.
https://api.shannon-ai.com/v1/chat/completions Bearer-Auth am Authorization-Header benotzen.
Sprooch auswielen an Äre Schlëssel androen.
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
}
} Test d'Shannon API direkt am Browser. Baut Är Ufro, fuert se aus a kuckt d'Äntwert an Echtzäit.
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.
/lb/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.
All API-Ufroe brauchen Authentifikatioun mat Ärem Shannon API-Schlëssel.
Authorization: Bearer YOUR_API_KEY X-API-Key: YOUR_API_KEY
anthropic-version: 2023-06-01 Shannon bitt verschidde Modeller fir ënnerschiddlech Use-Casen optiméiert.
shannon-1.6-lite Shannon 1.6 Lite Séier, effizient Äntwerten fir Alldagsaufgaben
shannon-1.6-pro Shannon 1.6 Pro Fortgeschratt Reasoning fir komplex Problemer
shannon-2-lite Shannon 2 Lite
shannon-2-pro Shannon 2 Pro
shannon-coder-1 Shannon Coder Optimiséiert fir Claude Code CLI mat call-baséierter Quota
Definéiert Tools déi Shannon uruffe kann fir Aktiounen auszeféieren oder Informatioun ze kréien.
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" Modell entscheet ob eng Funktioun geruff gëtt (Standard) "none" Funktiounsofruff fir dës Ufro deaktivéieren {"type": "function", "function": {"name": "..."}} Eng spezifesch Funktiounsfro erzwingen {
"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"
}
]
} Forcéiert Shannon mat valabelen JSON z'äntweren, dat Är Schema entsprécht.
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"} Valabelen JSON Output forcéieren (kee spezifesche Schema) {"type": "json_schema", "json_schema": {...}} Output forcéieren deen Ärem exakte Schema entsprécht Echtzäit Token-Streaming mat Server-Sent Events fir reaktiounsfäeg UIs.
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 enthält eng built-in web_search Funktioun déi automatesch disponibel ass.
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 ënnerstëtzt och den 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); Benotzt all OpenAI oder Anthropic SDK — ännert just d'Base URL.
Offiziellt OpenAI Python SDK - funktionéiert mat Shannon
pip install openai Offiziellt OpenAI Node.js SDK - funktionéiert mat Shannon
npm install openai Community Go Client fir OpenAI-kompatibel APIs
go get github.com/sashabaranov/go-openai Community Ruby Client fir OpenAI-kompatibel APIs
gem install ruby-openai Community PHP Client fir OpenAI-kompatibel APIs
composer require openai-php/client Async Rust Client fir OpenAI-kompatibel APIs
cargo add async-openai Offiziellt Anthropic Python SDK - funktionéiert mat Shannon
pip install anthropic Offiziellt Anthropic TypeScript SDK - funktionéiert mat Shannon
npm install @anthropic-ai/sdk Shannon benotzt Standard-HTTP-Statuscoden a liwwert detailléiert Feeler-Noriichten.
{
"error": {
"message": "Invalid API key provided",
"type": "authentication_error",
"code": "invalid_api_key"
}
} Rezent Aktualiséierungen an Verbesserungen un der Shannon API.
YOUR_API_KEY Halt Ären API-Schlëssel geheim. Nei Generatioun mécht en neie Schlëssel a mécht den ale ongëlteg.
Gesäit Token- a Sichverbrauch op dëser Säit, wann Dir ageloggt sidd.
Call-baséiert Quota fir Shannon Coder (shannon-coder-1). Reset all 4 Stonnen.
Kritt Ären API-Schlëssel a start haut mam Shannon AI ze bauen.
Populär Sichufroe: