Drop-in Replacement
CompatibleKa mahi me ngā OpenAI me Anthropic SDK. Me huri noa i te base URL.
He ōrite ngā reo katoa. Kōwhiria te reo e hiahia ana koe ki te whakamahi.
He API AI e hototahi ana ki OpenAI me Anthropic, me te function calling, web search, structured outputs hoki.
Ngā mea katoa e hiahiatia ana hei timata me te API hototahi OpenAI me Anthropic a Shannon.
https://api.shannon-ai.com/v1/chat/completions Whakamahia te Chat Completions API me te function calling me te streaming.
https://api.shannon-ai.com/v1/messages Claude Messages format me ngā tools me te anthropic-version header.
Authorization: Bearer <api-key> Rānei X-API-Key me te anthropic-version mō ngā karanga Claude style.
Tuhinga tūmatanui - me whai kī hei karanga Streaming, function calling, structured outputs, web search.
He drop-in replacement mō OpenAI me Anthropic APIs; he tautoko mō tools, structured outputs, me built-in web search.
Ka mahi me ngā OpenAI me Anthropic SDK. Me huri noa i te base URL.
Whakamārama tools, ā, waiho mā Shannon e karanga. E tautoko ana i auto, forced, none.
Web search wā-tūturu me ngā tohutoro puna. Wātea aunoa.
JSON mode me JSON Schema enforcement mō te tango raraunga pono.
Automatic function execution loops. Tae atu ki te 10 iterations ia tono.
Server-sent events mō te real-time token streaming.
Tīmata i roto i ngā hikoinga e toru. Ka whakaata a Shannon i ngā kaihoko OpenAI me Anthropic.
Whakamahia te OpenAI-compatible endpoint.
https://api.shannon-ai.com/v1/chat/completions Whakamahia te Bearer auth i te Authorization header.
Kōwhiria he reo ka whakawhiti i tō kī.
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
}
} Whakamātauria te Shannon API i tō pūtirotiro. Hangaia te tono, whakahaere, ā, mātaki i te whakautu wā-tūturu.
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.
/mi/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.
Me whakamahi i tō Shannon API key mō ngā tono API katoa.
Authorization: Bearer YOUR_API_KEY X-API-Key: YOUR_API_KEY
anthropic-version: 2023-06-01 Ka tuku a Shannon i ngā tauira maha mō ngā whakamahinga rerekē.
shannon-1.6-lite Shannon 1.6 Lite Ngā whakautu tere, pai mō ngā mahi o ia rā
shannon-1.6-pro Shannon 1.6 Pro Mō ngā raruraru uaua: reasoning hōhonu
shannon-2-lite Shannon 2 Lite
shannon-2-pro Shannon 2 Pro
shannon-coder-1 Shannon Coder I arotau mō Claude Code CLI me te call-based quota
Whakamārama ngā tools ka taea e Shannon te karanga hei mahi, hei tiki mōhiohio.
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" Ka whakatau te tauira mēnā ka karanga function (default) "none" Katia te function calling mō tēnei tono {"type": "function", "function": {"name": "..."}} Whakakaha i tētahi function call motuhake {
"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"
}
]
} Whakakaha i a Shannon kia whakahoki JSON tika e hāngai ana ki tō schema.
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"} Whakakaha JSON output tika (kāore he schema motuhake) {"type": "json_schema", "json_schema": {...}} Whakakaha output e hāngai ana ki tō schema tika Whakahohe real-time token streaming mā Server-Sent Events mō ngā UI tere.
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);
} Kei a Shannon te function web_search e wātea aunoa ana.
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 Ka tautoko hoki a Shannon i te 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); Whakamahia tētahi OpenAI, Anthropic SDK — me huri noa i te base URL.
Official OpenAI Python SDK — ka mahi me Shannon
pip install openai Official OpenAI Node.js SDK — ka mahi me Shannon
npm install openai Community Go client mō ngā OpenAI-compatible APIs
go get github.com/sashabaranov/go-openai Community Ruby client mō ngā OpenAI-compatible APIs
gem install ruby-openai Community PHP client mō ngā OpenAI-compatible APIs
composer require openai-php/client Async Rust client mō ngā OpenAI-compatible APIs
cargo add async-openai Official Anthropic Python SDK — ka mahi me Shannon
pip install anthropic Official Anthropic TypeScript SDK — ka mahi me Shannon
npm install @anthropic-ai/sdk Ka whakamahi a Shannon i ngā HTTP status code paerewa, ā, ka whakahoki i ngā karere hapa taipitopito.
{
"error": {
"message": "Invalid API key provided",
"type": "authentication_error",
"code": "invalid_api_key"
}
} Ngā whakahou me ngā whakapainga hou o te Shannon API.
YOUR_API_KEY Kia huna tō API key. Mā te Regenerate ka waihanga i tētahi key hou, ka whakakore i te tawhito.
Ina takiuru, tirohia te whakamahinga token me te rapu i tēnei whārangi.
Call-based quota mō Shannon Coder (shannon-coder-1). Ka reset ia 4 hāora.
Tikina tō API key, ka tīmata ki te hanga me Shannon AI i tēnei rā.
Rapu rongonui: