Developer guide
Έλεγχος ταυτότητας με κλειδί API
Η κεφαλίδα που περιέχει το κλειδί API και το base URL για ρύθμιση στο SDK
Η πύλη CLEVI πραγματοποιεί έλεγχο ταυτότητας στις διαδρομές συμβατές με OpenAI και στις διαδρομές συμβατές με Anthropic με ένα μόνο κλειδί API.
Οι δύο τιμές που πρέπει να ρυθμίσετε στον client είναι η κεφαλίδα ελέγχου ταυτότητας που περιέχει το κλειδί και το base URL του SDK. Οι επιτρεπόμενες μορφές κεφαλίδας και το base URL διαφέρουν ανά προδιαγραφή.
Αφού ολοκληρώσετε τη ρύθμιση, μπορείτε να επιβεβαιώσετε αμέσως αν ο έλεγχος ταυτότητας έχει ολοκληρωθεί ανακτώντας τη λίστα μοντέλων.
Αν ο έλεγχος ταυτότητας αποτύχει, επιστρέφεται 401. Αν ο έλεγχος ταυτότητας ολοκληρωθεί αλλά δεν πληρούνται οι προϋποθέσεις δικαιωμάτων ή ορίων, επιστρέφεται 403.
Εκδώστε το κλειδί API από την οθόνη κλειδιών API στην κονσόλα. Από την ίδια οθόνη μπορείτε να διαχειριστείτε την ανάκληση του κλειδιού και το εύρος χρήσης του.
Κεφαλίδα ελέγχου ταυτότητας
Και οι δύο προδιαγραφές περιλαμβάνουν το κλειδί API σε μία κεφαλίδα αιτήματος. Χρησιμοποιείται είτε η κεφαλίδα X-API-Key είτε η κεφαλίδα Authorization, ενώ η επιτρεπόμενη μορφή διαφέρει ανά προδιαγραφή.
| Κεφαλίδα | Συμβατό με OpenAI | Συμβατό με Anthropic |
|---|---|---|
| X-API-Key: <κλειδί> | Επιτρέπεται | Επιτρέπεται |
| Authorization: Bearer <κλειδί> | Επιτρέπεται | Επιτρέπεται |
| Authorization: <κλειδί> (χωρίς Bearer) | Απορρίπτεται | Επιτρέπεται |
Όταν χρησιμοποιείτε την κεφαλίδα Authorization στη διαδρομή που είναι συμβατή με OpenAI, απαιτείται το πρόθεμα Bearer. Αν στείλετε μόνο το κλειδί χωρίς το πρόθεμα, η πύλη θα απορρίψει το αίτημα.
Τα ονόματα των κεφαλίδων δεν κάνουν διάκριση πεζών-κεφαλαίων, επομένως η κεφαλίδα x-api-key που στέλνει το Anthropic SDK λειτουργεί επίσης χωρίς αλλαγές. Αν καθορίσετε και τις δύο κεφαλίδες, υπερισχύει η τιμή X-API-Key.
base URL
Τα SDK που χρησιμοποιούσατε ήδη μπορούν να συνεχίσουν να χρησιμοποιούνται απλώς αλλάζοντας το base URL στις παρακάτω διευθύνσεις. Οι δύο διευθύνσεις διαφέρουν ως προς το αν περιλαμβάνουν το /v1, επομένως καθορίστε αυτούσια τη διεύθυνση που αντιστοιχεί στην προδιαγραφή.
| Προδιαγραφή | base URL | Κανόνας διαδρομής |
|---|---|---|
| Συμβατό με OpenAI | https://platform.clevi.net/api/v2/aiservice/openai/v1 | Συμπεριλάβετε το /v1 στο base URL. |
| Συμβατό με Anthropic | https://platform.clevi.net/api/v2/aiservice/anthropic | Το Anthropic SDK προσθέτει απευθείας το /v1 στη διαδρομή του αιτήματος, επομένως το base URL τελειώνει πριν από το /v1. |
Επιβεβαίωση ελέγχου ταυτότητας
Αφού ρυθμίσετε το κλειδί και το base URL, μπορείτε να ελέγξετε αν ο έλεγχος ταυτότητας έχει ολοκληρωθεί επιτυχώς ανακτώντας τη λίστα μοντέλων. Τα παρακάτω παραδείγματα εκτελούν το ίδιο αίτημα με curl, OpenAI SDK και Anthropic SDK. Στη θέση sk-... εισαγάγετε το κλειδί που εκδόθηκε από την οθόνη API key.
Κατά την ανάκτηση μέσω curl, καθορίστε την πλήρη διαδρομή έως το /v1/models και για τις δύο προδιαγραφές. Η πρώτη εντολή χρησιμοποιεί την κεφαλίδα X-API-Key για τη διαδρομή συμβατή με OpenAI, ενώ η δεύτερη χρησιμοποιεί την κεφαλίδα Authorization για τη διαδρομή συμβατή με Anthropic.
curl https://platform.clevi.net/api/v2/aiservice/openai/v1/models \
-H "X-API-Key: sk-..."
curl https://platform.clevi.net/api/v2/aiservice/anthropic/v1/models \
-H "Authorization: Bearer sk-..." \
-H "anthropic-version: 2023-06-01"Στο OpenAI SDK, καθορίστε στο base_url μια διεύθυνση που περιλαμβάνει έως και το /v1.
from openai import OpenAI
client = OpenAI(
api_key="sk-...",
base_url="https://platform.clevi.net/api/v2/aiservice/openai/v1",
)
for model in client.models.list():
print(model.id)Στο Anthropic SDK, καθορίστε στο base_url μια διεύθυνση που τελειώνει πριν από το /v1.
Για τον έλεγχο ταυτότητας, χρησιμοποιήστε 그대로 την κεφαλίδα x-api-key που αποστέλλεται από το SDK.
from anthropic import Anthropic
client = Anthropic(
api_key="sk-...",
base_url="https://platform.clevi.net/api/v2/aiservice/anthropic",
)
for model in client.models.list(limit=20).data:
print(model.id)Αν η απόκριση οποιουδήποτε παραδείγματος είναι 200, ο έλεγχος ταυτότητας ήταν επιτυχής και το data της απόκρισης περιέχει τη λίστα των μοντέλων που μπορούν να κληθούν με αυτό το κλειδί. Αν είναι 401, ελέγξτε την αιτία με τη σειρά της επόμενης ενότητας.
Αποτυχία ελέγχου ταυτότητας
Αν αποσταλεί κλειδί που λείπει, έχει λήξει ή έχει ανακληθεί, επιστρέφεται 401. Αν πραγματοποιηθεί κλήση χωρίς κλειδί στη διαδρομή συμβατή με OpenAI, επιστρέφεται το παρακάτω σώμα, ενώ στη διαδρομή συμβατή με Anthropic το error.type είναι authentication_error.
{
"error": {
"message": "API key is required.",
"type": "invalid_request_error"
}
}Αν λάβετε 401, ελέγξτε τα παρακάτω με τη σειρά.
- Ελέγξτε την κατάσταση του κλειδιού στην οθόνη API key. Αν έχει λήξει ή έχει ανακληθεί, εκδώστε ένα νέο.
- Ελέγξτε αν το όνομα της κεφαλίδας είναι X-API-Key ή Authorization.
- Αν χρησιμοποιείτε την κεφαλίδα Authorization στη διαδρομή συμβατή με OpenAI, ελέγξτε αν περιλαμβάνει το πρόθεμα Bearer.
Μετά τις διορθώσεις, εκτελέστε ξανά την ανάκτηση της λίστας μοντέλων στην ενότητα ελέγχου ταυτότητας και επιβεβαιώστε ότι επιστρέφεται 200.
Κεφαλίδες που χρησιμοποιούνται μαζί
Όλες οι παρακάτω κεφαλίδες είναι προαιρετικές. Συνιστούμε να ορίσετε την X-Request-Id, ώστε να είναι δυνατή η παρακολούθηση προβλημάτων.
| Κεφαλίδα | Χρήση | Αν παραλειφθεί |
|---|---|---|
| X-Request-Id | Αναγνωριστικό για την παρακολούθηση του αιτήματος. Η διαδρομή συμβατή με Anthropic επιστρέφει την ίδια τιμή στην κεφαλίδα request-id της απόκρισης. | Εκδίδεται από τον διακομιστή. |
| X-Region-Code | Καθορίζει την περιοχή κλήσης. | Είναι global. |
| X-Product-Sku (μπορεί να καθοριστεί και μέσω του query product_sku) | Καθορίζει απευθείας το Product SKU που θα χρησιμοποιηθεί για τη χρέωση. Η κεφαλίδα έχει προτεραιότητα έναντι του query και χρησιμοποιείται κυρίως σε διαδρομές φωνής και voice. | Στις διαδρομές voice δεν μπορεί να παραλειφθεί. Τα audio/speech και audio/transcriptions επιλέγουν το Product μέσω του model στο σώμα του αιτήματος. |
| anthropic-version / anthropic-beta | Μεταβιβάζεται ως έχει στη διαδρομή που είναι συμβατή με Anthropic. | Η έκδοση είναι 2023-06-01. |
Εάν τα 5xx επαναλαμβάνονται, ενημερώστε μας μέσω της Βοήθειας και της Επικοινωνίας, μαζί με το X-Request-Id. Εάν έχετε καθορίσει απευθείας την τιμή, μπορείτε να την αντιπαραβάλετε άμεσα με τα αρχεία καταγραφής του client.