Σφάλματα

Κάθε κωδικός σφάλματος με τον οποίο μπορεί να απαντήσει αυτό το 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 τύπος
400invalid_request_error
401authentication_error
402insufficient_quota
403permission_error
404not_found_error
409conflict_error
413invalid_request_error
422invalid_request_error
429rate_limit_error
500api_error
501api_error
502api_error
503api_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]