Não tenho ideia do porquê, e isso não acontece em todas as postagens, mas é reproduzível em uma postagem específica onde, sempre que uso “proofread”, o conteúdo é duplicado.
Hmmm, consigo reproduzi-lo na postagem que você vinculou, mas ainda não consegui encontrá-lo em nenhum outro lugar. Muito estranho mesmo
![]()
Eu até tentei com este
mas o outro que eu consegui reproduzir com texto de resposta diferente e até mesmo com o campo de data fora da citação. Notei que se não houvesse erro de digitação no texto da resposta, ele tentava corrigir a citação.
Isso é tão estranho. ![]()
Quando você não está selecionando nenhum texto, há algo para corrigir na citação, e você é um usuário não-membro, ele se duplica. ![]()
Quando o conteúdo da citação parece bom, ele não se duplica:
Este é um bug acionado pelo Qwen @Falco
{
"model": "meta-llama/Llama-3.2-11B-Vision-Instruct",
"temperature": 0,
"stop": [
"\n</output>"
],
"messages": [
{
"role": "system",
"content": "Você é um revisor de markdown. Você corrige erros de digitação e problemas de formulação gritantes, mas mantém a voz original do usuário.\nVocê não toca em blocos de código. Eu fornecerei a você o texto para revisar. Se nada precisar ser corrigido, você repetirá o texto de volta.\nVocê encontrará o texto entre as tags XML <input></input>.\nVocê SEMPRE retornará o texto corrigido entre as tags XML <output></output>.\n\n"
},
{
"role": "user",
"content": "<input>[quote=\"Arkshine, post:1, topic:339163\"]\n:information_source: Este componente requer que o Discourse esteja atualizado a partir de [date=2024-11-27 timezone=\"Europe/Paris\"]. \n[/quote]\nVocê atualizou o Discourse? Você só recebe uma notificação para atualizar quando uma nova versão beta é lançada, mas novos commits são adicionados todos os dias.</input>"
}
]
}
{
"id": "chatcmpl-752c6aacdc7f496b951592e88d485eb3",
"object": "chat.completion",
"created": 1733196730,
"model": "Qwen/Qwen2.5-32B-Instruct-AWQ",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "<input>[quote=\"Arkshine, post:1, topic:339163\"]\n:information_source: Este componente requer que o Discourse esteja atualizado a partir de [date=2024-11-27 timezone=\"Europe/Paris\"]. \n[/quote]\nVocê atualizou o Discourse? Você só recebe uma notificação para atualizar quando uma nova versão beta é lançada, mas novos commits são adicionados diariamente.</input>\n\n<output>[quote=\"Arkshine, post:1, topic:339163\"]\n:information_source: Este componente requer que o Discourse esteja atualizado a partir de [date=2024-11-27 timezone=\"Europe/Paris\"]. \n[/quote]\nVocê atualizou o Discourse? Você só recebe uma notificação para atualizar quando uma nova versão beta é lançada, mas novos commits são adicionados diariamente.</output>",
"tool_calls": []
},
"logprobs": null,
"finish_reason": "stop",
"stop_reason": null
}
],
"usage": {
"prompt_tokens": 184,
"total_tokens": 358,
"completion_tokens": 174,
"prompt_tokens_details": null
},
"prompt_logprobs": null
}
Note como ele retorna AMBAS as tags <input> e <output>, então temos um bug aqui.
A regex de sanitização está mantendo tanto a entrada quanto a saída.
Acho que deveríamos ser mais deliberados com nossa API e, se você estiver revisando, pedir apenas a saída ou fazer um melhor engenharia de prompt.
Também, interessantemente, paramos de enviar exemplos, embora os tenhamos @Roman
Isso corrigirá o cerne da regressão:
No entanto, isso vem com um efeito colateral, @Jagster, paramos de enviar exemplos em inglês há um tempo, agora os enviaremos novamente. Informe-nos se isso o afetar.
Dito isso, @Roman, isso não faz sentido para mim:
SANITIZE_REGEX_STR =
%w[term context topic replyTo input output result]
.map { |tag| "<#{tag}>\n?|\n?</#{tag}>" }
.join("|")
Não deveria ser:
(o item é para sugestões de título, mas talvez esteja seguindo um caminho diferente)
SANITIZE_REGEX_STR =
%w[output item]
.map { |tag| "<#{tag}>\n?|\n?</#{tag}>" }
.join("|")
Alguns dos prompts de ajuda usam essas tags para fornecer contexto. Por exemplo:
Alguns modelos podem incluí-las na resposta, então as removemos.
Não entendi, você pode dar um exemplo completo?
Por que queremos manter o texto em tags de entrada na saída, quando higienizamos o que o modelo nos dá?
(O OP já deve estar funcionando, a propósito)
A palavra “sanitizar” é um pouco enganosa aqui. Queremos resolver dois problemas diferentes:
- Garantir que obtemos a saída e nada mais.
- Garantir que removemos quaisquer tags que façam o resultado parecer não natural.
O problema aqui é que estamos sendo muito permissivos com (1). Precisamos garantir que a parte relevante esteja sempre envolvida por e, e não usar mais nada. Uma vez que tenhamos essa parte relevante, removemos todas as outras tags para garantir que o resultado pareça limpo (2).
Para expandir o exemplo que forneci acima e explicar por que atualmente removemos todas essas tags, esta é a aparência do prompt “explain” semeado:
\u003cterm\u003e, \u003creplyTo\u003e são usados para fornecer contexto ao modelo, enquanto \u003cinput\u003e é para dizer que queremos que ele se concentre nesse pedaço específico de texto.
O problema era que alguns modelos estavam usando as mesmas tags em suas respostas, o que tornava o texto não natural e estranho para os usuários. O objetivo final aqui é remover essas tags e produzir um texto “limpo” como resultado.
Por exemplo, quando quero obter uma explicação sobre o que significa “Não seguir”, não quero ver algo como isto:
\u003e \u003cterm\u003eNão seguir\u003c/tem\u003e neste contexto significa que o usuário está tendo dificuldade em entender a explicação ou o ponto que está sendo feito. (…)





