0Pricing
Learn AI with Python · Lezione

Prompt engineering per app LLM in produzione

Progettazione del system prompt, esempi few-shot, formattazione dell'output, logica di retry, ottimizzazione dei costi

Prompt engineering per app LLM in produzione è una lezione Learn AI with Python 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 Learn AI with Python, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn AI with Python include 4 lezioni in totale.

Prompting in produzione

Nelle applicazioni reali, i prompt sono codice: richiedono struttura, test e affidabilità. Un buon prompt engineering riduce le allucinazioni, impone il formato dell'output e controlla i costi. Questa lezione illustra le tecniche più importanti in produzione.

Progettare il system prompt

Il system prompt definisce il ruolo, il tono, i vincoli e le regole del modello. Sia specifico: indichi cos'è l'assistant, che cosa deve e non deve fare e in quale formato deve fornire le risposte. Un system prompt chiaro è lo strumento più efficace per guidare il modello.

system = (
    "You are a support agent for an e-commerce store. "
    "Answer only questions about orders and shipping. "
    "If asked anything else, politely decline. "
    "Keep replies under 3 sentences."
)

Esempi few-shot

Il prompting few-shot consiste nel mostrare al modello coppie di input/output di esempio, affinché apprenda lo schema. Inserisca queste coppie come messaggi alternati user/assistant prima della richiesta reale.

messages = [
    {"role": "system", "content": system},
    {"role": "user", "content": "Classify: I love this!"},
    {"role": "assistant", "content": "positive"},
    {"role": "user", "content": "Classify: This broke instantly."},
    {"role": "assistant", "content": "negative"},
    {"role": "user", "content": "Classify: It is okay I guess."}
]

Perché funziona il few-shot

Gli esempi chiariscono l'intento meglio delle sole istruzioni. Fissano lo stile esatto dell'output, ad esempio una parola, JSON o un'etichetta, e migliorano notevolmente la coerenza nelle attività di classificazione, estrazione e formattazione.

Forzare l'output JSON

Per ottenere risposte leggibili dalle macchine, richieda la modalità JSON con response_format. Con {"type": "json_object"} il modello è vincolato a produrre JSON valido, che potrà poi analizzare in sicurezza.

response = client.chat.completions.create(
    model="gpt-4o",
    messages=messages,
    response_format={"type": "json_object"}
)
import json
data = json.loads(response.choices[0].message.content)

Contare i token con tiktoken

I costi e i limiti del contesto vengono misurati in token. La libreria tiktoken conta i token localmente, così può preventivare il consumo prima dell'invio. La installi con pip install tiktoken.

import tiktoken

enc = tiktoken.encoding_for_model("gpt-4o")
tokens = enc.encode("Hello, how are you?")
print(len(tokens))

Perché è importante contare i token

Ogni modello ha una finestra di contesto, cioè un numero massimo di token, e la tariffazione avviene per token. Contare in anticipo consente di ridurre la cronologia, rifiutare input troppo grandi e prevedere il costo prima che la chiamata lasci il server.

def cost_estimate(text, price_per_1k=0.005):
    enc = tiktoken.encoding_for_model("gpt-4o")
    n = len(enc.encode(text))
    return n, n / 1000 * price_per_1k

Gestire i limiti di frequenza

Il traffico di produzione raggiunge i rate limit (HTTP 429) e incontra errori temporanei. Invece di interrompersi con un errore, ritenti usando un exponential backoff. La libreria tenacity rende possibile farlo con un decorator di una sola riga.

pip install tenacity

from tenacity import retry, wait_exponential, stop_after_attempt

Riprovare con tenacity

Applichi il decorator @retry alla chiamata API. Utilizzi wait_exponential per aumentare il ritardo tra i tentativi e stop_after_attempt per limitare il numero complessivo di prove. In questo modo gli arresti temporanei vengono gestiti senza problemi.

@retry(wait=wait_exponential(min=1, max=30), stop=stop_after_attempt(5))
def ask(prompt):
    return client.chat.completions.create(
        model="gpt-4o",
        messages=[{"role": "user", "content": prompt}]
    )

Definire uno JSON Schema per l'output

Quando forza la modalità JSON, descriva sempre nel prompt la struttura esatta desiderata, così le chiavi saranno prevedibili. Specificare lo schema in testo semplice e utilizzare la modalità JSON permette di ottenere ogni volta risultati analizzabili e validabili.

system = (
    "Return ONLY JSON with this shape: "
    "{\"sentiment\": \"positive|negative|neutral\", "
    "\"confidence\": number between 0 and 1}"
)

Mettere tutto insieme

Una pipeline di prompting per la produzione consiste nel progettare un system prompt rigoroso, aggiungere esempi few-shot, forzare l'output JSON quando necessario, contare i token per gestire costi e contesto e includere le chiamate in una logica di retry. Insieme, queste tecniche rendono affidabili le funzionalità basate sugli LLM.

Verifica rapida

Verifichi la Sua conoscenza del prompting in produzione.

Riepilogo: Prompting in produzione

Ha imparato a creare prompt di sistema rigorosi, a guidare il comportamento con esempi few-shot e a garantire risposte strutturate tramite la modalità JSON di response_format. Ha contato i token con tiktoken per gestire il contesto e i costi e ha aggiunto resilienza con i tentativi automatici di tenacity in caso di limiti di frequenza.

Domande Frequenti

La lezione «Prompt engineering per app LLM in produzione» è gratuita?

Sì — il testo completo di «Prompt engineering per app LLM in produzione» è 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 Learn AI with Python, passa a CoddyKit PRO. Il corso Learn AI with Python include 4 lezioni in totale.

Cosa imparerò in «Prompt engineering per app LLM in produzione»?

Progettazione del system prompt, esempi few-shot, formattazione dell'output, logica di retry, ottimizzazione dei costi Eserciti Learn AI with Python 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 Learn AI with Python?

Non è richiesta alcuna esperienza precedente. Learn AI with Python 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 «Prompt engineering per app LLM in produzione»?

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 Learn AI with Python?

Sì. Ogni lezione Learn AI with Python 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. API OpenAI: chat.completions e streaming
  2. API Anthropic Claude in Python
  3. Function calling e utilizzo degli strumenti con gli LLM
  4. Prompt engineering per app LLM in produzione
← Torna a Learn AI with Python