Salta el contingut

Rúbrica PR5073/01: Assistent RAG amb LangChain i Docker

Pràctica: PR5073/01 — Assistent RAG amb LangChain i Docker Mòdul: 5073 — Programació d'Intel·ligència Artificial Curs: IABD — Institut Sa Palomera, Blanes Pes sobre la nota del mòdul: 15%


Criteris d'avaluació

Criteri Pes Excel·lent (9-10) Notable (7-8) Aprovat (5-6) Insuficient (<5)
Configuració entorn Docker 10% Ollama + Python funcionant amb docker-compose, tots els serveis saludables, logs nets Docker configurat correctament, els serveis arranquen sense errors Docker bàsic funcional, algun avís als logs Errors de configuració, els serveis no arranquen
Qualitat del sistema RAG 30% Chunking òptim (mida i superposició justificades), MMR retrieval, prompt en català, cita fonts, gestió d'excepcions RAG funcional, bona qualitat de respostes, fonts referenciades RAG funcional amb limitacions (respostes genèriques, sense fonts) RAG no funcional o respostes inventades
Interfície Gradio 15% Interfície polida amb pestanyes, historial de conversa, mostra les fonts, permet afegir documents Interfície funcional i clara, historial present Interfície mínima funcional (chat simple) Sense interfície o no funcional
Qualitat de les respostes en català 20% Respostes precises, fluides, en bon català, cita les fonts exactes, avisa quan no te informació Respostes correctes en català, cita fonts parcialment Respostes parcialment correctes, català amb errors, rarament cita fonts Respostes incorrectes o no en català
Personalització 5% Nom de l'alumne al títol de l'app, al missatge de benvinguda, al nom del contenidor Docker, al directori Chroma i al prompt del sistema Nom visible a l'app i al contenidor Nom parcialment present (1-2 llocs) Absent o usat el nom per defecte "Joan Garcia"
Documentació i memòria 15% Arquitectura documentada amb diagrama, decisions justificades (mida chunk, k, MMR), proves amb captura, preguntes de reflexió completes Documentació correcta, decisions explicades Documentació bàsica sense justificació Absent o copiat d'un company
Defensa oral 5% Domina el funcionament del sistema complet, explica decisions tècniques (MMR, chunking, temperatura), respon preguntes imprevistes Respon bé les preguntes bàsiques, explica el flux general Respostes bàsiques, necessita consultar el codi No pot explicar el funcionament o no compareix

Detall per criteri

Configuració entorn Docker (10%)

Excel·lent (9-10): - docker-compose.yml amb els serveis ollama i rag-[alumne] correctament configurats - healthcheck definit per a Ollama - Model nomic-embed-text i llama3.1:8b (o equivalent) descarregats i verificats - El servei arranca amb docker compose up -d sense cap intervenció manual - Variables d'entorn gestionades via .env

Notable (7-8): - Docker configurat correctament però sense healthcheck - Els serveis arranquen, però requereix algun pas manual addicional

Aprovat (5-6): - Docker bàsic funcional però amb configuració mínima - Sense docker-compose.yml però amb instruccions docker run funcionals

Insuficient (<5): - Errors de configuració Docker que impedeixen l'execució - Servei no és reproductible (funciona "a casa de l'alumne" però no en una màquina neta)


Qualitat del sistema RAG (30%)

Excel·lent (9-10): - chunk_size i chunk_overlap triats amb criteri i documentats - Retriever amb MMR (search_type="mmr", fetch_k > k) - Prompt del sistema en català que demana citar fonts i gestionar la manca d'informació - Documents variats carregats (almenys PDF o web + texts propis) - El sistema respon "No tinc aquesta informació" davant preguntes fora de context - Metadades de fonts als chunks

Notable (7-8): - RAG funcional amb bona qualitat, chunking adequat - MMR o similitud simple amb paràmetres raonables - Fonts referenciades a les respostes

Aprovat (5-6): - RAG funcional però respostes genèriques - Chunking amb valors per defecte sense justificació - Sense gestió de preguntes fora de context

Insuficient (<5): - RAG no funcional (no retorna context rellevant) - Respostes inventades (alucinacions sense context) - Sistema no indexa documents reals


Interfície Gradio (15%)

Excel·lent (9-10): - Almenys dues pestanyes: "Assistent" i "Afegir documents" (o similar) - Historial de conversa visible i persistent durant la sessió - Les fonts usades es mostren sota cada resposta - Preguntes d'exemple predefinides - Títol inclou el nom de l'alumne - Responsive i sense errors visuals

Notable (7-8): - Interfície funcional i clara - Historial de conversa present - Nom de l'alumne visible

Aprovat (5-6): - Interfície mínima funcional: camp de text + botó + resposta - Sense historial ni mostrar fonts

Insuficient (<5): - Sense interfície Gradio (només CLI) - Interfície present però no funcional


Qualitat de les respostes en català (20%)

Evidència a avaluar: conversa documentada a la memòria amb almenys 5 preguntes i les respostes obtingudes.

Excel·lent (9-10): - Totes les respostes en català correcte (ortografia, gramàtica, vocabulari tècnic adequat) - Respostes precises i basades en el context real dels documents - Cita la font específica ("Segons el document X, pàgina Y...") - Quan no te informació, ho indica clarament i proposa alternatives

Notable (7-8): - Respostes en català correcte - Basades en el context, cita fonts parcialment - Ocasionalment respon sense context clar

Aprovat (5-6): - Respostes en català amb alguns errors - Parcialment correctes, sovint massa generals

Insuficient (<5): - Respostes en castellà o anglès - Alucinacions evidents (informació no present als documents) - No diferencia entre informació del context i coneixement propi del model


Personalització (5%)

El nom real de l'alumne ha d'aparèixer als llocs següents:

Element Exemple
Nom del contenidor Docker --name rag-maria-puig
Directori Chroma ./chroma_maria_puig/
Títol de l'aplicació Gradio "Assistent RAG - Maria Puig"
Prompt del sistema "Ets l'Assistent_Maria_Puig..."
Variable ALUMNE al codi ALUMNE = "Maria Puig"

Atenció

Els alumnes que lliurin la pràctica amb el nom "Joan Garcia" (del template) en lloc del seu nom real rebran puntuació 0 en aquest criteri.


Documentació i memòria (15%)

Estructura esperada de la memòria (PDF, 3-5 pàgines):

  1. Portada: nom de l'alumne, curs, data, PR5073/01
  2. Arquitectura: diagrama del sistema (Mermaid exportat o draw.io), explicació de cada component
  3. Documents carregats: quins documents, per quin motiu, quantitat de chunks resultants
  4. Decisions tècniques: justificació del chunk_size triat, de k i fetch_k, de la temperatura del LLM
  5. Resultats: captures de la interfície, conversa d'exemple, mètriques de temps de resposta
  6. Preguntes de reflexió: les 5 preguntes de la pràctica respondudes
  7. Conclusions: dificultats trobades, millores proposades

Defensa oral (5%)

La defensa dura entre 5 i 10 minuts. El professor farà entre 3 i 5 preguntes escollides aleatòriament:

Preguntes tipus: - "Explica'm pas a pas qué passa des que l'usuari escriu una pregunta fins que rep la resposta" - "Per quin motiu has triat una mida de chunk de X? Qué passa si la fas més gran? I més petita?" - "Qué es MMR i en qué millora respecte a la similitud cosinus simple?" - "Com modificaries el sistema per a actualitzar els documents automàticament cada nit?" - "Quin es el cost de fer funcionar aquest sistema per a 100 usuaris al dia? I per a 10.000?" - "Com gestionaria el sistema una pregunta en castellà quan els documents son en català?"


Fulla de puntuació

Alumne: _____ Grup: _ Data: _______

Criteri Pes Puntuació (0-10) Puntuació ponderada
Configuració entorn Docker 10%
Qualitat del sistema RAG 30%
Interfície Gradio 15%
Qualitat respostes en català 20%
Personalització 5%
Documentació i memòria 15%
Defensa oral 5%
TOTAL 100%

Nota final: _ / 10

Observacions del professor:




Signatura del professor: _____ Data: _______