0Pricing
AI Prompt Engineering · Lezione

Richiedere tabelle e dati strutturati

Richieda tabelle Markdown e output strutturati per le attività di confronto

Richiedere tabelle e dati strutturati è una lezione AI Prompt Engineering gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AI Prompt Engineering, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Prompt Engineering include 4 lezioni in totale.

Le tabelle come formato di output

Le tabelle sono uno dei formati di output più utili dell'IA per le informazioni comparative. Rendono facilmente consultabili le relazioni tra gli elementi e consentono un rapido confronto affiancato.

Per ottenere tabelle di qualità, specifichi i nomi esatti delle colonne, cosa debba contenere ciascuna colonna e quante righe includere.

Richiesta di una tabella di base

Lo schema standard per richiedere una tabella Markdown:

'Formatta come tabella Markdown con le colonne: [Column1], [Column2], [Column3].'

Le tabelle Markdown vengono visualizzate in GitHub, Notion, Obsidian e nella maggior parte delle interfacce di chat IA. Usano il carattere barra verticale per separare le colonne e i trattini per separare le intestazioni.

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)

Tabelle comparative

Le tabelle comparative sono ideali quando deve scegliere tra diverse opzioni. Le richieda con formule come:

  • 'Crea una tabella comparativa di X, Y e Z...'
  • 'Crea una tabella di confronto delle funzionalità per...'
  • 'Crea una tabella di pro e contro che confronti...'

Indichi le opzioni come righe e i criteri di valutazione come colonne, oppure viceversa, a seconda di quale disposizione risulti più leggibile per il Suo contenuto.

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)

Tabelle a matrice delle funzionalità

Una matrice delle funzionalità è una tabella in cui le righe rappresentano gli elementi e le colonne le funzionalità; ogni cella contiene un segno di spunta, un punteggio o un breve valore. Usi comuni:

  • Confronto delle funzionalità del software tra versioni o prodotti concorrenti
  • Confronto dei piani per prodotti SaaS
  • Matrici di compatibilità tecnologica (quale browser o sistema operativo supporta cosa)

Richiesta: 'Crea una tabella a matrice delle funzionalità con segni di spunta (sì/no) per ciascuna funzionalità.'

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)

Tabelle di dati dal testo

Un approccio molto efficace consiste nel chiedere al modello di estrarre informazioni da un testo non strutturato e formattarle come tabella. Si tratta essenzialmente di analisi dei dati basata sull'IA:

'Estrai dal testo seguente le informazioni indicate e formattale come tabella con le colonne X, Y, Z.'

Specifichi sempre esplicitamente i nomi delle colonne per ottenere una struttura coerente.

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)

Output CSV

Quando ha bisogno di dati da importare in un foglio di calcolo, in un database o da elaborare ulteriormente, richieda un output CSV (valori separati da virgole) invece di tabelle Markdown.

'Restituisci righe CSV con una riga di intestazione' oppure 'Formatta come CSV. Prima riga: intestazioni delle colonne.'

Il CSV è portabile e può essere incollato direttamente in Excel o Google Sheets, oppure analizzato dal codice.

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)

Output strutturato JSON

Per l'uso programmatico, JSON è spesso il formato migliore. Lo richieda esplicitamente:

'Restituisci un oggetto JSON con le chiavi X, Y, Z.'
'Restituisci un array JSON in cui ogni elemento abbia le proprietà A, B, C.'

Alcuni modelli supportano una modalità JSON nativa che garantisce un output JSON valido; tuttavia, anche senza questa modalità, una richiesta esplicita di JSON accompagnata dalla descrizione dello schema produce solitamente un output analizzabile.

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)

Specificare le regole per il contenuto delle celle

La qualità di una tabella migliora significativamente quando si definisce cosa è consentito inserire in ogni cella:

  • 'Massimo 5 parole per cella' — evita celle prolisse che compromettono la formattazione della tabella
  • 'Solo Sì/No' — matrice binaria delle funzionalità
  • 'Solo importo in dollari, senza spiegazioni' — tabelle dei prezzi essenziali
  • 'Solo una parola' — brevità obbligatoria
  • 'Valutazione da 1 a 10' — tabelle con punteggio numerico
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)

Tabelle trasposte

A volte l'orientamento predefinito di righe e colonne non è adatto ai dati. Una tabella trasposta scambia righe e colonne ed è utile quando si hanno molti attributi ma pochi elementi.

Richiesta: 'Crea una tabella con gli elementi come colonne e gli attributi come righe' oppure 'Trasponi la tabella in modo che X siano le colonne.'

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)

Quando NON utilizzare le tabelle

Le tabelle non sono sempre il formato più adatto. Le eviti quando:

  • Ha solo 2 elementi: un breve confronto in forma di paragrafo è più efficace
  • Il contenuto delle celle varia notevolmente in lunghezza: le tabelle diventano illeggibili
  • L'output verrà utilizzato in un ambiente di testo semplice (corpo di un'e-mail, SMS)
  • Sta generando contenuti destinati alla riproduzione vocale
  • Le relazioni sono gerarchiche, non tabellari (utilizzi invece elenchi annidati)
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()

Combinare le tabelle con altri formati

Le tabelle si abbinano bene a testo descrittivo o elenchi circostanti. Una struttura comune per un output di qualità è:

  1. Breve paragrafo introduttivo che spiega i criteri di confronto
  2. La tabella per una consultazione rapida
  3. Un paragrafo di raccomandazione con il verdetto finale

Lo richieda esplicitamente: 'Includi: introduzione di 1 frase, la tabella, poi una raccomandazione di 2 frasi.'

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)

Verifica delle conoscenze

Uno sviluppatore desidera generare dati di esempio per testare un database utilizzando l'IA. Ha bisogno di 10 righe di dati sui clienti con ID, nome, e-mail, Paese e piano dell'account. Qual è il formato di output migliore da richiedere?

Riepilogo: tabelle e dati strutturati

Le richieste di tabelle e dati strutturati sbloccano alcuni dei formati di output più utili dell'IA. Tecniche fondamentali:

  • Specifichi i nomi esatti delle colonne per ottenere una struttura coerente
  • Utilizzi le tabelle comparative per analizzare le opzioni affiancate
  • Utilizzi il CSV quando i dati verranno elaborati programmaticamente
  • Utilizzi il JSON per l'integrazione con le API e l'utilizzo da parte del codice
  • Definisca le regole per il contenuto delle celle: numero massimo di parole, valori consentiti, scala di valutazione
  • Valuti la trasposizione quando gli elementi sono più numerosi degli attributi
  • Combini le tabelle con testo descrittivo per creare documenti completi e leggibili

Domande Frequenti

La lezione «Richiedere tabelle e dati strutturati» è gratuita?

Sì — il testo completo di «Richiedere tabelle e dati strutturati» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AI Prompt Engineering, passa a CoddyKit PRO. Il corso AI Prompt Engineering include 4 lezioni in totale.

Cosa imparerò in «Richiedere tabelle e dati strutturati»?

Richieda tabelle Markdown e output strutturati per le attività di confronto Eserciti AI Prompt Engineering con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare AI Prompt Engineering?

Non è richiesta alcuna esperienza precedente. AI Prompt Engineering su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Richiedere tabelle e dati strutturati»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione AI Prompt Engineering?

Sì. Ogni lezione AI Prompt Engineering include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Richiedere elenchi e punti elenco
  2. Richiedere tabelle e dati strutturati
  3. Formattazione Markdown nei prompt
  4. Testo semplice o output formattato
← Torna a AI Prompt Engineering