Salti al la enhavo
SDK-oj

SDK-oj

Ĉiu SDK de OpenAI aŭ Anthropic funkcias senpere.

Shannon parolas la formatojn de OpenAI kaj de Anthropic, do vi uzas la oficialajn SDK de ambaŭ tiaj, kiaj ili estas. Vi ŝanĝas tri valorojn en la kliento: la bazan URL, la API-ŝlosilon kaj la model-id. La cetero de via kodo restas sama.

Kion agordi

Agordo SDK de OpenAI SDK de Anthropic
Baza URL https://api.shannon-ai.com/v1 https://api.shannon-ai.com
API-ŝlosilo Via Shannon-ŝlosilo. La SDK sendas ĝin kiel Authorization: Bearer. Via Shannon-ŝlosilo. La SDK sendas ĝin kiel x-api-key.
Modelo Publikigita model-id, ekzemple shannon-3. Publikigita model-id, ekzemple shannon-1.6-lite.
Endpoints, kiujn ĝi atingas /v1/chat/completions, /v1/responses, /v1/models /v1/messages, /v1/messages/count_tokens
Mediaj variabloj OPENAI_API_KEY kaj OPENAI_BASE_URL, legataj de la SDK de Python kaj JavaScript kiam vi donas neniun valoron. ANTHROPIC_API_KEY kaj ANTHROPIC_BASE_URL, legataj de la SDK de Python kaj TypeScript kiam vi donas neniun valoron.

La du bazaj URL malsamas per /v1: SDK de OpenAI aldonas /chat/completions al sia baza URL, SDK de Anthropic aldonas /v1/messages. Nomo de modelo, kiun Shannon ne publikigas, ricevas respondon 400 kaj unknown model. Modeloj kaj prezoj

Via ŝlosilo estas en la paĝo Keys & usage. Ŝlosiloj kaj uzado

SDK de OpenAI

La oficialaj SDK de OpenAI vokas POST /v1/chat/completions kaj POST /v1/responses. Ĉiu ekzemplo sendas unu mesaĝon de uzanto kaj presas la respondon.

# pip install openai
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-3",
    messages=[{"role": "user", "content": "Hello, Shannon!"}],
)
print(response.choices[0].message.content)
Lingvo Instalo Opcio de baza URL Fonto
Python pip install openai base_url openai/openai-python
JavaScript / TypeScript npm install openai baseURL openai/openai-node
Go go get github.com/openai/openai-go/v3 option.WithBaseURL openai/openai-go
Java com.openai:openai-java baseUrl openai/openai-java
.NET dotnet add package OpenAI OpenAIClientOptions.Endpoint openai/openai-dotnet

Ĉiu kampo de la du endpoints estas priskribita en iliaj propraj paĝoj. Chat Completions Responses API

SDK de Anthropic

La oficialaj SDK de Anthropic vokas POST /v1/messages. Ili postulas max_tokens ĉe ĉiu voko, do la ekzemploj uzas shannon-1.6-lite, kiu aplikas ĝin. Ĉiu ekzemplo presas la tekstblokojn de la respondo.

# pip install anthropic
import anthropic

client = anthropic.Anthropic(
    api_key="YOUR_API_KEY",
    base_url="https://api.shannon-ai.com",
)

message = client.messages.create(
    model="shannon-1.6-lite",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello, Shannon!"}],
)
for block in message.content:
    if block.type == "text":
        print(block.text)
Lingvo Instalo Opcio de baza URL Fonto
Python pip install anthropic base_url anthropics/anthropic-sdk-python
TypeScript npm install @anthropic-ai/sdk baseURL anthropics/anthropic-sdk-typescript
Go go get github.com/anthropics/anthropic-sdk-go option.WithBaseURL anthropics/anthropic-sdk-go
Java com.anthropic:anthropic-java baseUrl anthropics/anthropic-sdk-java

La formato Messages kaj ĝiaj diferencoj estas en la paĝo pri kongrueco kun Anthropic. Anthropic

Kion la SDK povas fidi

  • Kampo de peto, kiun la API ne uzas, estas akceptata. Kampo, kiun la API konas, sendita kun malĝusta tipo, ricevas respondon 422.
  • La kapoj de versio kaj beta, kiujn la SDK aldonas (anthropic-version, anthropic-beta, openai-beta), estas akceptataj. Neniu el ili estas deviga.
  • La model de respondo estas la publikigita id, do vi povas resendi ĝin tia, kia ĝi estas.
  • Ĉe /v1/messages respondo povas komenciĝi per bloko thinking. Legu la blokojn de tipo text anstataŭ preni la unuan blokon.
  • Streaming funkcias per la propraj helpiloj de fluo de la SDK. Usage alvenas ĉe la fino de ĉiu fluo.
  • Ĉiu respondo portas kapon x-request-id. Sendu vian propran x-request-id kaj la sama valoro revenas.

SDK de la komunumo

Klientoj verkitaj por la API de OpenAI de aliaj aŭtoroj funkcias same: donu al la kliento la bazan URL kun /v1, vian ŝlosilon kaj Shannon-model-id. Ĉi tiuj estas prizorgataj de siaj aŭtoroj, ne de Shannon.

Lingvo Instalo Kliento
Go go get github.com/sashabaranov/go-openai sashabaranov/go-openai
Ruby gem install ruby-openai alexrudall/ruby-openai
PHP composer require openai-php/client openai-php/client
Rust cargo add async-openai 64bit/async-openai

Sen SDK

Vi ne bezonas SDK. Ĉiu HTTP-kliento, kiu povas sendi JSON, funkcias:

  • POST kun JSON-korpo kaj la kapo Content-Type: application/json. Sen ĝi la peto ricevas respondon 415.
  • Via ŝlosilo en Authorization: Bearer <key> aŭ en x-api-key: <key>. Ambaŭ funkcias ĉe ĉiu endpoint.
  • Korpo ĝis 32 MiB.
  • Kun "stream": true la respondo estas fluo de server-sent events (text/event-stream). Legu ĝin linio post linio kaj ne bufru ĝin.
  • Eraro estas JSON-korpo kun error.type kaj error.message, apud la HTTP-stato.
curl https://api.shannon-ai.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "shannon-3",
    "messages": [{"role": "user", "content": "Hello, Shannon!"}]
  }'

Pri la eventoj de fluo kaj la specoj de eraroj, vidu: Fluigo Erarotraktado