Alguém perguntou como e quando tomar um antidepressivo comum, se antes ou depois das refeições, e o que tem na composição. Perguntou em russo. A interface estava em turco. O modelo no Auto respondeu com uma recusa pronta — em inglês. Instruído a responder em russo, recusou de novo, em russo. Um minuto depois, a conversa foi apagada. Qualquer outro assistente responde a essa pergunta, e a pessoa tinha razão em esperar o mesmo.
Uma conversa apagada, quatro defeitos.
Informação não é conselho
Para que serve um remédio, como se toma, o que tem na composição, se precisa de receita — isso é a bula, pública e documentada. O prompt de sistema agora diz isso claramente: responda, acrescente uma linha encaminhando a um profissional para a decisão pessoal, e continue recusando o que precisa ser recusado — overdose, automutilação, formas de burlar uma receita. Ampliar o que passa a ter resposta não ampliou o que é permitido; deu nome ao silêncio no meio, onde um modelo pequeno vinha inventando sua própria política.
Uma recusa é uma resposta
A regra de que as respostas seguem o idioma da mensagem ficava longe do fim de um prompt longo, e um modelo de recusa é a resposta com mais chance de pular essa regra. Ela agora é repetida onde um modelo lê por último, e o idioma da interface só serve como critério de desempate para um número solto ou um link. Uma pergunta em russo em uma tela em turco recebe resposta em russo, e é recusada em russo se for o caso.
Havia uma causa mais funda por baixo. A parte do servidor que transmite uma resposta em streaming roda desconectada da requisição, e a cultura da requisição não a acompanhava até lá — então toda fala em streaming rodava no idioma do próprio servidor, e as cerca de vinte mensagens de sistema que um streaming pode emitir também saíam nesse idioma. A cultura agora é capturada no início e reaplicada dentro do executor. Todo cliente de streaming, tanto na web quanto no celular, também passa a enviar seu idioma junto com a requisição, o que três dos quatro não faziam.
Uma resposta vazia é uma falha com um código de status melhor
Um modelo às vezes devolvia uma resposta concluída mas sem nada dentro. O app lia isso como um fim de fala limpo e mostrava um placeholder dizendo que as ferramentas tinham terminado. Agora isso é tratado como qualquer outra falha antes do primeiro token: no Auto, um modelo irmão assume a fala; em uma escolha explícita, você vê um erro honesto e localizado. Os modelos que faziam isso com mais frequência saíram do conjunto Auto — o mesmo teste que tinha removido uma classe de modelos no começo do verão, aplicado à mesma evidência.
Não existe um depois
"Te mando daqui a uns minutos" é algo que uma pessoa diz. Uma fala do chat não pode: o que não for produzido agora nunca vai chegar, e a promessa é uma falha disfarçada de frase educada. Respostas que prometiam um depois agora são repetidas até entregarem na própria fala, nos vinte e nove idiomas que o app fala, e também no balão do assistente, assim como no chat.
Nada disso é upgrade de modelo. É a engenharia ao redor do modelo, construída para fazer com que ele cumpra as promessas que a interface já faz.