Blog

Feito por nós.
Contado por nós.

Projetos que lançámos, investigação em curso, e a vida dentro da equipa.

01

We put vibecoding to the test on a real client project at AppX.

Tiago Pinto, Manuel Oliveira

Os editores de código assistidos por inteligência artificial prometem transformar instruções em linguagem natural em software funcional, mas raramente se mede, em condições reais, até onde conseguem levar um produto completo e onde deixam de ser úteis. Este artigo relata uma avaliação prática do vibe coding, o método orientado por prompts popularizado pelo Cursor, aplicado à reconstrução de uma aplicação móvel já existente na AppX. O exercício foi deliberadamente visual e iterativo: capturas de ecrã da aplicação de referência serviram de material para os prompts, os componentes gerados foram executados e observados, e os prompts foram refinados até a interface e o comportamento corresponderem ao pretendido. O desenvolvimento decorreu por fases, do painel principal com dados fictícios à autenticação, aos ecrãs secundários, à ligação ao backend e, por fim, ao empacotamento com CapacitorJS para ensaio em dispositivo. Os resultados mostram uma aceleração real na prototipagem, na navegação, na construção da interface e na integração básica de APIs, desde que os prompts sejam precisos: instruções vagas custam várias iterações, a coerência do layout e a organização do código degradam-se sem supervisão, e um programador experiente encontrará tarefas que seriam mais rápidas escritas à mão. O artigo termina com as condições em que uma software house pode adotar o método sem perda de qualidade: as decisões de arquitetura, a segurança e a conformidade, a revisão de código, o desempenho e a prontidão para produção continuam a ser responsabilidade humana, o código gerado é tratado como o de um par em início de carreira, e os prompts são versionados como artefactos de pleno direito.

Ler artigo
novembro de 2025
02

Building a generic knowledge base chatbot with open-source LLMs and Node.js.

João Lopes, Manuel Oliveira

Os modelos de linguagem de grande dimensão conseguem responder sobre material com que nunca foram treinados quando combinados com geração aumentada por recuperação, mas construir um sistema desses inteiramente a partir de componentes de código aberto, e saber o que custa em latência e em rigor, exige medição e não suposição. Este artigo documenta a conceção e a avaliação de um chatbot de base de conhecimento desenvolvido na AppX em Node.js, que corre do lado do servidor e assenta no Ollama para executar os modelos localmente, no LangChain para orquestrar a recuperação e os prompts, e num registo de mensagens em MySQL que dá a cada utilizador uma conversa persistente. Os ficheiros de texto e PDF são segmentados, convertidos em embeddings e recuperados como contexto de cada resposta; gerar os embeddings uma única vez no arranque do servidor e guardá-los em ficheiro reduziu o tempo de resposta de 32,41 s para 4,92 s com o Llama 3.1 e de 37,54 s para 5,99 s com o Gemma 2, cerca de seis vezes. Os dois modelos foram depois comparados com três modelos de embeddings, mxbai-embed-large, snowflake-arctic-embed e nomic-embed-text, sobre um conjunto fixo de dezassete perguntas e com o contexto recuperado mantido constante. O Gemma 2 obteve a taxa de sucesso mais alta, 91,18 % com mxbai-embed-large e com snowflake-arctic-embed, enquanto o Llama 3.1 respondeu sempre mais depressa, e a resposta passou a ser transmitida em fluxo para atenuar a latência remanescente. O artigo termina com o compromisso que esta configuração impõe entre qualidade e tempo de resposta, e com as linhas de trabalho que deixa em aberto.

Ler artigo
dezembro de 2024