Как я заставил ассистента по базе знаний ВСЕГДА присылать релевантные медиа-ссылки — и почему просто перевести промпт с русского недостаточно
Всем привет! ![]()
Хочу поделиться опытом, который, возможно, сэкономит кому-то часы возни.
Я делал ассистента на базе LLM, который должен отвечать на вопросы по продукции компании. База знаний подключена через RAG, в ней текстовая информация + медиа-контент: изображения, видео, таблицы. Всё красиво, всё в markdown. Пользователь спрашивает — бот ищет в базе и формирует ответ.
Казалось бы, задача простая: ищи, показывай, что нашёл, добавляй ссылки на медиа.
Но именно с этим началась настоящая драма.
Проблема: Бот упорно игнорировал медиа-ссылки
Пользователь спрашивает:
“Какие есть продукты у компании?”
А бот отвечает:
Компания предлагает следующие инструменты:
- BASIC: базовый инструмент
- PRO1, PRO2: универсальные инструменты
- ADV: для продвинутого пользователя
А ведь в базе знаний по этому запросу лежит таблица с изображением инструментов. Более того — бот даже иногда писал:
“На изображении показано различие инструментов по назначению…”
Но саму ссылку не вставлял!
Что я делал сначала
Я посмотрел, как у меня был написан системный промпт (на русском):
Проанализируй всю доступную тебе информацию и верни ответ, включающий релевантные медиа-ссылки в формате markdown с описанием.
И это работало! На русском языке он честно подбирал ссылки и вставлял их. Вот пример нормального ответа на тот же вопрос:
Компания предлагает несколько типов инструментов:
- BASIC: ...
- PRO: ...
- ADV: ...
📎 [Изображение с таблицей типов инструментов](https://ссылка-на-контент)
А потом я перевёл промпт на английский — и всё сломалось
Вот мой перевод:
Analyze all available information and include relevant media links in markdown format with descriptions.
И всё — ссылки исчезли.
Почему модель “не слушается” английский промпт
- Контекст восприятия языка. Когда промпт на русском, особенно с прямыми командами вроде “включи релевантные ссылки”, — модель четче распознаёт инструкцию как норму поведения внутри диалога. В английском варианте модель может отнести команду к более “опциональному” стилю, особенно если не написано что-то типа:
“You must always include relevant media links…”
-
Тон и жёсткость формулировок. В русском ты говоришь по сути: «Вставляй, иначе получишь по шапке»
. В английской версии фраза “Add all relevant media links to your response” может быть интерпретирована как дружеский совет, а не железное правило. -
Формулировка “relevant” оставляет слишком много свободы. Когда в инструкции написано “include relevant media links”, модель начинает сама оценивать, насколько эти ссылки действительно нужны. А если она решит, что текст и так отвечает на вопрос — ссылки могут просто не появиться.
Что я сделал, чтобы это исправить
Заменил мягкие формулировки на директивные, чтобы модель обязалась вставлять ссылки:
You MUST always include all relevant media links in your response.
Это сработало! ИИ наконец начал возвращать ответы со ссылками.
Вскрывшаяся вторая проблема
Однако, даже после этих правок бот иногда всё ещё “забывал” вставлять ссылки — например, когда спрашивали “о компании”, а не о продукции. Он считал, что текста про компанию достаточно. А ссылки на сайты, видеоэкскурсии, YouTube он просто игнорировал.
-
Пришлось явно прописать:
You MUST always include all relevant media links in your response, even if the answer seems complete without them. -
В цепочке рассуждения (chain-of-thought) добавил явный шаг:
Check all available knowledge chunks for relevant media links, even if they are not in the same chunk as the main answer. -
Добавил еще один «контрольный»
выстрелмедиапромпт в цепочку рассуждений:
Scan the retrieved chunks again and extract all media links related to the user's question. Add them to the final answer in markdown format.
Выводы
- Просто переводить промпт с русского на английский недостаточно. Даже вредно! Похоже у русского языка директивность выше по умолчанию. В английском надо прямо говорить, что модель обязана что-то делать.
- Слово “relevant” может сыграть злую шутку — модель может сама решать, «релевантно или нет». Лучше писать:
“Include all media links related to the topic, even if the answer seems complete without them.” - Если используете RAG — убедитесь, что промпт анализирует все чанки, не только первый. Ведь, ссылки могут быть где угодно.
- Markdown-ссылки с описанием (пример:
[описание](url)) работают отлично, если по описанию определяется, что в них внутри.
Потратил на всё это немало времени, но теперь мой ассистент:
- даёт полный ответ;
- всегда вставляет ссылки на видео, изображения и прочий контент;
- не забывает ни одну полезную деталь.
Надеюсь, кому-то это сэкономит пару часов экспериментов.
Удачи с вашими LLM! ![]()