Competenza · Accesso ai modelli AI
Un unico punto di ingresso verso i modelli AI, con chiavi per team, plafonamenti e fattura locale.
Mettiamo tra le applicazioni dell’azienda e i fornitori di modelli un unico punto di ingresso, compatibile con l’interfaccia OpenAI. Da lì si emettono chiavi separate per progetto, con limite di spesa, elenco dei modelli consentiti ed elenco di indirizzi IP, e il consumo si vede per chiave.
Già costruitoIl gate è in esecuzione e può essere verificato dall’esterno oggi, senza che dobbiate crederci sulla parola: il catalogo pubblico dei modelli risponde 200 e elenca 106 modelli marcati come attivi, e la query dei modelli senza chiave restituisce 401. Sotto di esso ci sono due implementazioni proprie: il servizio di fatturazione e amministrazione (98 file TypeScript), che emette le chiavi, sincronizza i limiti con il gate e tiene i registri, e la nostra piattaforma di assistenti, che porta in produzione il riconoscimento vocale e la sintesi tramite lo stesso gate, non direttamente al fornitore. Le riserve, dette qui e non in fondo: il catalogo cambia di ora in ora, quindi qualsiasi cifra si scrive con la data accanto; oggi nel gate non c’è alcun modello Anthropic, sebbene il nostro README dica il contrario; e l’invio automatico della fattura al sistema statale resta in regime di prova fino all’installazione del certificato.
Il problema appare la seconda volta, non la prima. La prima integrazione con un fornitore di modelli è semplice: una chiave, una libreria, fatto. La quinta applicazione, il terzo team e la seconda fattura in valuta estera sono il momento in cui nessuno riesce più a rispondere a tre domande banali — chi consuma, quanto, e cosa succede se uno script sfugge al controllo in una notte di sabato. La porta risolve esattamente questo: le applicazioni non parlano più con i fornitori, parlano con un unico punto di ingresso che ha la stessa interfaccia dell'API OpenAI, quindi nella maggior parte delle librerie si cambia l'indirizzo di base e la chiave, non il codice.
Ciò che può verificare da solo, proprio ora, senza account: il catalogo pubblico dei modelli della porta risponde e dice cosa contiene. Alla verifica di oggi c'erano 106 modelli, tutti marcati attivi — 77 modelli di testo, di cui 48 dichiarano capacità di ragionamento, 10 di audio, 7 di immagine, 7 in tempo reale, 3 di vettorizzazione e 2 di video. La stessa verifica fatta da un collega un'ora e mezza prima restituiva 107. Per questo il numero si scrive sempre con l'ora accanto, e sul sito dovrebbe essere letto dall'endpoint, non digitato a mano.
Il controllo dei costi non è un cruscotto, è un limite. Una chiave ha un tetto di spesa, un periodo di tetto a scelta tra quattro, un elenco di modelli consentiti, un elenco di indirizzi IP accettati — fino a venti, IPv4, IPv6 o blocchi — e un flag di blocco. Quando un tetto viene superato, la chiave si blocca automaticamente e il motivo viene scritto su di essa, così l'interfaccia può dire perché, invece di mostrare uno stato muto. Esiste anche una correzione che pochi fanno: i modelli che «ragionano» prima di rispondere consumano presso il fornitore più di quanto veda la porta, quindi il tetto lordo inviato più in basso si divide per un fattore di ragionamento calcolato come mediana sulle ultime trenta giornate dell'utente, limitato tra uno e venti. Senza questa correzione, un tetto di spesa sarebbe decorativo proprio sui modelli costosi.
La parte locale. Il tasso di cambio viene letto dal file XML ufficiale della Banca Nazionale della Moldova per il giorno corrente, con timeout di cinque secondi e un valore di riserva dalla configurazione quando la fonte non risponde — un gate non deve fermarsi perché un sito di tassi di cambio non è disponibile. La fattura fiscale viene costruita come XML e archiviata, con un ciclo di stati da bozza ad accettata o rifiutata. L’invio effettivo al sistema statale si fa con certificato; finché il certificato non è installato, il servizio resta in modalità di prova: l’XML viene generato e salvato, ma non parte. Questo è lo stato reale e lo scriviamo, perché è la differenza tra “abbiamo la fattura fiscale” e “abbiamo tutto il necessario per inviarla”.