aulify · Mini-Projecto
UC UC00623 · T. Desenv. Software, T. Multimédia
Versão · Aluno
Mini-Projecto · App com IA
Integração LLM + RAG + agent em produto real
Contexto
Cada par/trio constrói uma aplicação que usa IA de forma significativa (não como gimmick). Combina LLM API, possivelmente RAG ou agent, e UI funcional. Cenários:
- A: Chatbot sobre documentos PDF do utilizador (upload + RAG).
- B: Assistente de código (cola código, recebe explicação/refactor/testes).
- C: Brand voice writer (treina-se com exemplos, escreve no mesmo estilo).
- D: Analisador de reviews / feedback (classifica + sumariza).
- E: Tutor personalizado (matemática, programação, idiomas).
- F: Email triage assistant (categoriza, sugere respostas).
- G: Code review automation.
- H: Personal knowledge base com Q&A.
Requisitos
Funcionais
- LLM API (OpenAI ou Anthropic).
- UI funcional (web app ou CLI rico).
- Prompt engineering sério (system prompts, few-shot, structured output).
- Pelo menos 1 feature avançada: RAG, tools/agent, streaming.
- Persistência (histórico conversas, dados, vector DB).
- Error handling (rate limits, API down, hallucinations).
- Validação outputs (parse JSON, sanity checks).
Não-funcionais
- Custos controlados (logging tokens, monitoring).
- Privacy: dados sensíveis tratados (mention GDPR considerations).
- Stack documentada no README.
- Deployed (Vercel, Railway, próprio servidor).
- GitHub com commits e docs.
- Apresentação com demo + lições aprendidas.
Fases
Fase 1 · Design + prompt prototyping (3h)
- Escolher cenário + persona.
- Testar prompts manualmente em chat (ChatGPT, Claude).
- Iterar até output desejado.
- Entregável: 3 prompts validados.
Fase 2 · API setup + integration (2h)
- API keys, env vars.
- Wrapper functions.
- Test calls básicas.
- Entregável: primeira chamada funcional.
Fase 3 · UI funcional (3h)
- Streamlit / Gradio (Python rápido) OU Next.js (web).
- Input + output flow.
- Loading states.
- Entregável: utilizador pode usar end-to-end.
Fase 4 · Feature avançada (4h)
- RAG (vector DB + embeddings + retrieval).
- OU Tools/agent (functions + LLM decisions).
- OU Streaming (token-by-token UI).
- Entregável: feature funcional.
Fase 5 · Polish + robustez (2h)
- Error handling.
- Validação outputs.
- Cost monitoring (log tokens).
- Entregável: app resiliente.
Fase 6 · Deploy (1h)
- Streamlit Cloud, Vercel, Railway, ou Render.
- ENV vars com keys.
- Entregável: URL público.
Fase 7 · README + apresentação (1h)
Critérios de avaliação
| Item | Peso |
|---|---|
| Use case relevante | 10% |
| Prompt engineering | 20% |
| Feature avançada (RAG/agent) | 20% |
| UI/UX | 10% |
| Error handling + robustez | 10% |
| Cost awareness | 5% |
| Deploy funcional | 10% |
| README + docs | 5% |
| Apresentação + lições | 10% |
Reflexão
Em meia página: que prompt funcionou melhor e porquê? Quantos dollars gastaste no projecto? Que erro de LLM apanhaste e como mitigaste? Como avaliarias se o sistema dá respostas correctas? GDPR / privacy considerações? Que feature deixaste de fora mas considerarias importante?