Μετάβαση στο περιεχόμενο
SDKs

SDKs

Κάθε SDK του OpenAI ή της Anthropic λειτουργεί χωρίς καμία ρύθμιση.

Το Shannon μιλά τις μορφές επικοινωνίας της OpenAI και της Anthropic, οπότε χρησιμοποιείτε τα επίσημα SDK και των δύο ως έχουν. Αλλάζετε τρεις τιμές στον client: το base URL, το κλειδί API και το id μοντέλου. Ο υπόλοιπος κώδικάς σας μένει ίδιος.

Τι να ορίσετε

Ρύθμιση SDK της OpenAI SDK της Anthropic
Base URL https://api.shannon-ai.com/v1 https://api.shannon-ai.com
Κλειδί API Το κλειδί Shannon σας. Το SDK το στέλνει ως Authorization: Bearer. Το κλειδί Shannon σας. Το SDK το στέλνει ως x-api-key.
Μοντέλο Ένα δημοσιευμένο id μοντέλου, για παράδειγμα shannon-3. Ένα δημοσιευμένο id μοντέλου, για παράδειγμα shannon-1.6-lite.
Endpoints που φτάνει /v1/chat/completions, /v1/responses, /v1/models /v1/messages, /v1/messages/count_tokens
Μεταβλητές περιβάλλοντος OPENAI_API_KEY και OPENAI_BASE_URL, που διαβάζονται από τα SDK Python και JavaScript όταν δεν περνάτε τιμή. ANTHROPIC_API_KEY και ANTHROPIC_BASE_URL, που διαβάζονται από τα SDK Python και TypeScript όταν δεν περνάτε τιμή.

Τα δύο base URLs διαφέρουν κατά το /v1: ένα SDK της OpenAI προσθέτει /chat/completions στο base URL του, ένα SDK της Anthropic προσθέτει /v1/messages. Ένα όνομα μοντέλου που το Shannon δεν δημοσιεύει απαντάται με 400 και unknown model. Μοντέλα & τιμές

Το κλειδί σας βρίσκεται στη σελίδα Κλειδιά & χρήση. Κλειδιά & χρήση

SDK της OpenAI

Τα επίσημα SDK της OpenAI καλούν τα POST /v1/chat/completions και POST /v1/responses. Κάθε παράδειγμα στέλνει ένα μήνυμα χρήστη και τυπώνει την απάντηση.

# 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)
Γλώσσα Εγκατάσταση Επιλογή base URL Πηγή
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

Κάθε πεδίο των δύο endpoints περιγράφεται στις δικές τους σελίδες. Chat Completions Responses API

SDK της Anthropic

Τα επίσημα SDK της Anthropic καλούν το POST /v1/messages. Απαιτούν max_tokens σε κάθε κλήση, γι' αυτό τα παραδείγματα χρησιμοποιούν το shannon-1.6-lite, που το εφαρμόζει. Κάθε παράδειγμα τυπώνει τα blocks κειμένου της απάντησης.

# 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)
Γλώσσα Εγκατάσταση Επιλογή base URL Πηγή
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

Η μορφή Messages και οι διαφορές της βρίσκονται στη σελίδα συμβατότητας με την Anthropic. Μορφή Anthropic

Σε τι μπορούν να βασιστούν τα SDK

  • Ένα πεδίο αιτήματος που το API δεν χρησιμοποιεί γίνεται δεκτό. Ένα πεδίο που το API γνωρίζει, σταλμένο με λάθος τύπο, απαντάται με 422.
  • Οι κεφαλίδες έκδοσης και beta που προσθέτουν τα SDK (anthropic-version, anthropic-beta, openai-beta) γίνονται δεκτές. Καμία δεν είναι υποχρεωτική.
  • Το model μιας απάντησης είναι το δημοσιευμένο id, οπότε μπορείτε να το στείλετε πίσω ως έχει.
  • Στο /v1/messages μια απάντηση μπορεί να αρχίζει με block thinking. Διαβάστε τα blocks τύπου text αντί να πάρετε το πρώτο block.
  • Το streaming δουλεύει μέσω των δικών βοηθητικών συναρτήσεων stream του SDK. Η χρήση φτάνει στο τέλος κάθε stream.
  • Κάθε απάντηση φέρει κεφαλίδα x-request-id. Στείλτε δικό σας x-request-id και επιστρέφει η ίδια τιμή.

SDK της κοινότητας

Οι clients που έγραψαν άλλοι συγγραφείς για το API της OpenAI δουλεύουν με τον ίδιο τρόπο: δώστε στον client το base URL με /v1, το κλειδί σας και ένα id μοντέλου Shannon. Αυτοί συντηρούνται από τους συγγραφείς τους, όχι από το Shannon.

Γλώσσα Εγκατάσταση Client
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

Χωρίς SDK

Δεν χρειάζεστε SDK. Δουλεύει οποιοσδήποτε HTTP client που μπορεί να στείλει JSON:

  • POST με σώμα JSON και την κεφαλίδα Content-Type: application/json. Χωρίς αυτήν το αίτημα απαντάται με 415.
  • Το κλειδί σας στο Authorization: Bearer <key> ή στο x-api-key: <key>. Και τα δύο δουλεύουν σε κάθε endpoint.
  • Σώμα έως 32 MiB.
  • Με "stream": true η απάντηση είναι ροή server-sent events (text/event-stream). Διαβάστε τη γραμμή γραμμή και μην την αποθηκεύετε σε buffer.
  • Ένα σφάλμα είναι σώμα JSON με error.type και error.message, δίπλα στην κατάσταση HTTP.
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!"}]
  }'

Για τα συμβάντα ενός stream και τους τύπους σφαλμάτων, δείτε: Ροή Χειρισμός σφαλμάτων