Σφάλματα
Κάθε κωδικός σφάλματος με τον οποίο μπορεί να απαντήσει αυτό το API, η κατάσταση HTTP που τον φέρει, και τι να κάνετε γι' αυτό. Ο φάκελος έχει σχήμα OpenAI με μία προσθήκη σε χώρο ονομάτων.
Ο φάκελος
Το error.message είναι γραμμένο για έναν άνθρωπο που διαβάζει ένα αρχείο καταγραφής, το error.type ονομάζει την κλάση αποτυχίας, και το error.code είναι το σταθερό αναγνωριστικό στο οποίο να διακλαδώνεστε — το κείμενο του μηνύματος δεν είναι σύμβαση. Όπου το API έχει δομημένη λεπτομέρεια (ποια πολιτική, ποιο τελικό σημείο, ποιο μοντέλο) αυτή φτάνει στο error.llmeu και δεν αντικαθιστά ποτέ τα τρία τυπικά πεδία.
{
"error": {
"message": "No endpoint satisfies residency eu-owned. Residency is never relaxed silently.",
"type": "conflict_error",
"code": "no_endpoint_for_policy",
"llmeu": { "requested": "llmeu-auto" }
}
}
Ο τύπος ακολουθεί την κατάσταση
Η αντιστοίχιση παρακάτω είναι αυτή που εφαρμόζει το API, όπως αποδίδεται από τον ίδιο πίνακα που δημιουργεί τις απαντήσεις του.
| HTTP | τύπος |
|---|---|
| 400 | invalid_request_error |
| 401 | authentication_error |
| 402 | insufficient_quota |
| 403 | permission_error |
| 404 | not_found_error |
| 409 | conflict_error |
| 413 | invalid_request_error |
| 422 | invalid_request_error |
| 429 | rate_limit_error |
| 500 | api_error |
| 501 | api_error |
| 502 | api_error |
| 503 | api_error |
Κωδικοί
Κάθε κωδικός που μπορεί να φτάσει σε έναν πελάτη. Ένα τεστ διατρέχει τον πηγαίο κώδικα του API και αποτυγχάνει όταν αυτός ο πίνακας και ο κώδικας διαφωνούν προς οποιαδήποτε κατεύθυνση, οπότε ένας κωδικός δεν μπορεί να εφευρεθεί εδώ ή να προστεθεί εκεί χωρίς να τεκμηριωθεί.
| HTTP | code | Τι σημαίνει, και τι να κάνετε |
|---|---|---|
| 400 | invalid_request | Το σώμα του αιτήματος απέτυχε στην επικύρωση. |
| 400 | invalid_json | Το σώμα δεν ήταν έγκυρο JSON. |
| 400 | invalid_llmeu | Το αντικείμενο llmeu δεν ήταν αντικείμενο, ή έφερε άγνωστο πεδίο. |
| 400 | invalid_residency | Η ζητούμενη διαμονή δεν είναι μία από τις τέσσερις κλάσεις φιλοξενίας. |
| 400 | invalid_data_class | Το ζητούμενο data_class δεν είναι μία από τις τέσσερις κλάσεις. |
| 400 | invalid_retention | Η ζητούμενη διατήρηση δεν είναι μηδέν, 24h, 7d ή 30d. |
| 400 | invalid_max_tokens | Το max_tokens δεν ήταν θετικός ακέραιος. |
| 400 | invalid_stream | Το stream δεν ήταν λογική τιμή. |
| 400 | invalid_stop | Το stop δεν ήταν ούτε συμβολοσειρά ούτε πίνακας συμβολοσειρών. |
| 400 | invalid_role | Ένα μήνυμα έφερε ρόλο εκτός των system, user, assistant και tool. |
| 400 | invalid_tools | Τα tools ή το tool_choice ήταν λανθασμένα. |
| 400 | missing_model | Το πεδίο model είναι υποχρεωτικό. |
| 400 | missing_messages | Το messages είναι υποχρεωτικό και δεν πρέπει να είναι κενό. |
| 400 | missing_input | Το input είναι υποχρεωτικό για τα embeddings. |
| 400 | missing_name | Το name είναι υποχρεωτικό. |
| 401 | invalid_api_key | Το κλειδί λείπει, είναι άγνωστο, ανακληθέν ή έληξε. |
| 402 | budget_exceeded | Ο ημερήσιος προϋπολογισμός του οργανισμού εξαντλήθηκε. Αυξήστε το max_usd_per_day ή περιμένετε να περάσει το παράθυρο. |
| 403 | api_key_required | Το αίτημα χρησιμοποίησε συνεδρία κονσόλας. Δημιουργήστε ένα API key και στείλτε αυτό αντ' αυτού. |
| 403 | insufficient_scope | Το κλειδί είναι έγκυρο αλλά του λείπει το scope που απαιτεί αυτό το endpoint. |
| 403 | no_organization | Το διαπιστευτήριο δεν είναι συνδεδεμένο με οργανισμό. |
| 403 | model_denied | Η πολιτική του οργανισμού δεν επιτρέπει αυτό το μοντέλο ή τον πάροχό του. |
| 403 | policy_violation | Το αίτημα παραβιάζει έναν κανόνα της πολιτικής του οργανισμού. |
| 403 | retention_exceeds_policy | Η ζητούμενη διατήρηση είναι μεγαλύτερη από αυτή που επιτρέπει η πολιτική. Αυτό ελέγχεται πριν από οτιδήποτε άλλο σχετικά με το αίτημα. |
| 403 | data_class_not_allowed | Το data_class του αιτήματος δεν είναι ένα από αυτά που επιτρέπει η πολιτική. |
| 404 | model_not_found | Δεν υπάρχει τέτοιο μοντέλο για αυτόν τον οργανισμό. |
| 404 | hosted_unavailable | Το μοντέλο είναι στον κατάλογο αλλά δεν φιλοξενείται στο LLM EU, επομένως δεν μπορεί να κληθεί. |
| 404 | not_found | Η διαδρομή υπάρχει αλλά το αντικείμενο όχι. |
| 404 | unknown_route | Δεν υπάρχει διαδρομή mounted σε αυτό το path. Κάθε endpoint του OpenAI που δεν αναφέρεται στα Endpoints απαντά με αυτό. |
| 404 | policy_not_found | Το policy_id στο llmeu δεν ανήκει σε αυτόν τον οργανισμό. |
| 409 | no_endpoint_for_policy | Τίποτα δεν ικανοποιεί ταυτόχρονα την πολιτική και την τοποθεσία, και κανένα από τα δύο δεν χαλαρώνει σιωπηλά. |
| 409 | not_a_text_model | Το μοντέλο που κατονομάζεται δεν μπορεί να παράγει κείμενο: είναι μοντέλο αναγνώρισης ομιλίας, embedding ή reranker. |
| 409 | conflict | Το αίτημα έρχεται σε σύγκρουση με την τρέχουσα κατάσταση του αντικειμένου. |
| 413 | request_too_large | Το σώμα υπερέβη το όριο μεγέθους του endpoint. |
| 429 | rate_limit_exceeded | Επιτεύχθηκε ένα όριο από τον πίνακα rate-limit. Το μήνυμα αναφέρει τον χρόνο επαναφοράς του παραθύρου. |
| 500 | internal_error | Μια απρόσμενη αποτυχία από την πλευρά μας. |
| 501 | not_implemented | Το endpoint δεν προσφέρεται σκόπιμα, ή η ζητούμενη δυνατότητα δεν υπάρχει σε αυτήν την ανάπτυξη. |
| 501 | retention_not_implemented | Η πολιτική επιτρέπει διατήρηση διάφορη του μηδενός και μόνο το μηδέν υλοποιείται, επομένως το αίτημα απορρίπτεται αντί να αποθηκευτεί. |
| 501 | unsupported_n | Το n μεγαλύτερο του 1 δεν υποστηρίζεται. |
| 502 | upstream_error | Κανένα endpoint δεν μπόρεσε να εξυπηρετήσει το αίτημα μετά τη μεταγωγή. Το trace καταγράφει κάθε προσπάθεια. |
| 502 | stream_failed | Το stream απέτυχε αφού είχε ήδη ξεκινήσει. |
Το no_endpoint_for_policy σημαίνει ότι το προϊόν λειτουργεί
Ένα 409 με αυτόν τον κωδικό σημαίνει ότι η πολιτική και το αίτημα μαζί δεν επιτρέπουν κανένα τελικό σημείο, και ο δρομολογητής αρνήθηκε να χαλαρώσει σιωπηρά οποιοδήποτε από τα δύο. Δεν είναι παροδικό: η επανάληψη χωρίς αλλαγή του αιτήματος, της πολιτικής ή της διαμονής αποτυγχάνει με τον ίδιο τρόπο. Το σφάλμα φέρει τη ζητούμενη διαμονή, και το ίχνος καταγράφει γιατί απορρίφθηκε κάθε τελικό σημείο.
Σφάλματα μέσα σε ροή
Ένα αίτημα ροής που αποτυγχάνει αφού σταλούν οι κεφαλίδες γράφει το σφάλμα ως τελικό πλαίσιο SSE και μετά τον τερματισμό, ώστε ένας πελάτης που ακολουθεί τη μορφή να βλέπει αποτυχία αντί για κολοβή επιτυχία.
data: {"error":{"message":"No endpoint could start the stream.","type":"api_error","code":"upstream_error"}}
data: [DONE]