La IA dins d'una aplicació
Abans de tocar cap model, cal decidir on viurà el codi que hi parla, perquè tot el que vingui després quedi endreçat i separat de la lògica de negoci.
Temps de lectura: 3 min
La capa d'IA
La capa d'IA és la part de l'aplicació que concentra tot el codi que parla amb models de llenguatge. En lloc d'escampar crides a l'API pels controladors o pels models de dades, s'agrupen en un lloc propi, amb les seves classes, la seva configuració i els seus tests.
El motiu és que un LLM és una frontera amb un sistema extern que té tres propietats incòmodes: no és determinista (la mateixa pregunta pot tenir respostes diferents), és de pagament (cada crida costa diners) i és lent (segons, no mil·lisegons). Tot el que tingui aquestes propietats convé aïllar-ho, igual que aïllaries una passarel·la de pagament.
Tenir-ho aïllat és el que després et permet versionar els prompts, fer tests sense crides reals, mesurar costos o canviar de model sense tocar la resta de l'aplicació.
Servei de domini
Un servei de domini exposa una operació amb nom de negoci, com ara resumirTiquet($tiquet) o suggerirResposta($tiquet), i n'amaga els detalls: quin model s'utilitza, amb quin prompt, amb quins paràmetres i com s'interpreta la resposta.
Qui el crida no ha de saber que hi ha un LLM al darrere. Això permet canviar el prompt, afegir una memòria cau o substituir el model per una regla simple sense modificar cap altre punt del codi. També fa més fàcils els tests, perquè pots substituir el servei per una resposta simulada.
Crides síncrones i cues
Una crida síncrona fa esperar l'usuari fins que el model respon; una cua (una feina en segon pla) accepta la petició, respon de seguida a l'usuari i la processa després. Amb models que triguen entre 2 i 30 segons, aquesta decisió afecta directament l'experiència d'usuari i la robustesa.
Regla pràctica: si l'usuari necessita el resultat per continuar i la crida és curta, pot ser síncrona. Si és llarga, massiva o pot fallar i s'ha de reintentar (processar 500 tiquets, indexar documents), va a la cua. Les cues també et donen reintents automàtics quan el proveïdor falla o limita les peticions.
Abstracció del proveïdor
L'abstracció del proveïdor és una capa, pròpia o d'un SDK, que unifica la manera de parlar amb OpenAI, Anthropic, Google o un model obert, de manera que canviar de proveïdor sigui un canvi de configuració i no una reescriptura.
Els models canvien de preu, de qualitat i de disponibilitat cada pocs mesos, i sovint convé fer servir models diferents per a tasques diferents. Sense aquesta capa, cada canvi obliga a tocar codi repartit per tota l'aplicació. Amb ella, fins i tot pots fer que, si un proveïdor cau, la petició passi a un altre.
Revisió humana des del disseny
Dissenyar amb revisió humana vol dir que el que genera la IA entra com a proposta (un esborrany, un suggeriment) que una persona valida abans que tingui efectes reals, com enviar una resposta a un client o emetre un reemborsament.
No és una mesura temporal fins que el model «sigui prou bo»: és el que fa viable posar IA en processos reals des del primer dia, perquè els errors del model no arriben mai directament a producció. A mesura que tens dades de quantes propostes s'accepten sense canvis, pots decidir on té sentit donar-li més autonomia.
Examina't d'aquest mòdul
Copia aquest prompt i enganxa'l a la teva IA (ChatGPT, Claude, Gemini…). Et farà un test de 20 preguntes sobre els conceptes del mòdul i després et proposarà un exercici pràctic.
Actua com a examinador de la «Guia d'Enginyeria IA» de Dani Pérez. Examina'm del mòdul «La IA dins d'una aplicació» (https://daniperez.cat/resources/ai-engineering-guide/ai-layer). Conceptes que entren a l'examen: - La capa d'IA - Servei de domini - Crides síncrones i cues - Abstracció del proveïdor - Revisió humana des del disseny Examen: 1. 20 preguntes tipus test, cadascuna amb 4 opcions (a, b, c, d) i una sola resposta correcta. 2. Pregunta sobre comprensió i criteri (per a què serveix cada cosa i quan NO fer-la servir), no sobre memoritzar definicions. 3. Reparteix la posició de la resposta correcta de manera equilibrada entre a, b, c i d. 4. Fes-me les preguntes en 4 tandes de 5. No posis cap exemple de resposta (com "1a 2b 3c 4d 5a"): jo ja sé que he de respondre amb les lletres. No em diguis si he encertat fins que hagi respost les 20. 5. Al final, corregeix-les totes: per a cada pregunta, la meva resposta, la correcta i una explicació breu. Dona'm la nota sobre 20 i digues quins conceptes he de repassar. Exercici pràctic (després de la correcció): 6. Pregunta'm quina aplicació tinc o vull construir, i amb quin llenguatge i framework treballo. Si no en tinc cap, fes servir aquesta: l'aplicació d'atenció al client d'una botiga en línia, amb tiquets, clients, comandes i una base de coneixement (FAQ i polítiques de devolució). En aquest cas, centra l'exercici en: dissenyar on viu la capa d'IA i fer una primera crida al model encapsulada darrere un mètode de domini. 7. Proposa'm un exercici que apliqui els conceptes d'aquest mòdul a aquella aplicació: objectiu, requisits, criteris per donar-lo per bo i errors habituals a evitar. 8. No me'l resolguis. Quan et porti la meva solució, revisa-la amb aquests criteris.