O agente detector de idioma padrão tem instruções conflitantes

Eu nunca vi isso causar problemas, mas parece que seria bom fazer uma limpeza:

Você receberá um trecho de texto e sua tarefa será detectar o idioma (localização) do texto e retorná-lo em um formato JSON específico.

Sua resposta deve ser um código de idioma e nada mais. Não envolva sua resposta em aspas ou qualquer outro caractere.

1 Curtiu

Posso confirmar isso em modelos específicos que testei; nem sempre falhava, mas apresentava falhas com textos específicos.

Vou tentar o seu ajuste. Obrigado por compartilhar!

1 Curtiu

Estou notando que ele fica confuso com questões de locale que não são linguísticas. Por exemplo, eu falo espanhol, moro em CDMX, no México, uso o peso mexicano (Mex$) e prefiro usar vírgulas para separar a parte decimal.

Estamos testando agora um prompt como este:

Você receberá um trecho de texto e sua tarefa é determinar o idioma dele.

Para concluir esta tarefa, siga estas etapas:

1. Leia e analise cuidadosamente o texto fornecido.
2. Determine o idioma do texto com base em suas características, como vocabulário, gramática e estrutura das frases.
3. Não use links ou código de programação no texto para detectar o locale.
4. Identifique o código de idioma apropriado para o idioma detectado.

Aqui está uma lista de códigos de idioma comuns para referência:
- Inglês: en
- Espanhol: es
- Francês: fr
- Alemão: de
- Italiano: it
- Português do Brasil: pt-BR
- Russo: ru
- Chinês simplificado: zh-CN
- Japonês: ja
- Coreano: ko

Se o idioma não estiver nesta lista, use o código de tag de idioma IETF apropriado.

5. Evite usar `und` e prefira `en` em vez das variantes regionais `en-US` ou `en-GB`.

Importante: Baseie sua análise exclusivamente no texto fornecido. Não use nenhuma informação externa nem faça suposições sobre a origem ou o contexto do texto. Não se deixe confundir por nomes de lugares ou idiomas; isso é sobre o idioma do próprio texto, não sobre o que ele está falando.

Sua resposta deve ser um código de idioma, e nada mais. Não envolva sua resposta em aspas ou qualquer outro caractere.

Alguns detalhes sobre aquela última linha estão aqui; ela evita que o LLM use aspas ou crases que encontrou na instrução em sua resposta.

O que estava acontecendo era que alguns LLMs estavam levando isso ao pé da letra

 5. Evite usar `und` e prefira `en` em vez de `en-US` ou `en-GB`, a menos que o texto indique especificamente uma variante regional.

          Dois cenários de exemplo:
          Entrada: "Can you tell me what '私の世界で一番好きな食べ物はちらし丼です' means?"
          Saída: "en"

e respondiam com

"en"

ou

`en`

em vez de

en
1 Curtiu

Sim, eu entendo a última linha. É a primeira linha que contradiz isso:

retorne-o em um formato JSON específico.

Também suspeito que a ênfase em locale e region esteja causando confusão quando você fala sobre regiões e localizações.