Architecture

Quando a biblioteca não tem passagem, o modelo deve recusar

Uma resposta fluente sem onde clicar é a falha. Os sistemas que opero citam a passagem, ou param.

When the library has no passage, the model should refuse

Um modelo que responde quando não sabe não é uma funcionalidade. É uma responsabilidade com um tom agradável. Nos sistemas que eu corro, uma pergunta pode voltar vazia. O comportamento útil é uma citação quando a passagem está na biblioteca, e uma recusa quando não está.

Primeiro a recuperação, depois as palavras

O padrão é aborrecido de propósito. Pega na pergunta. Encontra as passagens que possam conter a resposta. Pontua-as. Se nenhuma sustenta mesmo uma afirmação, pára. Se uma sustenta, mostra a passagem ao lado da frase que a usou. A frase não é a fonte. A passagem é a fonte. Um leitor que não consegue abrir a passagem não pode confiar na frase, e não lhe deve ser pedido que confie.

Foi assim que construí o sistema de formação que corro: entram os materiais, um plano apontado a uma data, respostas avaliadas contra a fonte, a revisão chega antes de o material ser esquecido. É também assim que uma pergunta sobre um documento se deve comportar. Com base, ou em silêncio. Adivinhar parece útil numa demo e fica caro na primeira semana em que um cliente age com isso.

O que voltouO que o sistema pode dizer
Uma passagem que sustenta a afirmaçãoA resposta, com essa passagem ao lado.
Passagens que estão apenas pertoNada fechado. Diga o que falta.
Nenhuma passagemRecusa. Não enchas o buraco com uma frase provável.
Uma extração de baixa confiançaPausa para uma pessoa. Não pagues ao modelo outra vez para tentar às cegas.

A conta e o registo fazem parte do desenho

Um modelo na nuvem vê dados. Antes de o fazer, o fluxo de dados fica escrito: que serviço, chave de quem, qual é o tecto mensal. O acordo é explícito. Tudo o que toca num cliente, num preço ou numa encomenda espera por uma pessoa. A chamada fica registada, porque “o assistente disse” não é uma pista de auditoria.

Não prometo que isto coloque um site na caixa de respostas de outra pessoa. O posicionamento é outra máquina, com incentivos que não controlo. O que controlo é se o meu próprio sistema inventa.

A fluência é barata. O produto é uma passagem que pode abrir.

O limiar é uma decisão de produto

Alguém tem de escolher o ponto em que “perto” passa a “não chega”. Não deixo isso ao humor do modelo. Uma passagem ou ultrapassa uma barra que consigo explicar, ou a resposta fica retida. Prefiro explicar uma recusa a um utilizador do que explicar um passo fabricado num procedimento que ele seguiu. A barra pode ser afinada depois de se verem perguntas reais. Não deve começar em zero, que é onde uma demo gosta de viver, porque uma demo é avaliada por quantas vezes diz alguma coisa.

Quando uma passagem é incerta de outra forma, um extracto de baixa confiança e não uma biblioteca vazia, pauso-a para uma pessoa em vez de pagar outra tentativa que soará mais suave. Mais suave não é mais verdadeiro. O registo guarda a primeira tentativa, para a pessoa ver o que foi recuperado e o que foi descartado.

Os modelos são treinados para serem úteis, o que significa que preferem completar o parágrafo. A aplicação tem de ser mais seca do que o modelo. Um limiar, uma citação em falta, uma recuperação vazia: cada um é um ramo que não devolve resposta e regista porquê. Se esse ramo não existir, o sistema acabará por responder a uma pergunta que a biblioteca não consegue sustentar, e soará seguro.

A primeira vez que o vês recusar, parece um erro. É o contrário. O erro é o parágrafo confiante, sem sítio onde clicar.