Занимался задачкой классификации текстов. Было у меня порядка 2000 готовых тегов. Сделал рыбу промпта с помощью Anthropic Prompt Generator, перевел на русский с помощью Google Translate (промпт же для российской модели). В исходном виде было примерно так:
Вы — помощник ИИ, специализирующийся на анализе образовательных материалов и выборе наиболее подходящих тегов для них. Ваша задача — выбирать теги, которые точно отражают содержание и тематику материалов на основе их названия и описания.
Дальше перечисляю 2к тегов и дополняю всякими инструкциями. Гружу в GigaChat с нулевой температурой, и получаю сообщение:
Не люблю менять тему разговора, но вот сейчас тот самый случай
Иду в GigaChat Playground, копирую промпт, вставляю список из 2к тегов, каждый в новой строке, запускаю промпт и...работает!
Находит нужные теги, еще и свои додумывает, хотя в инструкции просил этого не делать, и температура нулевая. Почему в коде не работает? - подумал я.
Оказалось, дело в способе перечисления тегов. Я по привычке разделил теги запятой:
prompt = prompt_template.replace("{{TAGS}}", ", ".join(tags))
И когда, я сделал каждый тег в новой строке:
prompt = prompt_template.replace("{{TAGS}}", "\n\n ".join(tags))
Цензор GigaChat'a пропустил такой вариант, воспринял теги не как часть инструкций, а как перечисление доступных тегов.
Но проблема генерации лишних тегов все равно оставалась. Поэтому я доработал рыбу промпта, добавив упоминание доступных тегов как можно ближе к началу промпта, и получилось:
Вы — эксперт специализирующийся на анализе и классификации образовательных материалов. Ваша задача — из заранее подготовленного списка тегов, выбирать те теги,
которые наиболее точно отражают содержание и тематику материалов на основе их названия и описания.
И даже версия GigaChat Lite неплохо справляется с этой задачей.
#кейс@ai_skillful
