Tekoälyn prompt engineering · Oppitunti

Taulukoiden ja jäsenneltyjen tietojen pyytäminen

Pyytäkää markdown-taulukoita ja jäsenneltyä tulostetta vertailutehtäviä varten.

Oppitunti 2/413 vaihetta

Taulukoiden ja jäsenneltyjen tietojen pyytäminen on ilmainen Tekoälyn prompt engineering-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Tekoälyn prompt engineering-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Tekoälyn prompt engineering-kurssilla on yhteensä 4 oppituntia.

Taulukot tulostusmuotona

Taulukot ovat yksi hyödyllisimmistä tekoälyn tulostusmuodoista vertailutietoja varten. Niiden avulla kohteiden välisiä suhteita on helppo silmäillä, ja vaihtoehtoja voi analysoida nopeasti rinnakkain.

Hyvän taulukon saamiseksi määrittäkää sarakkeiden tarkat nimet, kunkin sarakkeen sisältö ja sisällytettävien rivien määrä.

Taulukon peruspyyntö

Tavallinen tapa pyytää markdown-taulukkoa:

'Muotoilkaa markdown-taulukoksi, jonka sarakkeet ovat: [Column1], [Column2], [Column3].'

Markdown-taulukot näkyvät GitHubissa, Notionissa, Obsidianissa ja useimmissa tekoälyn chat-käyttöliittymissä. Niissä pystyviivat erottavat sarakkeet ja viivat toimivat otsikoiden erottimina.

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)

Vertailutaulukot

Vertailutaulukot sopivat erinomaisesti vaihtoehtojen välillä valitsemiseen. Pyytäkää niitä esimerkiksi näin:

  • 'Luokaa vertailutaulukko kohteista X, Y ja Z...'
  • 'Tehkää ominaisuuksien vertailutaulukko aiheesta...'
  • 'Luokaa hyvien ja huonojen puolten taulukko, jossa verrataan...'

Nimetkää vaihtoehdot riveiksi ja arviointikriteerit sarakkeiksi – tai päinvastoin sen mukaan, kumpi asettelu tekee sisällöstä helpommin luettavan.

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)

Ominaisuusmatriisit

Ominaisuusmatriisi on taulukko, jossa rivit ovat kohteita ja sarakkeet ominaisuuksia. Kukin solu sisältää valintamerkin, pistemäärän tai lyhyen arvon. Yleisiä käyttötapoja:

  • Ohjelmiston ominaisuuksien vertailu eri versioiden tai kilpailijoiden välillä
  • SaaS-tuotteiden tilauspakettien vertailu
  • Teknologian tukimatriisit (mitä selainta tai käyttöjärjestelmää mikäkin tukee)

Pyytäkää esimerkiksi: 'Luokaa ominaisuusmatriisitaulukko, jossa kunkin ominaisuuden kohdalla käytetään valintamerkkejä (kyllä/ei).'

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)

Tekstistä muodostettavat tietotaulukot

Yksi tehokas tapa on pyytää mallia poimimaan tietoja jäsentämättömästä tekstistä ja muotoilemaan ne taulukoksi. Kyse on käytännössä tekoälyavusteisesta tietojen jäsentämisestä:

'Poimikaa seuraavat tiedot alla olevasta tekstistä ja muotoilkaa ne taulukoksi, jonka sarakkeet ovat X, Y ja Z.'

Määrittäkää sarakkeiden nimet aina eksplisiittisesti, jotta rakenne pysyy yhdenmukaisena.

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-tuloste

Kun tarvitsette tietoja taulukkolaskentaan, tietokantaan tai jatkokäsittelyyn, pyytäkää markdown-taulukon sijaan CSV-tuloste.

'Tulostakaa CSV-riveinä, mukana otsikkorivi' tai 'Muotoilkaa CSV-muotoon. Ensimmäinen rivi: sarakeotsikot.'

CSV on siirrettävä muoto, jonka voi liittää suoraan Exceliin tai Google Sheetsiin tai jonka koodi voi jäsentää.

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)

Rakenteinen JSON-tuloste

Ohjelmalliseen käyttöön JSON on usein paras muoto. Pyytäkää sitä selkeästi:

'Tulostakaa JSON-objektina, jonka avaimet ovat X, Y ja Z.'
'Palauttakaa JSON-taulukko, jonka jokaisella alkiolla on ominaisuudet A, B ja C.'

Jotkin mallit tukevat natiivia JSON-tilaa, joka takaa kelvollisen JSON-tulosteen. Ilman sitäkin selkeä JSON-pyyntö ja skeeman kuvaus tuottavat yleensä jäsennettävän tulosteen.

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)

Solun sisältöä koskevien sääntöjen määrittäminen

Taulukon laatu paranee merkittävästi, kun määritätte, mitä kussakin solussa saa olla:

  • 'Korkeintaan 5 sanaa solua kohden' – estää taulukkomuotoilun rikkovat liian pitkät solut
  • 'Vain kyllä/ei' – binaarinen ominaisuusmatriisi
  • 'Vain dollarimäärä, ei selitystä' – selkeät hintataulukot
  • 'Vain yksi sana' – pakottaa tiiviyteen
  • 'Arvio asteikolla 1–10' – numeeriset pisteytystaulukot
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)

Transponoidut taulukot

Joskus oletusarvoinen rivi- ja sarakesuunta ei sovi tietoihinne. Transponoitu taulukko vaihtaa rivit ja sarakkeet keskenään – siitä on hyötyä, kun määritteitä on paljon mutta kohteita vähän.

Pyytäkää esimerkiksi 'Luokaa taulukko, jossa kohteet ovat sarakkeina ja määritteet riveinä' tai 'Transponoikaa taulukko niin, että X ovat sarakkeina.'

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)

Milloin taulukoita EI pidä käyttää

Taulukot eivät aina ole oikea muoto. Välttäkää niitä, kun:

  • Teillä on vain 2 kohdetta – lyhyt kappalevertailu on selkeämpi
  • Solujen sisältö vaihtelee huomattavasti pituudeltaan – taulukoista tulee vaikealukuisia
  • Tulosta käytetään pelkkää tekstiä tukevassa ympäristössä (sähköpostiviestissä tai tekstiviestissä)
  • Luotte sisältöä puhetoistoa varten
  • Suhteet ovat hierarkkisia eivätkä taulukkomaisia (käyttäkää sen sijaan sisäkkäisiä luetteloita)
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()

Taulukoiden yhdistäminen muihin muotoihin

Taulukot sopivat hyvin yhteen ympäröivän leipätekstin tai luetteloiden kanssa. Yleinen laadukas tulosterakenne:

  1. Lyhyt johdantokappale, joka selittää vertailuperusteet
  2. Taulukko nopeaa silmäilyä varten
  3. Suosituskappale lopullisine johtopäätöksineen

Pyytäkää tätä erikseen: 'Sisällyttäkää 1 virkkeen johdanto, taulukko ja sen jälkeen 2 virkkeen suositus.'

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)

Tietotesti

Kehittäjä haluaa luoda tekoälyn avulla testitietoja tietokantaa varten. Hän tarvitsee 10 riviä asiakastietoja, joissa ovat ID, nimi, sähköpostiosoite, maa ja tilitaso. Mitä tulostusmuotoa kannattaa pyytää?

Taulukot ja rakenteiset tiedot – yhteenveto

Taulukot ja rakenteisia tietoja koskevat pyynnöt avaavat käyttöön tekoälyn hyödyllisimpiä tulostusmuotoja. Keskeiset tekniikat:

  • Määrittäkää sarakkeiden tarkat nimet, jotta rakenne pysyy yhdenmukaisena
  • Käyttäkää vertailutaulukoita vaihtoehtojen rinnakkaiseen analysointiin
  • Käyttäkää CSV:tä, kun tietoja käsitellään ohjelmallisesti
  • Käyttäkää JSONia API-integraatioihin ja koodin käsiteltäväksi
  • Määrittäkää solun sisältöä koskevat säännöt: enimmäissanamäärä, sallitut arvot ja arviointiasteikko
  • Harkitkaa transponointia, kun kohteita on enemmän kuin määritteitä
  • Yhdistäkää taulukot leipätekstiin, jotta asiakirjoista tulee kattavia ja helppolukuisia
Aloita maksutta

Opi Tekoälyn prompt engineering tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
53
Oppitunnit
199

Usein kysytyt kysymykset

Onko oppitunti ”Taulukoiden ja jäsenneltyjen tietojen pyytäminen” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Tekoälyn prompt engineering-oppimispolun 3 oppituntia, myös oppitunnin “Taulukoiden ja jäsenneltyjen tietojen pyytäminen”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Tekoälyn prompt engineering-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Taulukoiden ja jäsenneltyjen tietojen pyytäminen”?

Pyytäkää markdown-taulukoita ja jäsenneltyä tulostetta vertailutehtäviä varten. Harjoittelet Tekoälyn prompt engineering-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Tekoälyn prompt engineering-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Tekoälyn prompt engineering-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Taulukoiden ja jäsenneltyjen tietojen pyytäminen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Tekoälyn prompt engineering-oppitunnilla?

Kyllä. Jokainen Tekoälyn prompt engineering-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Luetteloiden ja luetelmien pyytäminen
  2. Taulukoiden ja jäsenneltyjen tietojen pyytäminen
  3. Markdown-muotoilu prompteissa
  4. Pelkkä teksti vai muotoiltu tuloste
← Takaisin: Tekoälyn prompt engineering