AI Prompt Engineering · Lekcja

Prośby o tabele i dane strukturalne

Proś o tabele Markdown i ustrukturyzowane wyniki do zadań porównawczych.

Lekcja 2 z 413 kroki

Prośby o tabele i dane strukturalne to bezpłatna lekcja AI Prompt Engineering na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Prompt Engineering, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Prompt Engineering zawiera 4 lekcji w sumie.

Tabele jako format wynikowy

Tabele to jeden z najbardziej użytecznych formatów wynikowych AI w przypadku informacji porównawczych. Ułatwiają szybkie przeglądanie zależności między elementami i analizę ich obok siebie.

Kluczem do uzyskania dobrej tabeli jest określenie dokładnych nazw kolumn, zawartości każdej kolumny oraz liczby wierszy.

Podstawowa prośba o tabelę

Standardowy wzorzec prośby o tabelę Markdowna:

„Sformatuj jako tabelę Markdowna z kolumnami: [Column1], [Column2], [Column3].”

Tabele Markdowna są renderowane w GitHubie, Notion, Obsidianie i większości interfejsów czatu AI. Do oddzielania kolumn używają znaków pionowej kreski, a do oddzielania nagłówków — myślników.

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)

Tabele porównawcze

Tabele porównawcze są idealne podczas wyboru między opcjami. Można poprosić o nie na przykład tak:

  • „Utwórz tabelę porównawczą X vs Y vs Z…”
  • „Utwórz tabelę porównującą funkcje dla…”
  • „Zbuduj tabelę zalet i wad porównującą…”

Należy umieścić opcje w wierszach, a kryteria oceny w kolumnach — lub odwrotnie, zależnie od tego, który układ będzie bardziej czytelny dla danej treści.

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)

Tabele macierzowe funkcji

Macierz funkcji to tabela, w której wiersze przedstawiają elementy, a kolumny — funkcje; każda komórka zawiera znacznik wyboru, ocenę lub krótką wartość. Typowe zastosowania:

  • Porównywanie funkcji oprogramowania między wersjami lub konkurencyjnymi produktami
  • Porównywanie planów produktów SaaS
  • Macierze obsługiwanych technologii (która przeglądarka lub system operacyjny obsługuje daną funkcję)

Prośba może brzmieć: „Utwórz tabelę macierzową funkcji ze znacznikami wyboru (tak/nie) dla każdej funkcji”.

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)

Tabele danych z tekstu

Jednym z przydatnych wzorców jest poproszenie modelu o wyodrębnienie informacji z nieustrukturyzowanego tekstu i sformatowanie ich jako tabeli. Jest to w zasadzie analizowanie danych wspomagane przez AI:

„Wyodrębnij z poniższego tekstu następujące informacje i sformatuj je jako tabelę z kolumnami X, Y, Z.”

Aby uzyskać spójną strukturę, należy zawsze wyraźnie określić nazwy kolumn.

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)

Wynik w formacie CSV

Jeśli potrzebują Państwo danych do zaimportowania do arkusza kalkulacyjnego, bazy danych lub dalszego przetwarzania, należy poprosić o wynik w formacie CSV (wartości rozdzielane przecinkami) zamiast tabeli Markdowna.

„Wyświetl wiersze CSV z wierszem nagłówkowym” lub „Sformatuj jako CSV. Pierwszy wiersz: nagłówki kolumn.”

CSV jest przenośny i można go bezpośrednio wkleić do programu Excel, Arkuszy Google lub przetworzyć za pomocą kodu.

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)

Ustrukturyzowany wynik JSON

W zastosowaniach programistycznych JSON jest często najlepszym formatem. Należy wyraźnie o niego poprosić:

„Wyświetl jako obiekt JSON z kluczami X, Y, Z.”
„Zwróć tablicę JSON, w której każdy element ma właściwości A, B, C.”

Niektóre modele obsługują natywny tryb JSON, który gwarantuje poprawny wynik JSON — jednak nawet bez niego wyraźna prośba o JSON i opis schematu zazwyczaj pozwalają uzyskać wynik możliwy do przeanalizowania.

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)

Określanie zasad dotyczących zawartości komórek

Jakość tabeli znacznie się poprawia, gdy określą Państwo, co może znajdować się w każdej komórce:

  • „Maksymalnie 5 słów w komórce” — zapobiega zbyt rozwlekłym komórkom, które psują formatowanie tabeli
  • „Tylko Tak/Nie” — binarna macierz funkcji
  • „Tylko kwota w dolarach, bez wyjaśnienia” — przejrzyste tabele cen
  • „Tylko jedno słowo” — wymuszona zwięzłość
  • „Ocena od 1 do 10” — tabele z ocenami liczbowymi
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)

Tabele transponowane

Czasami domyślna orientacja wierszy i kolumn nie pasuje do danych. Tabela transponowana zamienia wiersze miejscami z kolumnami — jest przydatna, gdy mają Państwo wiele atrybutów, ale niewiele elementów.

Prośba może brzmieć: „Utwórz tabelę z elementami w kolumnach i atrybutami w wierszach” lub „Transponuj tabelę tak, aby X znajdowały się w kolumnach”.

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)

Kiedy NIE używać tabel

Tabele nie zawsze są właściwym formatem. Należy ich unikać, gdy:

  • Mają Państwo tylko 2 elementy — krótkie porównanie w akapicie będzie czytelniejsze
  • Zawartość komórek znacznie różni się długością — tabele stają się nieczytelne
  • Wynik będzie używany w środowisku zwykłego tekstu (treść wiadomości e-mail, SMS)
  • Generują Państwo treść przeznaczoną do odczytu głosowego
  • Zależności mają charakter hierarchiczny, a nie tabelaryczny (należy użyć list zagnieżdżonych)
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()

Łączenie tabel z innymi formatami

Tabele dobrze współgrają z otaczającym je tekstem lub listami. Typowa struktura wysokiej jakości wyniku:

  1. Krótki akapit wprowadzający, który wyjaśnia kryteria porównania
  2. Tabela umożliwiająca szybkie przeglądanie
  3. Akapit z rekomendacją i ostatecznym werdyktem

Należy wyraźnie o to poprosić: „Uwzględnij: wprowadzenie w jednym zdaniu, tabelę, a następnie rekomendację w 2 zdaniach”.

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)

Sprawdzenie wiedzy

Programista chce wygenerować za pomocą AI przykładowe dane do testowania bazy danych. Potrzebuje 10 wierszy danych klientów z polami ID, name, email, country i account tier. O jaki format wyniku najlepiej poprosić?

Podsumowanie: tabele i dane ustrukturyzowane

Prośby o tabele i dane ustrukturyzowane odblokowują jedne z najbardziej użytecznych formatów wynikowych AI. Najważniejsze techniki:

  • Należy określić dokładne nazwy kolumn, aby uzyskać spójną strukturę
  • Należy używać tabel porównawczych do analizy opcji obok siebie
  • Należy używać CSV, gdy dane będą przetwarzane programistycznie
  • Należy używać JSON do integracji z API i wykorzystywania danych w kodzie
  • Należy określić zasady dotyczące zawartości komórek: maksymalną liczbę słów, dozwolone wartości i skalę ocen
  • Warto rozważyć transponowanie, gdy elementów jest więcej niż atrybutów
  • Należy łączyć tabele z tekstem, aby tworzyć kompletne i czytelne dokumenty
Bezpłatny start

Ucz się AI Prompt Engineering dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
53
Lekcje
199

Często zadawane pytania

Czy lekcja „Prośby o tabele i dane strukturalne” jest bezpłatna?

Tak — pełny tekst „Prośby o tabele i dane strukturalne” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Prompt Engineering, przejdź na CoddyKit PRO. Kurs AI Prompt Engineering zawiera 4 lekcji w sumie.

Co nauczysz się w „Prośby o tabele i dane strukturalne”?

Proś o tabele Markdown i ustrukturyzowane wyniki do zadań porównawczych. Ćwiczysz AI Prompt Engineering z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć AI Prompt Engineering?

Nie wymagamy żadnego doświadczenia. AI Prompt Engineering w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Prośby o tabele i dane strukturalne”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji AI Prompt Engineering?

Tak. Każda lekcja AI Prompt Engineering zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Prośby o listy i wypunktowania
  2. Prośby o tabele i dane strukturalne
  3. Formatowanie Markdown w promptach
  4. Zwykły tekst a formatowany wynik
← Powrót do AI Prompt Engineering