AI Prompt Engineering · Lezione

Testo semplice o output formattato

Scopra quando richiedere testo semplice e pulito invece di un output Markdown avanzato

Lezione 4 di 413 passaggi

Testo semplice o output formattato è una lezione AI Prompt Engineering gratuita su CoddyKit. Questa è la lezione 4 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.

Il caso del testo semplice

La formattazione Markdown è potente, ma non è sempre la scelta giusta. Molte applicazioni reali richiedono testo pulito e non formattato, in cui i simboli Markdown compaiono come caratteri letterali anziché come formattazione visualizzata.

Sapere quando richiedere testo semplice è importante quanto sapere come richiedere una formattazione avanzata.

Quando è richiesto il testo semplice

Utilizzi l'output in testo semplice quando l'ambiente non visualizza Markdown:

  • Testi per e-mail: la maggior parte dei client di posta mostra gli asterischi grezzi
  • SMS e notifiche push: non supportano la formattazione
  • Output vocale: la sintesi vocale legge '** grassetto **' alla lettera
  • Campi di CRM e help desk: molti non visualizzano Markdown
  • Elaborazione di dati tramite API: quando il testo verrà memorizzato o sottoposto a ulteriori elaborazioni
  • Campi di input di sistemi legacy: solo testo semplice
import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=200,
    messages=[{
        'role': 'user',
        'content': (
            'Write a 120-character push notification for a flash sale ending in 2 hours. '
            'Plain text only — no emojis, no markdown, no asterisks, no special characters. '
            'Must include: urgency, discount percentage (30%), and category (electronics). '
            'Output the notification text only — nothing else.'
        )
    }]
)
print(response.content[0].text)

Richiedere esplicitamente testo semplice

In molti contesti, i modelli di IA producono per impostazione predefinita output ricchi di Markdown. Per ottenere testo realmente semplice, deve specificarlo esplicitamente e spesso indicare anche i simboli da evitare:

  • 'Solo testo semplice, senza formattazione Markdown'
  • 'Niente asterischi, niente simboli cancelletto, niente simboli per gli elenchi puntati'
  • 'Niente intestazioni, niente grassetto, niente elenchi: solo paragrafi di prosa scorrevole'
  • 'Rimuova tutta la formattazione e produca l'output come se stesse scrivendo in Notepad'
import openai

client = openai.OpenAI(api_key='sk-your-key-here')

# Without plain text instruction — likely gets markdown
default_prompt = 'Explain what a webhook is in 100 words.'

# With explicit plain text instruction
plain_prompt = (
    'Explain what a webhook is in 100 words. '
    'Output format: plain text only. No markdown. No asterisks. No headers. '
    'No bullet points. Just continuous prose paragraphs.'
)

for label, prompt in [('DEFAULT (likely markdown)', default_prompt), ('EXPLICIT PLAIN TEXT', plain_prompt)]:
    response = client.chat.completions.create(
        model='gpt-4o', max_tokens=150,
        messages=[{'role': 'user', 'content': prompt}]
    )
    print(f'--- {label} ---')
    print(response.choices[0].message.content)
    print()

Testo semplice per le e-mail

La scrittura di testi per e-mail è uno dei casi d'uso più comuni del testo semplice. Sebbene alcuni client di posta supportino la formattazione HTML, il testo generato dall'IA dovrebbe arrivare come prosa pulita, che un editor umano possa incollare direttamente in un client di posta o in un CRM senza doverla ripulire.

Specifichi: 'Scriva il corpo dell'e-mail in testo semplice. Niente Markdown. Niente asterischi per il grassetto. Niente trattini per gli elenchi. Utilizzi frasi numerate o interruzioni di riga invece degli elenchi.'

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': (
            'Write a 3-paragraph re-engagement email for inactive newsletter subscribers. '
            'Context: SaaS analytics tool, subscriber inactive for 60 days.\n'
            'Format requirements:\n'
            '- Plain text only — no asterisks, no pound signs, no bullet symbols\n'
            '- Paragraph 1: acknowledge absence, create curiosity\n'
            '- Paragraph 2: one new feature they missed\n'
            '- Paragraph 3: CTA with a direct link placeholder [LINK]\n'
            '- No subject line — body only'
        )
    }]
)
print(response.content[0].text)

Paragrafi di prosa scorrevole

Oltre a evitare i simboli Markdown, per 'prosa scorrevole' si intende organizzare le idee in frasi fluide anziché in punti elenco frammentari.

Una prosa efficace:

  • Utilizza parole di transizione per collegare le idee, come tuttavia, inoltre e di conseguenza
  • Varia la lunghezza delle frasi per creare ritmo
  • Raggruppa le idee correlate in paragrafi coerenti
  • Evita di iniziare ogni frase con un sostantivo

Richiesta: 'Scriva in paragrafi di prosa scorrevole: niente elenchi, niente intestazioni, frasi fluide con parole di transizione.'

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

prose_prompt = (
    'Explain the advantages of using Docker for development environments. '
    'Write in 3 clean prose paragraphs. '
    'Requirements:\n'
    '- No bullet points or numbered lists\n'
    '- No markdown headers\n'
    '- Use transition words between sentences and paragraphs\n'
    '- Vary sentence length — mix short and long\n'
    '- 150 words total maximum'
)

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{'role': 'user', 'content': prose_prompt}]
)
print(response.choices[0].message.content)

Testo semplice per l'output vocale

I sistemi di sintesi vocale leggono tutto alla lettera. Se l'output dell'IA verrà pronunciato ad alta voce:

  • Eviti tutti i simboli Markdown
  • Eviti le abbreviazioni, perché il TTS potrebbe non espanderle
  • Scriva per esteso i numeri quando opportuno
  • Utilizzi le virgole per creare pause naturali
  • Eviti le parentesi, che il TTS spesso legge in modo innaturale
  • Scriva per esteso i caratteri speciali, ad esempio ('@' → 'chiocciola')
import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=200,
    messages=[{
        'role': 'user',
        'content': (
            'Write a 45-second spoken weather briefing for London today. '
            'Conditions: 12 degrees Celsius, light rain, wind 15 km/h from the southwest.\n'
            'Format for voice output:\n'
            '- No markdown symbols of any kind\n'
            '- No parentheses\n'
            '- No abbreviations (write "kilometres per hour" not "km/h")\n'
            '- Natural spoken rhythm — use commas for pause points\n'
            '- Write numbers as words when under ten'
        )
    }]
)
print(response.content[0].text)

Rimuovere Markdown dall'output esistente

A volte si ottiene un output Markdown da una chiamata all'IA e lo si deve ripulire per utilizzarlo in un contesto diverso. È possibile utilizzare una seconda chiamata all'IA specificamente per rimuovere la formattazione:

'Rimuova tutta la formattazione Markdown dal testo seguente. Sostituisca **grassetto** con testo semplice, rimuova le intestazioni #, trasformi i punti elenco in frasi numerate e rimuova tutti gli asterischi e i simboli cancelletto. Produca esclusivamente testo semplice e pulito.'

import openai
import re

client = openai.OpenAI(api_key='sk-your-key-here')

markdown_text = (
    '## Key Benefits\n'
    '- **Faster deployment** with Docker containers\n'
    '- **Consistent environments** across dev and prod\n'
    '- Reduced *configuration drift* between machines\n'
    '### Getting Started\n'
    'Run docker-compose up to start all services.'
)

# Option 1: Ask AI to strip
response = client.chat.completions.create(
    model='gpt-4o',
    max_tokens=150,
    messages=[{
        'role': 'user',
        'content': (
            'Remove all markdown formatting from the text below. '
            'Keep all the information but strip: **, ##, ###, -, *, backticks. '
            'Convert bullet lists to flowing sentences. Output plain text only.\n\n'
            + markdown_text
        )
    }]
)
print('AI-stripped:', response.choices[0].message.content.strip())

# Option 2: Simple regex strip (for code-based pipelines)
import re
clean = re.sub(r'[#*]', '', markdown_text).strip()
print('Regex-stripped:', clean)

Testo semplice nei messaggi di sistema

Per gli assistenti IA che producono costantemente output destinato ad ambienti di testo semplice, imposti la regola di formattazione una sola volta nel messaggio di sistema invece di ripeterla in ogni messaggio dell'utente.

È l'approccio più semplice per le applicazioni di produzione quando si conosce in anticipo l'ambiente di visualizzazione.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

# System message enforces plain text for all responses
plain_text_system = (
    'You are a helpful assistant embedded in a mobile push notification system. '
    'All your responses are displayed as plain text in mobile notifications. '
    'ALWAYS follow these formatting rules:\n'
    '- Never use markdown (no **, no #, no -, no backtick, no *, no _)\n'
    '- Never use bullet points or numbered lists\n'
    '- Write in 1-2 complete sentences only\n'
    '- Maximum 120 characters per response\n'
    '- No emojis'
)

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=64,
    system=plain_text_system,
    messages=[
        {'role': 'user', 'content': 'Notify user their order has shipped and will arrive in 2 days.'}
    ]
)
print(response.content[0].text)

Quadro decisionale per la formattazione

Utilizzi questo rapido quadro decisionale prima di richiedere qualsiasi formato di output:

  1. Dove verrà inviato l'output? Interfaccia web, e-mail, terminale, voce o database
  2. L'ambiente visualizza Markdown? Sì → utilizzi Markdown. No → testo semplice.
  3. Lo leggerà una persona? Sì → lo strutturi per facilitarne la consultazione. No → lo ottimizzi per l'analisi automatica.
  4. Il codice lo elaborerà? Sì → JSON o CSV, senza prosa.
  5. Verrà pronunciato? Sì → testo semplice adatto alla sintesi vocale, senza abbreviazioni.
def choose_format(environment, human_reads, code_processes, voice_output):
    '''Simple formatting decision tree.'''
    if voice_output:
        return 'PLAIN TEXT — voice safe, spell out numbers and units'
    if code_processes:
        return 'JSON or CSV — machine-parseable, no prose'
    renders_markdown = environment in ['web', 'notion', 'github', 'vscode', 'obsidian']
    if renders_markdown and human_reads:
        return 'MARKDOWN — headers, bold, code blocks, lists'
    return 'PLAIN TEXT — clean prose paragraphs, no markdown symbols'

scenarios = [
    ('web',         True,  False, False),
    ('email',       True,  False, False),
    ('api_pipeline',False, True,  False),
    ('voice_app',   False, False, True),
    ('terminal',    True,  False, False),
]
for env, human, code, voice in scenarios:
    result = choose_format(env, human, code, voice)
    print(f'{env:<15} -> {result}')

Testo semplice strutturato

Il testo semplice non deve essere necessariamente privo di struttura. È possibile creare una struttura senza Markdown utilizzando:

  • ETICHETTE DI SEZIONE IN MAIUSCOLO, visualizzate allo stesso modo ovunque
  • Interruzioni di riga tra le sezioni
  • Frasi numerate: '1. Primo punto. 2. Secondo punto.'
  • Em dash per separare: 'Idea chiave — verifichi sempre prima di agire.'
  • Indentazione coerente mediante spazi, per l'output del terminale
import openai

client = openai.OpenAI(api_key='sk-your-key-here')

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{
        'role': 'user',
        'content': (
            'Write a daily briefing for a developer — 3 sections: TASKS, BLOCKERS, NOTES. '
            'Format: plain text only. '
            'Use ALL CAPS section labels followed by a colon. '
            'Use a line break between sections. '
            'Number each item within a section. '
            'No markdown symbols of any kind. '
            'Use realistic placeholder content.'
        )
    }]
)
print(response.choices[0].message.content)

Rilevamento del formato di output

Nelle applicazioni di produzione, è possibile rilevare programmaticamente l'ambiente di output e inserire automaticamente l'istruzione relativa al formato appropriato, così da non doverla specificare manualmente in ogni prompt.

È un modello comune nei sistemi di IA multicanale che distribuiscono gli stessi contenuti su web, dispositivi mobili e client API.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

def get_format_instruction(channel):
    formats = {
        'web':   'Use markdown formatting: headers, bold, bullet points, code blocks.',
        'email': 'Plain text only. No markdown symbols. Use line breaks between sections.',
        'sms':   'Plain text. Single paragraph. Max 160 characters.',
        'voice': 'Plain text. No symbols. Natural spoken sentences only. Spell out numbers.',
        'api':   'JSON output only. No prose.',
    }
    return formats.get(channel, 'Plain text only.')

def ask_with_channel(question, channel):
    fmt = get_format_instruction(channel)
    response = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=100,
        system=f'Format instruction: {fmt}',
        messages=[{'role': 'user', 'content': question}]
    )
    return response.content[0].text

q = 'What are 3 benefits of regular code reviews?'
for ch in ['web', 'sms', 'voice']:
    print(f'[{ch.upper()}]:')
    print(ask_with_channel(q, ch)[:150])
    print()

Verifica delle conoscenze

Uno sviluppatore crea un chatbot IA per il servizio clienti che invia le risposte a un CRM legacy in cui vengono memorizzati testi semplici. L'IA continua a produrre risposte con ** per il grassetto e - per gli elenchi puntati, che nel CRM vengono visualizzati come caratteri grezzi. Qual è la soluzione più affidabile?

Testo semplice e output formattato — riepilogo

La scelta del formato corretto dipende dall'ambiente di output. Regole chiave:

  • Utilizzi Markdown quando l'ambiente lo visualizza: interfacce web, Notion, GitHub e documentazione
  • Utilizzi il testo semplice per testi di e-mail, SMS, output vocale, CRM e pipeline API
  • Utilizzi JSON/CSV quando il codice elaborerà l'output
  • Richieda testo semplice indicando esplicitamente ciò che deve essere evitato: niente asterischi, niente simboli cancelletto, niente elenchi puntati
  • Imposti le regole di formattazione una sola volta nel messaggio di sistema per ottenere un comportamento coerente dell'applicazione
  • Il testo semplice può comunque avere una struttura grazie a ETICHETTE IN MAIUSCOLO, interruzioni di riga e frasi numerate
Gratis per iniziare

Impara AI Prompt Engineering con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
53
Lezioni
199

Domande Frequenti

La lezione «Testo semplice o output formattato» è gratuita?

Sì — il testo completo di «Testo semplice o output formattato» è 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 «Testo semplice o output formattato»?

Scopra quando richiedere testo semplice e pulito invece di un output Markdown avanzato 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 4 di 4.

Quanto tempo richiede la lezione «Testo semplice o output formattato»?

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