Представьте, что вы читаете инструкцию, написанную сплошным текстом без абзацев, списков и таблиц. Сложно ориентироваться, правда? LLM испытывает схожие трудности, если данные подаются «без структуры».
Современные языковые модели неплохо разбираются в форматах, но только если вы подадите их правильно. В этом уроке мы разберём, как именно LLM интерпретирует структурированные данные — и как сделать так, чтобы она поняла их так же, как вы.
🔍 Что вы узнаете
- Как модели "видят" табличные и форматированные данные
- Почему Markdown и JSON воспринимаются лучше, чем plain text
- Как давать данные, чтобы избежать ошибок парсинга
- Как просить LLM возвращать результат в структурированном виде
- Как подавать CSV и таблицы для надёжного распознавания
🧩 Ключевые термины
- Markdown - Упрощённый язык разметки для структурирования текста: заголовки, списки, таблицы и кодовые блоки.
- JSON - Формат обмена данными с чёткой структурой ключ–значение. Удобен для хранения, передачи и парсинга данных.
- CSV - Табличный формат данных, в котором:
- строки разделяются через
\n, - столбцы — через
,или;. Используется для импорта/экспорта из таблиц.
- строки разделяются через
- Токенизация - Процесс разбиения текста на токены — минимальные единицы (слова, символы, знаки), которые анализирует модель. Чем сложнее структура — тем больше токенов.
🤖 Как LLM видит структурированные данные
LLM — это не Excel, не веб-браузер и не IDE. Она не “видит” визуальную структуру — никаких колонок, ячеек или строк в привычном смысле. Зато она превосходно распознаёт текстовые шаблоны, если структура чётко обозначена в символах.
Думайте о LLM как о читателе-перфекционисте: ей не важно, как это выглядит на экране, но важна предсказуемость формата. Чем ровнее и повторяемее структура — тем лучше она поймёт.
📋 Таблицы = аккуратно выровненные тексты
LLM воспринимает таблицу как последовательность строк, где:
- каждая строка — одна запись,
- каждый столбец — часть строки,
- разделители (
|, пробелы,,) — сигналы, что «вот тут заканчивается одна ячейка и начинается другая».
| Название | Цена | В наличии |
|------------|------|-----------|
| Футболка | 1299 | Да |
| Шорты | 1599 | Нет |
📚 Аналогия: для LLM это похоже на аккуратно составленный список студентов на бумаге — если всё выровнено, прочесть легко.
Важно: если строки сдвинуты, пробелы неравномерны или символы путаются, модель может “ослепнуть” — воспринимать таблицу как обычный текст.
✅ Лучше:
- Использовать Markdown-таблицы (
|+ ), - Выравнивать столбцы,
- Избегать смешанных форматов в одной таблице.
📦 JSON = структура с точным скелетом
JSON — идеальный формат, если нужно передать чёткую вложенность и логику:
{
"user": {
"name": "Иван",
"role": "менеджер"
},
"active": true
}
LLM «любит» JSON, потому что он:
- предсказуем,
- валиден для разбора,
- хорошо подходит для генерации и парсинга.
🧠 Аналогия: JSON — это как чётко заполненная анкета. У каждого вопроса — свой ответ, всё по полочкам.
Советы:
- Используйте
"ключ": значение— без сокращений и лишнего форматирования. - Не смешивайте JSON с обычным текстом — помещайте в отдельный блок.
🗂 Списки = пошаговые инструкции
LLM хорошо воспринимает:
- нумерованные списки (
1.,2.) — сигнализируют последовательность, - маркированные списки (, ) — просто перечисление.
1. Получить заказ
2. Упаковать
3. Отправить клиенту
🧭 Аналогия: модель видит такой список как чеклист или пошаговое руководство — она может:
- продолжить его,
- переписать в другом стиле,
- выделить ключевые действия.
Рекомендации:
- Не прерывайте списки вставками.
- Держите однородную структуру (не чередуйте
1., потом , потом—).
📐 Как улучшить восприятие модели
LLM может быть очень умной, но она не экстрасенс. Чем понятнее и структурированнее вы подаёте данные, тем лучше и точнее будет результат. Представьте, что вы пишете инструкции для помощника-робота, у которого нет глаз, но есть очень хорошая память и логика — ему важно не как красиво, а как чётко.
1. Используйте Markdown-разметку
LLM “понимает” Markdown примерно так же, как человек видит форматированный документ в Google Docs или Notion:
# Заголовкипомогают разделять смысловые блоки.- Таблицы на
|и—делают данные удобными для анализа. - Код-блоки ````` сохраняют точный формат — без искажений.
✅ Пример:
Вот заказы:
| ID | Имя клиента | Сумма |
|----|-------------|--------|
| 1 | Иванов | 3200 ₽ |
| 2 | Смирнова | 4500 ₽ |
📌 Аналогия: Markdown — это как аккуратно оформленный документ для коллеги. Без стилей и графики, но с ясной структурой, где всё видно по заголовкам и таблицам.
👉 В ответ модель без труда рассчитает: "Средний чек: 3850 ₽"
2. Не ломайте формат длинными строками
LLM не любит «ковры» из текста — когда много структурированных данных подряд, но в одну строку. Это мешает ей «увидеть» повторяющиеся паттерны.
❌ Плохо:
{name: "Анна", age: 30, city: "Kazan"} {name: "Игорь", age: 28, city: "Omsk"}
Модель может воспринять это как простой текст и не распарсить.
✅ Хорошо:
[
{ "name": "Анна", "age": 30, "city": "Kazan" },
{ "name": "Игорь", "age": 28, "city": "Omsk" }
]
📌 Аналогия: длинная строка — как список продуктов, записанный без запятых: «молокохлебсыряблока». Форматирование — это как поставить пробелы и знаки препинания, чтобы всё стало ясно.
3. Просите конкретный формат на выходе
Модель умеет возвращать данные в любом виде — но по умолчанию выбирает вольный текст. Если вам нужен таблицей — скажите. Хотите JSON — укажите это явно.
Примеры:
✅ “Сделай таблицу в Markdown” ✅ “Верни ответ в формате JSON: name, age, city” ✅ “Список — маркерами, не абзацем”
📌 Аналогия: это как заказ в кафе. Если вы не сказали, какой гарнир — шеф выберет сам. Лучше уточнить: «С рисом, пожалуйста».
🧪 Гайды: “Научите ИИ читать ваш CSV”
CSV — это простой, но капризный формат. Он выглядит как текст, но несёт в себе структуру таблицы.
Name,Age,Score
Alice,24,88
Bob,27,91
💡 Чтобы модель правильно прочитала CSV:
-
Подавайте его в код-блоке (чтобы сохранить формат).
-
Следите за запятыми — если они внутри текста, оборачивайте значение в кавычки:
Name,Comment Alice,"Good, but not perfect"
Что модель может делать с CSV:
- Подсчитать среднее значение
- Найти записи по условию
- Сконвертировать в JSON
- Превратить в Markdown-таблицу
💡 Пример промпта:
“Проанализируй следующий CSV и выведи средний балл. Верни результат в виде Markdown-таблицы.”
📌 Аналогия: CSV для модели — как список с колонками, начерченный в блокноте. Если строки аккуратные — она поймёт. Если в кучу — запутается.
✅ Примеры промптов
| Цель | Промпт | Ожидаемый формат |
|---|---|---|
| Анализ данных | “Вот таблица заказов (в Markdown). Подсчитай общую сумму.” | Число или строка с пояснением |
| Генерация JSON | “Создай карточку товара. Верни JSON с полями: name, price, tags” | JSON |
| Извлечение из списка | “Вот список клиентов. Укажи, у кого сумма заказа выше 5000 ₽.” | Список или таблица |
| Преобразование CSV | “Преобразуй CSV ниже в Markdown-таблицу” | Markdown-таблица |
❌ Частые ошибки
- Ошибка: Без форматированияКак выглядит: данные идут слитно, без отступов, таблица разваливается Что делать: оборачивайте таблицу или JSON в код-блоки с тройными кавычками (
```) и используйте Markdown-разметку - Ошибка: Плохой CSVКак выглядит: строки склеены, нарушены кавычки, лишние запятые Что делать: проверьте структуру CSV, экранируйте запятые внутри текста (например, оборачивайте значение в кавычки)
- Ошибка: Нет запроса на форматКак выглядит: просите “дай список товаров” — получаете сплошной текст или абзац Что делать: явно указать: “сделай таблицу в Markdown” или “верни результат в JSON”
- Ошибка: Таблица “вручную” пробеламиКак выглядит: данные выровнены пробелами, но ширина неровная, текст “плывёт” Что делать: используйте Markdown-таблицы с символом
|и горизонтальными линиями---, либо форматируйте в код-блоках с фиксированной шириной шрифта
❓ Частые вопросы
Q: Обязательно ли использовать Markdown или JSON?A: Не обязательно, но это помогает. Форматы вроде Markdown и JSON позволяют модели лучше понять структуру данных и уменьшить ошибки при генерации и парсинге.
Q: Почему модель путается в таблице, даже если я дал данные?A: Возможно, таблица представлена в виде обычного текста без чёткой разметки. Используйте Markdown-таблицы или оберните таблицу в код-блок (тройные обратные кавычки).
Q: Можно ли вставлять Google Sheets или Excel напрямую?A: Нет, но вы можете:
- скопировать данные в виде таблицы и отформатировать их в Markdown;
- экспортировать в CSV и вставить как текстовый код-блок;
- или вручную описать структуру таблицы в примерах.
Q: Как быть, если таблица слишком большая?A: Сократите её до 3–5 строк или используйте примеры. Иначе вы рискуете выйти за пределы контекстного окна модели. Модель важнее шаблон, чем полный объём.
Q: Что выбрать — JSON, список или таблицу?A: Зависит от цели:
- для машинной обработки → JSON;
- для визуального анализа → Markdown-таблица;
- для краткого вывода → маркированный список.
📌 Итоги
- LLM понимает таблицы, списки и JSON только если вы подадите их правильно
- Используйте Markdown и код-блоки — это универсальный способ структурирования
- Уточняйте, в каком формате вы хотите ответ — модель подстроится
- Даже простой CSV можно анализировать, если он читаемо оформлен
- Чем яснее структура — тем надёжнее результат
В следующем уроке мы поговорим о метриках качества промптов — как оценить, “хорошо” ли сработала модель, и научиться управлять результатами более объективно.