Compatibilità con l'SDK OpenAI
Cosa funziona senza modifiche se punta un'integrazione esistente compatibile con OpenAI verso tAI, e cosa no, così non c'è nulla da scoprire per tentativi ed errori.
La versione breve
Cambi due valori, base_url in https://api.artfical.com/v1 e api_key in una chiave tAI, e il ciclo centrale di richiesta/risposta, chat completions, streaming, chiamata di strumenti, input di immagini, funziona allo stesso modo con cui funziona con l'API di OpenAI stessa. Questa pagina esiste per le parti che non si trasferiscono uno a uno, in modo che una migrazione non dipenda dallo scoprire le lacune una richiesta fallita alla volta.
# Prima client = OpenAI(api_key="sk-...") # Dopo client = OpenAI(base_url="https://api.artfical.com/v1", api_key="tai-sk-...")
Funziona così com'è
| Funzionalità | Note |
|---|---|
| Chat completions | Stessa forma di richiesta e risposta. Vedere Chat completions. |
| Streaming | Stessa forma dei chunk SSE, incluso un chunk finale di solo usage. Vedere Streaming. |
| Chiamata di strumenti / funzioni | Stessa forma di tools e tool_calls. tAI non esegue mai gli strumenti da sé; vedere Chiamata di strumenti per capire perché ciò è diverso da alcune altre API orientate agli agenti. |
| Input di immagini | Stessa forma della parte di contenuto image_url, URI di dati base64. Vedere Immagini per sapere quali modelli la accettano. |
temperature, top_p, presence_penalty, frequency_penalty, seed, stop | Stessi nomi, stessi intervalli accettati. Vedere Parametri di campionamento. |
| Struttura dell'errore | Stessa forma {"error": {"message", "type"}}. Vedere Errori. |
GET /v1/models | Stessa struttura di elenco, anche se l'insieme di campi di ogni voce modello è più ridotto rispetto a quello di OpenAI. Vedere Modelli. |
Attualmente non supportato
| Funzionalità | Cosa succede se la invia |
|---|---|
n (completamenti multipli) | Ignorato. choices contiene sempre esattamente una voce. |
logprobs / top_logprobs | Ignorato. Non viene restituito alcun dato di log-probability. |
response_format (modalità JSON / output strutturati) | Ignorato. Se ha bisogno di un output strutturato in modo affidabile, l'approccio più portabile è istruire il modello direttamente nel prompt a rispondere in un formato specifico (JSON, un modello fisso) e analizzare il testo risultante. |
| Endpoint per embedding, audio, generazione di immagini | Non implementati. La superficie dell'API di tAI è composta solo da chat completions ed elenco dei modelli; vedere la panoramica dell'API per l'elenco completo degli endpoint. |
| Endpoint per fine-tuning, batch e caricamento di file | Non implementati. |
| Chiavi con ambito organizzazione/progetto | Non applicabile. Una chiave tAI ha come ambito un unico spazio di lavoro; vedere Autenticazione. |
Nessuno dei campi non supportati fa fallire completamente una richiesta; vengono accettati e ignorati silenziosamente invece di generare un 400. È una scelta deliberata per evitare di rompere un client esistente che magari invia sempre, per abitudine, n: 1 anche se è comunque il valore predefinito; il rischio è che un client dia per scontato che una funzionalità realmente non supportata (come n: 3 per tre veri completamenti candidati) stia funzionando quando in realtà non lo fa silenziosamente, quindi vale la pena controllare esplicitamente la forma della risposta invece di fidarsi del fatto che non sia stato sollevato alcun errore.
I nomi dei modelli non si trasferiscono
La stringa del modello di un'integrazione esistente, "gpt-4o", "gpt-4.1-mini" o simili, deve essere cambiata in uno degli ID modello propri di tAI (tai-4.0.6P, tai-4.0.6B, tai-4.0.7, tai-4.1, tai-4.2); consulti la pagina Modelli per sapere a cosa ciascuno è destinato. Non esiste una mappatura automatica dai nomi dei modelli di un altro provider a quelli di tAI, poiché i due cataloghi non corrispondono uno a uno né per capacità né per denominazione.
Cose che vale la pena ricontrollare dopo la migrazione
Alcune cose che non causano un errore ma è facile sbagliare in modo sottile al primo tentativo: verifichi che base_url includa il suffisso /v1 (un semplice https://api.artfical.com senza di esso non risolverà correttamente le richieste), verifichi che la chiave API abbia il prefisso tai-sk- e non sia una chiave residua di dove l'integrazione puntava in precedenza, e se l'integrazione fa affidamento su uno qualsiasi dei campi non supportati elencati sopra affinché produca un effetto reale, pianifichi esplicitamente quella lacuna invece di presupporre la parità.