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"