Μετάβαση στο περιεχόμενο
Εργαλεία CLI για προγραμματισμό

Εργαλεία CLI για προγραμματισμό

Νέο

Χρησιμοποιήστε το Shannon ως το μοντέλο πίσω από το Claude Code, το Codex CLI και άλλα CLI agents.

Ένα εργαλείο προγραμματισμού χρειάζεται τρεις ρυθμίσεις για να δουλέψει με το Shannon: το base URL του API, το κλειδί API σας και ένα id μοντέλου Shannon. Αυτή η σελίδα δίνει τις ακριβείς ρυθμίσεις για το Claude Code και το Codex CLI, εξηγεί πώς μετριέται το μοντέλο προγραμματισμού shannon-coder-1 και απαριθμεί τα σφάλματα που συναντούν αυτά τα εργαλεία.

Ποιο endpoint χρησιμοποιεί κάθε εργαλείο

Εργαλείο Endpoint Base URL προς ορισμό Σημείωση
Claude Code POST /v1/messages
POST /v1/messages/count_tokens
https://api.shannon-ai.com Το εργαλείο προσθέτει μόνο του το /v1/messages στο base URL.
Codex CLI POST /v1/responses https://api.shannon-ai.com/v1 Το εργαλείο προσθέτει το /responses στο base URL.
Άλλα εργαλεία agent που μιλούν τη μορφή chat του OpenAI POST /v1/chat/completions https://api.shannon-ai.com/v1 Ορίστε το base URL, το κλειδί και ένα id μοντέλου Shannon στις δικές ρυθμίσεις του εργαλείου.

Και τα τρία endpoints δέχονται το ίδιο κλειδί API, ως Authorization: Bearer ή ως x-api-key. Οι κεφαλίδες anthropic-version, anthropic-beta και openai-beta που στέλνουν αυτά τα εργαλεία γίνονται δεκτές.

Επιλογή μοντέλου Shannon

Κάθε αίτημα πρέπει να ονομάζει ένα id μοντέλου που δημοσιεύει το Shannon. Ένα εργαλείο προγραμματισμού στέλνει το όνομα του δικού του προεπιλεγμένου μοντέλου εκτός αν του πείτε αλλιώς, και ένα όνομα που το Shannon δεν δημοσιεύει απαντάται με 400 και το μήνυμα unknown model: <name>. Κανένα άλλο όνομα δεν αντιστοιχίζεται σε μοντέλο Shannon, οπότε ορίστε το μοντέλο στο εργαλείο πριν από το πρώτο αίτημα.

Το GET /v1/models απαριθμεί κάθε id με το παράθυρο συμφραζομένων του. Δεν χρειάζεται κλειδί. Μοντέλα & τιμές

Μοντέλο Μετριέται ως Τι προσφέρει
shannon-coder-1 Μία κλήση ανά αίτημα στα /v1/messages και /v1/chat/completions. Tokens στο /v1/responses. Το μοντέλο προγραμματισμού. Είσοδος κειμένου, κλήσεις εργαλείων, παράθυρο συμφραζομένων 131,072 tokens.
shannon-1.6-lite
shannon-1.6-pro
Tokens από το υπόλοιπό σας. Γενικά μοντέλα με κλήσεις εργαλείων. Το shannon-1.6-lite ταιριάζει στα σύντομα αιτήματα παρασκηνίου που κάνει ένα εργαλείο.
Φιλοξενούμενα μοντέλα ανοιχτών βαρών Tokens από το υπόλοιπό σας, με cached είσοδο στο 25% της τιμής εισόδου. Κλήσεις εργαλείων, prompt caching για μακριές συνεδρίες και ακριβείς μετρήσεις από το /v1/messages/count_tokens.

Τα εργαλεία προγραμματισμού καθοδηγούν το μοντέλο με ένα μακρύ system prompt. Το system prompt εφαρμόζεται από τα shannon-coder-1, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro και τα φιλοξενούμενα μοντέλα ανοιχτών βαρών, οπότε επιλέξτε ένα από αυτά για ένα εργαλείο προγραμματισμού.

Claude Code

Το Claude Code διαβάζει τη σύνδεσή του από μεταβλητές περιβάλλοντος. Ορίστε τις στο shell που το ξεκινά ή στο block env του ~/.claude/settings.json για να τις κρατήσετε σε κάθε συνεδρία.

# Install Claude Code
npm install -g @anthropic-ai/claude-code

# Where to send requests, and your Shannon API key
export ANTHROPIC_BASE_URL=https://api.shannon-ai.com
export ANTHROPIC_AUTH_TOKEN=YOUR_API_KEY

# Shannon model ids: the session model, and the model behind each built-in name
export ANTHROPIC_MODEL=shannon-coder-1
export ANTHROPIC_DEFAULT_OPUS_MODEL=shannon-coder-1
export ANTHROPIC_DEFAULT_SONNET_MODEL=shannon-coder-1
export ANTHROPIC_DEFAULT_HAIKU_MODEL=shannon-1.6-lite

# The context window of the session model
export CLAUDE_CODE_MAX_CONTEXT_TOKENS=131072

claude
Μεταβλητή Περιγραφή
ANTHROPIC_BASE_URL Πού στέλνει το Claude Code τα αιτήματά του. Χρησιμοποιήστε τη διεύθυνση χωρίς /v1.
ANTHROPIC_AUTH_TOKEN Το κλειδί Shannon API σας, που στέλνεται ως Authorization: Bearer. Λειτουργεί και το ANTHROPIC_API_KEY: στέλνει το κλειδί ως x-api-key και το Claude Code ζητά μία φορά έγκριση.
ANTHROPIC_MODEL Το μοντέλο της συνεδρίας. Τα claude --model <id> και /model <id> ορίζουν το ίδιο πράγμα.
ANTHROPIC_DEFAULT_HAIKU_MODEL Το μοντέλο για αιτήματα παρασκηνίου, όπως οι τίτλοι συνεδριών, και για οτιδήποτε ζητά haiku.
ANTHROPIC_DEFAULT_SONNET_MODEL Το μοντέλο που χρησιμοποιείται όταν ένας subagent ή μια εντολή ζητά sonnet.
ANTHROPIC_DEFAULT_OPUS_MODEL Το μοντέλο που χρησιμοποιείται όταν ένας subagent ή μια εντολή ζητά opus.
CLAUDE_CODE_MAX_CONTEXT_TOKENS Το παράθυρο συμφραζομένων που υποθέτει το Claude Code για το μοντέλο. Χρησιμοποιήστε το context_window που αναφέρει το GET /v1/models για το id που επιλέξατε.
  • Ορίστε και τις τρεις μεταβλητές ANTHROPIC_DEFAULT_…_MODEL. Οι subagents και ορισμένες εντολές ζητούν μοντέλο με το ενσωματωμένο όνομά του και κάθε όνομα πρέπει να αντιστοιχεί σε id Shannon.
  • Το δείγμα στρέφει τα αιτήματα παρασκηνίου στο shannon-1.6-lite, που μετριέται σε tokens. Οι τίτλοι συνεδριών και παρόμοια αιτήματα δεν χρησιμοποιούν τότε κλήσεις Coder.
  • Το Claude Code ρωτά το POST /v1/messages/count_tokens για το μέγεθος του context. Το endpoint μετρά για τα φιλοξενούμενα μοντέλα ανοιχτών βαρών. Με id Shannon απαντά 400· το Claude Code θεωρεί τη μέτρηση tokens προαιρετική και εκτιμά το μέγεθος μόνο του. Καταμέτρηση tokens

Για να ελέγξετε τη διεύθυνση, το κλειδί και ένα id μοντέλου πριν ξεκινήσετε το εργαλείο, στείλτε ένα αίτημα με το χέρι:

cURL
curl https://api.shannon-ai.com/v1/messages \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "shannon-1.6-lite",
    "max_tokens": 16,
    "messages": [{"role": "user", "content": "Say OK."}]
  }'

Codex CLI

Το Codex CLI μιλά στο Responses API. Περιγράψτε το Shannon ως provider μοντέλων στο ~/.codex/config.toml, επιλέξτε εκεί ένα id μοντέλου Shannon και βάλτε το κλειδί API σας στη μεταβλητή περιβάλλοντος που ονομάζει ο provider.

~/.codex/config.toml
model = "shannon-coder-1"
model_provider = "shannon"
model_context_window = 131072

[model_providers.shannon]
name = "Shannon"
base_url = "https://api.shannon-ai.com/v1"
env_key = "SHANNON_API_KEY"
wire_api = "responses"
Shell
# Install Codex CLI
npm install -g @openai/codex

# Your Shannon API key, under the name given as env_key
export SHANNON_API_KEY=YOUR_API_KEY

# Start it; --model selects another Shannon id for one run
codex
codex --model shannon-1.6-pro
Κλειδί Περιγραφή
model Το id μοντέλου Shannon. Το codex --model <id> το ορίζει για μία εκτέλεση.
model_provider Το όνομα του block provider που θα χρησιμοποιηθεί, εδώ shannon.
base_url Η διεύθυνση του API με /v1.
env_key Το όνομα της μεταβλητής περιβάλλοντος που περιέχει το κλειδί Shannon API σας.
wire_api responses: το Codex μιλά στο POST /v1/responses.
model_context_window Το παράθυρο συμφραζομένων του μοντέλου, ώστε το Codex να συμπυκνώνει εγκαίρως μια μακριά συνεδρία. Χρησιμοποιήστε το context_window που αναφέρει το GET /v1/models.
  • Το /v1/responses δεν κρατά συνομιλία στον διακομιστή: κάθε αίτημα φέρει τη συνομιλία στο input. Το previous_response_id γίνεται δεκτό για συμβατότητα.
  • Εργαλεία συναρτήσεων (type: "function") προσφέρονται στο μοντέλο στο /v1/responses.
  • Στο /v1/responses, το shannon-coder-1 μετριέται σε tokens από το υπόλοιπό σας και όχι σε κλήσεις Coder.

Ο ίδιος έλεγχος για το endpoint Responses:

cURL
curl https://api.shannon-ai.com/v1/responses \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "shannon-1.6-lite",
    "input": "Say OK."
  }'

Το μοντέλο προγραμματισμού και πώς μετριέται

Το shannon-coder-1 είναι το μοντέλο Shannon για agents προγραμματισμού. Το GET /v1/models το αναφέρει με παράθυρο συμφραζομένων 131,072 tokens, κλήσεις εργαλείων, συλλογισμό και είσοδο κειμένου. Μετριέται με έναν από δύο τρόπους, ανάλογα με το endpoint που χρησιμοποιεί ένα εργαλείο.

Endpoint Ένα αίτημα κοστίζει Αφαιρείται από
/v1/messages 1 κλήση ανά αίτημα Το όριο κλήσεων Coder του πλάνου σας. Δεν αφαιρούνται tokens από το υπόλοιπό σας.
/v1/chat/completions 1 κλήση ανά αίτημα Το όριο κλήσεων Coder του πλάνου σας. Δεν αφαιρούνται tokens από το υπόλοιπό σας.
/v1/responses Tokens, με $8.00 ανά 1M Το υπόλοιπό σας, όπως σε κάθε άλλο μοντέλο. Το όριο κλήσεων δεν χρησιμοποιείται.

Μια κλήση είναι ένα αίτημα, όποιο κι αν είναι το μέγεθός του. Μετριέται όταν γίνεται δεκτό το αίτημα, πριν απαντήσει το μοντέλο. Μια συνεδρία agent στέλνει ένα αίτημα για κάθε βήμα που κάνει, οπότε μια μακριά εργασία χρησιμοποιεί πολλές κλήσεις. Το όριο εξαρτάται από το πλάνο σας και ξεκινά ξανά κάθε 4 ώρες, στις 00:00, 04:00, 08:00, 12:00, 16:00 και 20:00 UTC.

Πλάνο Κλήσεις ανά παράθυρο 4 ωρών
Free 3
Plus 20
Standard 40
Pro 60

Η σελίδα του πλάνου δείχνει τους τρέχοντες αριθμούς. Πλάνα

Όταν εξαντληθούν οι κλήσεις ενός παραθύρου, το αίτημα απαντάται με 429. Στο /v1/messages το ίδιο σφάλμα έρχεται στη μορφή της Anthropic.

429 /v1/chat/completions
{
  "error": {
    "type": "rate_limit_error",
    "message": "Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan"
  }
}
429 /v1/messages
{
  "type": "error",
  "error": {
    "type": "rate_limit_error",
    "message": "Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan"
  }
}

Υπέρβαση του context

Όταν μια συνομιλία είναι μεγαλύτερη από το παράθυρο συμφραζομένων του μοντέλου, τα /v1/chat/completions και /v1/messages απαντούν με 400, τον τύπο invalid_request_error, τον κωδικό context_length_exceeded και ένα μήνυμα που αρχίζει με prompt is too long. Τα εργαλεία προγραμματισμού διαβάζουν αυτό το σφάλμα για να συμπυκνώσουν τη συνεδρία και να στείλουν ξανά το αίτημα. Παράγεται από τα shannon-coder-1, shannon-1.6-lite και shannon-1.6-pro.

400 /v1/chat/completions
{
  "error": {
    "type": "invalid_request_error",
    "code": "context_length_exceeded",
    "message": "prompt is too long: 140211 tokens > 131072 maximum",
    "param": null
  }
}
400 /v1/messages
{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "code": "context_length_exceeded",
    "message": "prompt is too long: 140211 tokens > 131072 maximum",
    "param": null
  }
}

Το μήνυμα είναι prompt is too long: <sent> tokens > <limit> maximum. Όταν δεν είναι γνωστοί οι δύο αριθμοί, είναι prompt is too long. Please compact the conversation and try again.

Σε ένα stream η κατάσταση είναι ήδη 200, οπότε το σφάλμα φτάνει ως συμβάν και το stream κλείνει στη συνέχεια κανονικά:

/v1/chat/completions, stream
data: {"error":{"message":"prompt is too long: 140211 tokens > 131072 maximum","type":"invalid_request_error","code":"context_length_exceeded","param":null}}

data: {"id":"chatcmpl-…","object":"chat.completion.chunk","created":…,"model":"shannon-coder-1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{…}}

data: [DONE]
/v1/messages, stream
event: error
data: {"type":"error","error":{"type":"invalid_request_error","message":"prompt is too long: 140211 tokens > 131072 maximum"}}

event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{…}}

event: message_stop
data: {"type":"message_stop"}

Σε τι μπορεί να βασιστεί ένας βρόχος agent

Θέμα Συμπεριφορά
Schemas εργαλείων Οι ορισμοί εργαλείων λαμβάνονται όπως τους στέλνει το εργαλείο. Στα shannon-coder-1 και shannon-1.6-*, λέξεις-κλειδιά του JSON Schema που το μοντέλο δεν χρησιμοποιεί, όπως $schema, $ref, additionalProperties, default και title, παραλείπονται από όσα διαβάζει το μοντέλο και το oneOf διαβάζεται ως anyOf. Κανένα αίτημα δεν απορρίπτεται γι' αυτά.
Ορίσματα κλήσης εργαλείου Σε ένα stream, τα ορίσματα μιας κλήσης εργαλείου φτάνουν ολόκληρα σε ένα delta: tool_calls[].function.arguments, input_json_delta.partial_json ή response.function_call_arguments.delta.
Τέλος ενός γύρου εργαλείου Το μοντέλο ζητά εργαλείο: finish_reason: "tool_calls" στα Chat Completions, stop_reason: "tool_use" στα Messages.
Keep-alive Όσο εργάζεται το μοντέλο, το /v1/messages στέλνει event: ping και το /v1/chat/completions στέλνει μια γραμμή σχολίου : ping κάθε 15 δευτερόλεπτα.
Διακοπή ενός αιτήματος Το κλείσιμο της σύνδεσης σταματά το stream. Ο ίδιος ο γύρος ολοκληρώνεται και μετράται.

Αντιμετώπιση προβλημάτων

Σύμπτωμα Αιτία Διόρθωση
400 με unknown model: claude-… ή unknown model: gpt-… Το εργαλείο έστειλε το όνομα του δικού του προεπιλεγμένου μοντέλου. Εξυπηρετούνται μόνο δημοσιευμένα ids Shannon και κανένα άλλο όνομα δεν αντιστοιχίζεται σε κάποιο. Επιλέξτε ένα id Shannon: το ANTHROPIC_MODEL και οι τρεις μεταβλητές ANTHROPIC_DEFAULT_…_MODEL στο Claude Code, το model στη ρύθμιση του Codex.
400 με unknown model: και χωρίς όνομα, από το Codex CLI Το αίτημα δεν ονόμασε μοντέλο. Το /v1/responses χρειάζεται ένα. Ορίστε το model στο ~/.codex/config.toml ή περάστε --model.
401 με Missing authentication ή Invalid API key Το κλειδί δεν έφτασε στο API ή δεν είναι τρέχον κλειδί. Ένα κλειδί Shannon αρχίζει με sk-. Ελέγξτε ότι η μεταβλητή είναι ορισμένη στο shell που ξεκινά το εργαλείο. Αντιγράψτε ξανά το κλειδί από το Κλειδιά & χρήση.
404 σε κάθε αίτημα Το base URL έχει ένα /v1 παραπάνω ή παρακάτω από όσο χρειάζεται το εργαλείο. Claude Code: η διεύθυνση χωρίς /v1. Codex CLI: η διεύθυνση με /v1.
429 με Shannon Coder call quota reached Οι κλήσεις Coder του τρέχοντος παραθύρου των 4 ωρών έχουν εξαντληθεί. Περιμένετε το επόμενο παράθυρο, μεταβείτε σε πλάνο με περισσότερες κλήσεις ή επιλέξτε μοντέλο που μετριέται σε tokens.
429 με Quota exceeded Το υπόλοιπό σας δεν καλύπτει το αίτημα. Προσθέστε credit ή περιμένετε το ημερήσιο όριο του πλάνου σας στις 00:00 UTC.
400 με prompt is too long Η συνομιλία είναι μεγαλύτερη από το παράθυρο συμφραζομένων του μοντέλου. Συμπυκνώστε τη συνεδρία (/compact και στα δύο εργαλεία). Πείτε στο εργαλείο το παράθυρο συμφραζομένων του μοντέλου ώστε να συμπυκνώνει νωρίτερα.
Το Claude Code δείχνει προσεγγιστικούς αριθμούς context Το /v1/messages/count_tokens μετρά για τα φιλοξενούμενα μοντέλα ανοιχτών βαρών. Με id Shannon απαντά 400 και το Claude Code εκτιμά το μέγεθος μόνο του. Δεν υπάρχει τίποτα να διορθωθεί. Επιλέξτε φιλοξενούμενο μοντέλο ανοιχτών βαρών αν θέλετε ακριβείς μετρήσεις.
Ένα screenshot που επικολλήθηκε δεν λαμβάνεται υπόψη Το shannon-coder-1 δέχεται είσοδο κειμένου. Επιλέξτε για εκείνη τη συνεδρία ένα μοντέλο που δέχεται εικόνες.

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