Guadagni:
- Capacità di stabilire un'architettura LLM cloud sicura che non mantiene la chiave API sul client ma passa attraverso un proxy back-end
- Capacità di scrivere integrazioni robuste che aumentano la velocità percepita con lo streaming e gestiscono delicatamente situazioni come timeout, errori di rete e limiti di velocità
- Capacità di ridurre i costi accorciando il token inviato e mettendo in discussione la necessità dei dati personali prima che vadano nel cloud
L'intelligenza artificiale sul dispositivo è potente ma limitata. Quando desideri aggiungere a un'app un vero "assistente di chat intelligente", un lungo riepilogo di testo o una produzione creativa complessa, hai bisogno di modelli troppo grandi per stare su un telefono. È qui che entra in gioco l'intelligenza artificiale nel cloud: la tua applicazione si connette a un modello linguistico di grandi dimensioni (LLM) tramite un'API (Application Programming Interface – l'interfaccia standard in cui due software si inviano e ricevono dati l'uno dall'altro). In questa unità impareremo come integrare il cloud LLM in un'applicazione mobile in modo sicuro, veloce e attento ai costi. L'accento sarà posto sulla sicurezza: un'integrazione LLM installata in modo errato potrebbe far trapelare la chiave API e comportare fatture del valore di migliaia di sterline.
La regola d'oro dell'architettura: lasciare la chiave al cliente
L'errore più pericoloso che si può commettere nell'integrazione dell'IA nel cloud è incorporare la chiave API (la password segreta che autorizza l'utilizzo del servizio) direttamente nel codice dell'applicazione mobile. Le applicazioni mobili vengono scaricate sul dispositivo dell'utente e il codice può essere letto tramite reverse engineering, analizzando l'applicazione compilata e vedendo cosa c'è al suo interno. Se la tua chiave è all'interno dell'app, qualcuno può estrarla ed effettuare richieste illimitate dal tuo account.
L'architettura corretta è questa: l'applicazione mobile invia richieste al tuo server backend (il server proxy che controlli); La chiave risiede solo sul server; Il server va al servizio LLM e restituisce la risposta all'applicazione. Questo middleware fornisce inoltre limiti di velocità, prevenzione degli abusi e controllo dei costi.
Avvicinamento
dov'è la chiave
Sicurezza
La chiave è nell'applicazione (FALSO)
Nel cliente, pubblico
Fuoriesce, la banconota esplode
La chiave è nel backend (TRUE)
Sul server, nascosto
Sicuro, controllabile
Attenzione: quando si richiede all'intelligenza artificiale l'integrazione del cloud LLM, potrebbe essere prodotto un esempio che scrive la chiave direttamente nel codice dell'applicazione per comodità. Non prenderlo mai dal vivo. Assicurati di includere la frase "La chiave API non deve trovarsi sul client, passare attraverso il proxy backend" nel prompt.
Streaming: aumento della velocità percepita
Le risposte LLM possono essere lunghe e richiedere pochi secondi per essere prodotte nella loro interezza. Lasciare l'utente in attesa su uno schermo vuoto è una brutta esperienza. La soluzione è in streaming: visualizza la risposta parola per parola, man mano che viene generata. L'utente monitora l'ortografia del testo, come in ChatGPT; questo aumenta notevolmente la velocità e la fluidità percepite. Flusso su dispositivi mobili significa aggiungere pezzi (token, la parte di testo prodotta dal modello) dal server all'interfaccia man mano che arrivano. Richiedere esplicitamente il flusso durante la stampa dell'integrazione su AI.
Suggerimento: aggiungi un pulsante "pausa" nella risposta allo streaming. L'utente dovrebbe essere in grado di interrompere la produzione quando ottiene la risposta che desidera; Ciò migliora l'esperienza e riduce i costi eliminando la generazione di token non necessaria. Nel mezzo della risposta lunga, l'utente potrebbe aver già trovato la risposta.
Gestione dei costi, dei ritardi e degli errori
Cloud LLM comporta un costo in denaro (tariffa per token) e un costo in tempo (latenza) per ogni richiesta. Tre discipline sono essenziali. Cost: limit prompt and response length, do not send unnecessarily long system instructions, default to small and cheap model if possible. Latenza: utilizza lo streaming, imposta il timeout, avvisa l'utente se la rete è lenta. Errore: interruzione della rete, il servizio potrebbe restituire 429 (troppe richieste) o 500 (errore del server); gestiscili ciascuno con delicatezza, non mandare in crash l'app. Inoltre, LLM a volte fornisce risposte prive di significato o errate (allucinazioni); Aggiungi un livello di verifica della risposta nelle aree critiche.
tre mini custodie
Caso 1: chiave smarrita. Una startup ha incorporato la chiave OpenAI direttamente nella sua app React Native per uscire rapidamente. Tre settimane dopo il rilascio dell'app, la chiave è stata decodificata e dall'oggi al domani sono stati effettuati utilizzi per un valore di 2.400 dollari. Il team ha dovuto revocare la chiave e impostare un proxy backend. Lezione: la scorciatoia presa per comodità è diventata la strada più costosa.
Caso 2 — Il dropout è diminuito con il flusso. Un'app educativa ha rilasciato per la prima volta la sua funzione di domande e risposte senza streaming; gli utenti uscivano dopo 6 secondi di attesa inattiva. Quando è stato aggiunto il flusso, la prima parola ha iniziato ad apparire in 0,8 secondi e il tasso di abbandono è sceso dal 48% al 12%. Stesso modello, stessa velocità: solo una differenza nella presentazione.
Caso 3 – Controllo dei costi. Un'app inviava l'intera cronologia della chat alla modella con ogni messaggio dell'utente; Nelle conversazioni lunghe, una singola richiesta raggiungeva gli 8.000 token, gonfiando il costo. Inviando solo gli ultimi messaggi e un riepilogo, il team ha ridotto i token per richiesta del 70%, riducendo la fattura mensile a un terzo. Lezione: misura ciò che invii.
Prompt debole / Prompt forte
Prompt debole: "Aggiungi una chat come ChatGPT alla mia app".
Prompt potente: "Aggiungi un assistente chat alla mia applicazione iOS/Swift. Architettura: l'applicazione invia una richiesta al mio backend, la chiave API LLM NON è sul CLIENT, passa attraverso il proxy. - La risposta arriva in streaming, visualizzata parola per parola - Il pulsante "Stop" interrompe la produzione - Gestisci timeout, errore di rete, situazioni 429 e 500 con garbo - Accorcia la cronologia della chat: invia gli ultimi 6 messaggi + riepilogo (controllo dei costi) Spiega il diagramma dell'architettura prima, quindi fornire separatamente il codice client e quello proxy."
Modelli copiabili
Modello di architettura sicura: "Progetta l'integrazione cloud LLM nella mia applicazione [piattaforma]. Regola: chiave API solo nel backend. Client -> il mio proxy -> LLM. Nel proxy: autenticazione, limite di velocità per utente, registrazione delle richieste. Elenca le responsabilità del client e del proxy separatamente, quindi esporta il codice."
Modello di streaming: "Aggiungi una risposta in streaming a questa schermata di chat:- Aggiungi snippet al fumetto del messaggio non appena arrivano- Mostra un cursore/animazione durante la digitazione- Il pulsante "Interrompi" annulla lo streaming- Conserva il testo parziale e avvisa se si verifica un errore mentre lo streaming sta terminando[codice esistente]"
Modello di latenza dei costi: "Riduci i costi e la latenza in questa integrazione LLM: - Come posso ridurre il token inviato (abbreviazione della cronologia, riepilogo)? - In tal caso è sufficiente un modello più piccolo/più economico? - Suggerisci timeout e riprova la strategia [codice]"
Modello di tolleranza agli errori: "Rendi resiliente questa chiamata LLM:- Comportamento separato per nessuna rete, timeout, 429 (limite di velocità), 500 (server)- Messaggio educato e non tecnico all'utente- Nota di verifica contro il rischio di allucinazioni nelle risposte critiche[codice]"
Errori comuni
- Incorporamento della chiave API nell'applicazione. Il bug di sicurezza più costoso e comune; La chiave sta sicuramente nel back-end.
- Non usare il flusso. Lasciare l'utente in attesa di risposte lunghe lo allontanerà.
- Invio dell'intera cronologia della chat con ogni richiesta. Moltiplica il costo e la latenza dei token.
- Bypassare le condizioni di errore. Se 429/500/timeout non viene risolto, l'applicazione si bloccherà o si bloccherà.
- Considerando la risposta LLM corretta senza domande. L'allucinazione è reale; Aggiungi il livello di verifica nell'area critica.
- Invio dei dati utente a LLM non necessari. Chiedi se i dati personali sono obbligatori o devono essere mascherati prima che vengano trasferiti nel cloud.
In sintesi
Cloud LLM offre grandi funzionalità che non si adattano ai dispositivi mobili, ma richiedono sicurezza e disciplina dei costi. Regola d'oro: la chiave API non si trova mai sul client, passa attraverso il proxy backend. Il flusso aumenta notevolmente la velocità percepita e la ritenzione; Supportato dal pulsante "stop". Il costo è determinato accorciando il token inviato; La resilienza si ottiene gestendo con garbo tutti i casi di errore. Le risposte LLM possono includere allucinazioni; Nelle aree critiche, la verifica è essenziale e i dati personali vengono esaminati prima di inviarli al cloud.
Compito dell'applicazione
Richiedi un progetto client + proxy backend all'IA utilizzando il "modello di architettura sicura" per una funzione di "riepilogo testo" o "chat". Verifica che la chiave API risieda solo nel backend nel progetto generato. Quindi estrarre almeno due modi per ridurre il token inviato con il "Cost-delay pattern" e scrivere il messaggio gentile da mostrare all'utente per una condizione di errore (es. 429).
lista di controllo
- [ ] Ho verificato che la chiave API risiede nel backend e non sul client
- [ ] Ho reso la risposta in streaming e ho aggiunto un pulsante "pausa".
- [ ] Ho gestito le situazioni di timeout, errore di rete, 429 e 500
- [ ] Ho ridotto il token inviato con l'abbreviazione/riepilogo precedente
- [ ] Ho considerato la convalida contro il rischio di allucinazioni nella risposta LLM
- [ ] Ho verificato la necessità/mascheramento dei dati personali prima di passare al cloud