Εργαλεία 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/messagesPOST /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-liteshannon-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 {
"env": {
"ANTHROPIC_BASE_URL": "https://api.shannon-ai.com",
"ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY",
"ANTHROPIC_MODEL": "shannon-coder-1",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "shannon-coder-1",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "shannon-coder-1",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "shannon-1.6-lite",
"CLAUDE_CODE_MAX_CONTEXT_TOKENS": "131072"
}
} | Μεταβλητή | Περιγραφή |
|---|---|
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 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.
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" # 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 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.
{
"error": {
"type": "rate_limit_error",
"message": "Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan"
}
} {
"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.
{
"error": {
"type": "invalid_request_error",
"code": "context_length_exceeded",
"message": "prompt is too long: 140211 tokens > 131072 maximum",
"param": null
}
} {
"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 κλείνει στη συνέχεια κανονικά:
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] 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 δέχεται είσοδο κειμένου. | Επιλέξτε για εκείνη τη συνεδρία ένα μοντέλο που δέχεται εικόνες. |
Το κλειδί και το υπόλοιπό σας βρίσκονται στη σελίδα Κλειδιά & χρήση. Κλειδιά & χρήση