Запрос таблиц и структурированных данных
Запрашивайте таблицы в формате Markdown и структурированный вывод для задач сравнения
«Запрос таблиц и структурированных данных» — бесплатный урок AI Prompt Engineering на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Prompt Engineering, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Prompt Engineering содержит 4 уроков всего.
Таблицы как формат вывода
Таблицы — один из самых полезных форматов вывода ИИ для сравнительной информации. Они делают связи между элементами удобными для быстрого просмотра и позволяют быстро сопоставлять их.
Чтобы получить хорошую таблицу, укажите точные названия столбцов, что должно содержаться в каждом столбце и сколько строк нужно включить.
Базовый запрос таблицы
Стандартный шаблон запроса таблицы в формате разметки:
«Оформите в виде таблицы разметки со столбцами: [Столбец1], [Столбец2], [Столбец3].»
Таблицы в разметке отображаются в GitHub, Notion, Obsidian и большинстве интерфейсов чатов с ИИ. Для разделения столбцов в них используются вертикальные черты, а для разделения заголовков — дефисы.
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
response = client.chat.completions.create(
model='gpt-4o',
messages=[{
'role': 'user',
'content': (
'Compare Python, JavaScript, and Go for building REST APIs. '
'Format as a markdown table with columns: '
'Language, Performance, Learning Curve, Ecosystem, Best Use Case. '
'One row per language. Be concise — max 8 words per cell.'
)
}]
)
print(response.choices[0].message.content)Сравнительные таблицы
Сравнительные таблицы идеально подходят для выбора между вариантами. Запросите их так:
- «Создайте сравнительную таблицу для X против Y против Z…»
- «Составьте таблицу сравнения возможностей для…»
- «Постройте таблицу преимуществ и недостатков для сравнения…»
Укажите варианты в строках, а критерии оценки — в столбцах, или наоборот, в зависимости от того, какая компоновка будет понятнее для Вашего содержания.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=400,
messages=[{
'role': 'user',
'content': (
'Create a comparison table for three cloud database options: '
'Supabase, PlanetScale, and Neon.\n'
'Rows: one per database.\n'
'Columns: Free tier storage, Scaling model, Pricing at 10GB, '
'Branching support, SQL compatibility.\n'
'Format: markdown table. Cell content: max 6 words each.'
)
}]
)
print(response.content[0].text)Таблицы-матрицы возможностей
Матрица возможностей — это таблица, в которой строки соответствуют элементам, а столбцы — возможностям; в каждой ячейке указывается галочка, оценка или краткое значение. Распространённые варианты использования:
- Сравнение возможностей программного обеспечения между версиями или конкурентами
- Сравнение тарифов продуктов SaaS
- Матрицы поддержки технологий: какой браузер или OS что поддерживает
Запрос: «Создайте таблицу-матрицу возможностей с галочками (да/нет) для каждой возможности».
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
response = client.chat.completions.create(
model='gpt-4o',
messages=[{
'role': 'user',
'content': (
'Create a feature matrix table for our SaaS pricing tiers: Free, Pro, Enterprise.\n'
'Rows: API access, Custom domains, SSO login, SLA guarantee, Priority support, '
'Data export, Team collaboration, Audit logs.\n'
'Columns: Free, Pro, Enterprise.\n'
'Use: YES / NO / PARTIAL for each cell.\n'
'Format: markdown table.'
)
}]
)
print(response.choices[0].message.content)Таблицы данных из текста
Один из эффективных подходов — попросить модель извлечь информацию из неструктурированного текста и оформить её в виде таблицы. По сути, это разбор данных с помощью ИИ:
«Извлеките следующую информацию из приведённого ниже текста и оформите её в виде таблицы со столбцами X, Y, Z.»
Всегда явно указывайте названия столбцов, чтобы получить единообразную структуру.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
meeting_notes = (
'Sarah will handle the API documentation by next Friday. '
'John needs to fix the authentication bug — aim for Wednesday. '
'Maria is responsible for the mobile UI update, due in 2 weeks. '
'The DevOps team (lead: Alex) must set up staging by Monday. '
'Carlos will write unit tests — deadline: end of sprint (Thursday).'
)
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=300,
messages=[{
'role': 'user',
'content': (
'Extract all action items from the meeting notes below. '
'Format as a markdown table with columns: Task, Owner, Deadline.\n\n'
f'Meeting notes:\n{meeting_notes}'
)
}]
)
print(response.content[0].text)Вывод в формате CSV
Если Вам нужны данные для импорта в электронную таблицу, базу данных или дальнейшей обработки, запросите вывод в формате CSV, а не в виде таблицы разметки.
«Выведите строки CSV со строкой заголовков» или «Оформите в формате CSV. Первая строка: заголовки столбцов».
CSV переносим и его можно напрямую вставить в Excel или Google Таблицы либо обработать кодом.
import openai
import csv
import io
client = openai.OpenAI(api_key='sk-your-key-here')
response = client.chat.completions.create(
model='gpt-4o',
messages=[{
'role': 'user',
'content': (
'Generate 5 sample customer support tickets for an e-commerce store. '
'Output as CSV with header row. '
'Columns: ticket_id, customer_name, issue_type, priority, status. '
'issue_type values: SHIPPING / BILLING / PRODUCT / RETURNS. '
'priority values: LOW / MEDIUM / HIGH. '
'status values: OPEN / IN_PROGRESS / RESOLVED. '
'No markdown formatting — raw CSV only.'
)
}]
)
csv_text = response.choices[0].message.content.strip()
reader = csv.DictReader(io.StringIO(csv_text))
for row in reader:
print(row)Структурированный вывод JSON
Для программного использования JSON часто является лучшим форматом. Явно запросите его:
«Выведите объект JSON с ключами X, Y, Z.»
«Верните массив JSON, где каждый элемент имеет свойства A, B, C.»
Некоторые модели поддерживают встроенный режим JSON, гарантирующий корректный вывод JSON, но даже без него явный запрос JSON и описание схемы обычно дают данные, пригодные для разбора.
import anthropic
import json
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=400,
messages=[{
'role': 'user',
'content': (
'Generate 3 fictional user profiles for testing a fitness app. '
'Output as a JSON array. '
'Each object must have exactly these keys: '
'id (integer), name (string), age (integer 18-65), '
'fitness_level ("BEGINNER" | "INTERMEDIATE" | "ADVANCED"), '
'goals (array of strings, max 3), weekly_sessions (integer 1-7). '
'Output raw JSON only — no explanation, no markdown code fences.'
)
}]
)
try:
data = json.loads(response.content[0].text)
print(f'Parsed {len(data)} profiles successfully.')
for profile in data:
print(f' {profile["name"]}, {profile["age"]}, {profile["fitness_level"]}')
except json.JSONDecodeError as e:
print('JSON parse error:', e)Правила для содержимого ячеек
Качество таблицы значительно повышается, если определить, что разрешено помещать в каждую ячейку:
- «Максимум 5 слов в ячейке» — не позволяет подробному тексту нарушить форматирование таблицы
- «Только да/нет» — двоичная матрица возможностей
- «Только сумма в долларах, без пояснений» — аккуратные таблицы цен
- «Только одно слово» — принудительная краткость
- «Оценка от 1 до 10» — таблицы с числовыми оценками
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
response = client.chat.completions.create(
model='gpt-4o',
messages=[{
'role': 'user',
'content': (
'Rate the following programming languages for these criteria.\n'
'Languages (rows): Python, Rust, TypeScript, Go.\n'
'Criteria (columns): Speed, Safety, Developer Experience, Job Market, Learning Curve.\n'
'Cell format: integer score 1-10 only. No words, no explanation inside cells.\n'
'After the table, add one sentence explaining your scoring philosophy.'
)
}]
)
print(response.choices[0].message.content)Транспонированные таблицы
Иногда стандартная ориентация строк и столбцов не подходит для Ваших данных. Транспонированная таблица меняет строки и столбцы местами — это полезно, когда атрибутов много, а элементов мало.
Запрос: «Создайте таблицу, в которой элементы будут столбцами, а атрибуты — строками» или «Транспонируйте таблицу так, чтобы X были столбцами».
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=300,
messages=[{
'role': 'user',
'content': (
'Compare two job candidates: Alice and Bob. '
'Create a transposed table where candidates are COLUMNS and attributes are ROWS. '
'Attributes (rows): Years Experience, Primary Language, Education, '
'Previous Employer, Salary Expectation Range. '
'Format: markdown table. Cell content: factual, max 6 words.\n\n'
'Alice: 7 years Python/ML, MS Computer Science MIT, ex-Google, expects $180-220k.\n'
'Bob: 4 years JavaScript/Node, BS from UC Berkeley, ex-Stripe startup, expects $140-170k.'
)
}]
)
print(response.content[0].text)Когда NOT следует использовать таблицы
Таблицы подходят не всегда. Избегайте их, когда:
- У Вас всего 2 элемента — краткое сравнение в абзаце читается лучше
- Содержимое ячеек сильно различается по длине — таблицы становятся нечитаемыми
- Вывод будет использоваться в среде с обычным текстом (теле письма, SMS)
- Вы создаёте содержание для голосового вывода
- Связи имеют иерархический, а не табличный характер (вместо этого используйте вложенные списки)
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
# Table works: structured comparison
table_prompt = (
'Compare MySQL vs PostgreSQL. '
'Format: markdown table, columns: Feature, MySQL, PostgreSQL. '
'6 rows covering: JSON support, Full-text search, Replication, Transactions, License, Best for.'
)
# No table needed: simple 2-option choice with prose reasoning
not_table_prompt = (
'Should I use SQLite or PostgreSQL for a personal hobby project '
'that will have at most 5 users? 2-sentence answer, no table.'
)
for label, prompt in [('TABLE APPROPRIATE', table_prompt), ('TABLE OVERKILL', not_table_prompt)]:
response = client.chat.completions.create(
model='gpt-4o', max_tokens=200,
messages=[{'role': 'user', 'content': prompt}]
)
print(f'--- {label} ---')
print(response.choices[0].message.content.strip()[:300])
print()Сочетание таблиц с другими форматами
Таблицы хорошо сочетаются с окружающим текстом или списками. Распространённая структура качественного вывода:
- Краткий вступительный абзац с объяснением критериев сравнения
- Таблица для быстрого просмотра
- Абзац с рекомендацией и окончательным выводом
Запросите это явно: «Включите: вступление из 1 предложения, таблицу, затем рекомендацию из 2 предложений».
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=500,
messages=[{
'role': 'user',
'content': (
'Compare three Python testing frameworks: pytest, unittest, and nose2. '
'Structure your response as:\n'
'1. One-sentence intro explaining the comparison scope.\n'
'2. Markdown table: columns = Framework, Ease of Use, Plugin Ecosystem, '
'Speed, Community Activity. Rows = one per framework.\n'
'3. One-sentence recommendation for a team starting a new project.'
)
}]
)
print(response.content[0].text)Проверка знаний
Разработчик хочет с помощью ИИ создать примерные данные для тестирования базы данных. Ему нужны 10 строк данных о клиентах с полями ID, имя, адрес электронной почты, страна и тарифный уровень учётной записи. Какой формат вывода лучше всего запросить?
Итоги: таблицы и структурированные данные
Запросы таблиц и структурированных данных открывают доступ к одним из самых полезных форматов вывода ИИ. Основные приёмы:
- Указывайте точные названия столбцов, чтобы получить единообразную структуру
- Используйте сравнительные таблицы для сопоставления вариантов
- Используйте CSV, если данные будут обрабатываться программно
- Используйте JSON для интеграции с API и использования в коде
- Определяйте правила для содержимого ячеек: максимальное количество слов, допустимые значения, шкала оценок
- Рассматривайте транспонирование, когда элементов больше, чем атрибутов
- Сочетайте таблицы с текстом, чтобы создавать полные и удобные для чтения документы
Часто задаваемые вопросы
Урок «Запрос таблиц и структурированных данных» бесплатный?
Да — полный текст урока «Запрос таблиц и структурированных данных» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Prompt Engineering, подпишись на CoddyKit PRO. Курс AI Prompt Engineering содержит 4 уроков всего.
Чему я научусь в уроке «Запрос таблиц и структурированных данных»?
Запрашивайте таблицы в формате Markdown и структурированный вывод для задач сравнения Ты практикуешь AI Prompt Engineering с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать AI Prompt Engineering?
Предыдущий опыт не требуется. AI Prompt Engineering на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Запрос таблиц и структурированных данных»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке AI Prompt Engineering?
Да. Каждый урок AI Prompt Engineering включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Запросы списков и маркированных пунктов
- Запрос таблиц и структурированных данных
- Форматирование Markdown в запросах
- Обычный текст и форматированный вывод