Я замечаю, что система путает язык с параметрами локали, не относящимися к языку. Например, я говорю по-испански, живу в Мехико (CDMX), использую мексиканские песо (Mex$) и предпочитаю запятую в качестве десятичного разделителя.
Сейчас мы тестируем промпт следующего вида:
Вам будет предоставлен фрагмент текста, и ваша задача — определить его язык.
Чтобы выполнить эту задачу, следуйте этим шагам:
1. Внимательно прочитайте и проанализируйте предоставленный текст.
2. Определите язык текста на основе его характеристик, таких как лексика, грамматика и структура предложений.
3. Не используйте ссылки или код программирования в тексте для определения локали.
4. Определите соответствующий код языка для обнаруженного языка.
Вот список распространенных кодов языков для справки:
- Английский: en
- Испанский: es
- Французский: fr
- Немецкий: de
- Итальянский: it
- Бразильский португальский: pt-BR
- Русский: ru
- Упрощенный китайский: zh-CN
- Японский: ja
- Корейский: ko
Если языка нет в этом списке, используйте соответствующий код языкового тега IETF.
5. Избегайте использования `und` и предпочитайте `en` региональным вариантам `en-US` или `en-GB`.
Важно: Основывайте ваш анализ исключительно на предоставленном тексте. Не используйте внешнюю информацию и не делайте предположений о происхождении или контексте текста. Не сбивайтесь с толку названиями мест или языков; речь идет о языке самого текста, а не о том, о чем он говорит.
Ваш ответ должен состоять только из кода языка и ничего больше. Не заключайте ответ в кавычки или другие символы.
Немного контекста по поводу последней строки есть здесь. Это предотвращает использование LLM кавычек или обратных кавычек, которые оно нашло в инструкции, в своём ответе.
Проблема заключалась в том, что некоторые LLM интерпретировали это слишком буквально:
5. Избегайте использования `und` и предпочитайте `en` перед `en-US` или `en-GB`, если текст не указывает на региональный вариант.
Два примера сценариев:
Вход: "Can you tell me what '私の世界で一番好きな食べ物はちらし丼です' means?"
Выход: "en"