Guida all'integrazione API Mistral
Spostare un'integrazione in stile Mistral su un nuovo URL base richiede meno lavoro di quanto la maggior parte dei team si aspetti. Questa guida copre la modifica dell'URL base, l'ID del modello, lo streaming, gli strumenti, i limiti dei token, i tentativi e gli errori più probabili, con codice pronto all'uso.
Ultimo aggiornamento
Riepilogo
- Il cambiamento è un solo URL base e una sola chiave; il formato della richiesta e della risposta rimane lo stesso.
- Utilizza l'ID del modello uncensored e verificane il funzionamento con una singola richiesta di test prima di modificare qualsiasi altra impostazione.
- Lo streaming e la chiamata di funzioni passano attraverso lo stesso endpoint di chat completions, quindi i parser esistenti continuano a funzionare.
- I costi sono $0.15 per 1M token input e $0.50 per 1M token output, fatturati dal credito prepagato.
Comprendere il cambiamento dell'URL di base
Il tuo codice invia richieste a un URL base e allega una chiave. Per passare a un endpoint compatibile con OpenAI diverso, modifichi solo questi due valori. Il percorso /v1/chat/completions rimane lo stesso, quindi il corpo della richiesta e il corpo della risposta mantengono la loro struttura.
Mantieni il vecchio URL base in un valore di configurazione piuttosto che nel codice. In questo modo puoi tornare indietro in un solo passaggio se si presenta un problema in produzione.
Compatibilità SDK: Client OpenAI vs Mistral
La maggior parte delle librerie client accetta un URL di base personalizzato. L'SDK ufficiale OpenAI, LangChain e LlamaIndex lo fanno tutti, e anche un client HTTP semplice funziona. Imposta l'URL di base su https://mistralapibaseurl.com/v1 e passa la nuova chiave.
- Verifica la versione dell'SDK, poiché le versioni molto vecchie ignorano l'impostazione dell'URL di base.
- Verifica che il client invii la chiave nell'
Authorizationheader come token bearer.
Configurazione dell'ID del Modello
Invia l'ID del modello uncensored. È l'unico modello offerto dal servizio, quindi l'id non cambia tra le richieste e non hai bisogno di logica di selezione del modello.
Esegui una richiesta con un prompt breve. Una risposta e un blocco di utilizzo significano che l'URL di base, la chiave e l'id del modello sono tutti corretti.
Implementazione delle risposte in streaming
Imposta stream: true per ricevere la risposta come eventi server-sent. Ogni evento trasporta un piccolo pezzo di testo, e l'evento finale trasporta i numeri di utilizzo.
Mostra i chunk man mano che arrivano e mantieni il testo completo in un buffer, in modo che il messaggio venga memorizzato solo alla fine dello stream. Misura il tempo fino al primo token; questo valore indica quanto il chat appare reattivo per un utente.
Abilitazione del Function Calling e degli Strumenti
Passa l'array tools nello stesso formato che usi già. Il modello restituisce una chiamata a strumento con un nome di funzione e argomenti JSON. Esegui la funzione nel tuo codice, invia il risultato di nuovo come messaggio tool e leggi la risposta finale.
- Definisci un solo strumento con due argomenti obbligatori e testalo da solo.
- Testa un caso in cui sono necessarie due chiamate di funzioni in sequenza.
- Convalida gli argomenti prima di eseguire qualsiasi operazione che modifichi i dati.
Gestione delle finestre di contesto e dei token
La finestra di contesto è di 100.000 token. Le chat lunghe la riempiono, quindi riduci i turni precedenti o riassumili prima di raggiungere il limite. Ogni richiesta può restituire fino a 16.000 token di output, e il valore predefinito è 2.048, quindi imposta max_tokens per le risposte che ti aspetti.
Conta i token dal campo usage di ogni risposta. Le stime basate sul conteggio delle parole sono spesso errate di molto per il codice e i testi non inglesi.
Gestione dei limiti di frequenza e dei tentativi
Ogni chiave consente 300 richieste al minuto e 8 richieste simultanee. Quando superi il limite, ricevi una risposta 429. Riprova solo le risposte 429 e 5xx, con backoff esponenziale e un limite massimo al tempo di attesa totale.
Non ripetere mai una richiesta 400 o 401, perché la stessa richiesta fallirà allo stesso modo. Correggi prima la richiesta o la chiave.
Debug degli errori comuni API
| Stato | Causa più comune | Cosa fare |
|---|---|---|
| 400 | JSON non valido o campo sconosciuto | Controlla il corpo della richiesta rispetto al formato che invii |
| 401 | Chiave mancante o errata | Copia di nuovo la chiave e controlla l'intestazione Authorization |
| 402 | Credito esaurito | Ricarica il saldo; le ricariche partono da $20 |
| 429 | Limite di frequenza raggiunto | Ritenta più tardi |
Registra il codice di stato e l'ID della richiesta per ogni errore, in modo da poter tracciare rapidamente un problema.
Migrazione da API di Competitor
Pianifica il passaggio in tre fasi: un ambiente di test, una piccola parte del traffico live e poi il passaggio completo. Mantieni entrambi gli URL di base nella configurazione durante la fase intermedia e confronta le risposte e la latenza sugli stessi prompt.
Confronta i costi in base al tuo utilizzo effettivo, non ai prezzi di listino. Moltiplica i token di input e output dal campo di utilizzo per $0.15 e $0.50 per 1M di token e confrontali con la tua fattura attuale.
Domande comuni
Devo cambiare il formato della mia richiesta?
No. L'endpoint segue il formato delle chat completions, quindi le stesse strutture di messaggi e strumenti funzionano. Solo l'URL di base e la chiave cambiano.
Quale model id devo usare?
Utilizza uncensored. È l'unico modello disponibile sul servizio, quindi l'id rimane lo stesso in ogni richiesta.
Come ottengo una chiave per provare?
Iscriviti con Google o con un'email e una password. La chiave appare sullo schermo e l'account inizia con $0.50 di credito di prova valido per 7 giorni. Non serve la carta.
Come pago per l'utilizzo?
Ricarica con USDT su TRC20 o USDC su Base, a partire da $20. Il credito bonus si applica da $50 e il credito non scade.
Accedi alla tua chiave
Iscriviti, recupera la tua chiave e aggiorna il tuo URL di base. È l'intero processo.