Cosa non può fare l'IA
Limiti: dati in tempo reale, memoria, errori di ragionamento e risposte errate ma espresse con sicurezza
Cosa non può fare l'IA è 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.
I limiti che deve conoscere
I modelli linguistici di IA sono potenti, ma hanno limiti ben precisi. Non comprenderli porta a sprechi di tempo, risposte errate e utenti frustrati.
I quattro limiti principali sono: assenza di accesso a Internet in tempo reale, assenza di memoria persistente tra le sessioni, allucinazioni espresse con sicurezza ed errori di ragionamento in matematica e logica.
Nessun accesso a Internet in tempo reale
Per impostazione predefinita, gli LLM sono completamente offline durante l'inferenza. Non possono:
- Cercare i prezzi odierni delle azioni
- Controllare il meteo attuale
- Accedere agli URL menzionati
- Cercare su Google o su qualsiasi altra fonte
Se chiede «Qual è il prezzo delle azioni di Tesla in questo momento?», il modello rifiuterà la richiesta oppure farà un'ipotesi basata sui dati di training, che potrebbero essere vecchi di mesi o anni.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=128,
messages=[{
'role': 'user',
'content': 'What is Bitcoin\'s price right now in USD?'
}]
)
# The model will acknowledge it cannot access real-time data
print(response.content[0].text)
# To add real-time data, you must inject it yourself:
current_price = 67500 # fetched from an exchange API by YOUR code
response2 = client.messages.create(
model='claude-opus-4-5',
max_tokens=128,
messages=[{
'role': 'user',
'content': f'Bitcoin price as of now: ${current_price}. Is this above or below $70,000?'
}]
)
print(response2.content[0].text)Date limite della conoscenza
Ogni LLM viene addestrato su un'istantanea di Internet aggiornata fino a una data specifica: la sua data limite della conoscenza.
Gli eventi, le leggi, i prodotti, gli articoli di ricerca e le persone comparsi dopo tale data sono sconosciuti al modello. Il modello potrebbe comunque rispondere con sicurezza, ma quelle risposte derivano da un'estrapolazione, non da una conoscenza effettiva.
Per le attività sensibili al fattore tempo, controlli sempre la data limite dichiarata dal modello.
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
# Ask the model to disclose its cutoff and caveats
response = client.chat.completions.create(
model='gpt-4o',
messages=[{
'role': 'user',
'content': (
'I need to know about the latest AI models released in the past 3 months. '
'Please state your knowledge cutoff date and any caveats before answering.'
)
}]
)
print(response.choices[0].message.content)
# Best practice: inject a date stamp so the model knows the current date
from datetime import date
today = date.today().isoformat()
response2 = client.chat.completions.create(
model='gpt-4o',
system=f'Today is {today}. Your knowledge cutoff may be earlier — say so if relevant.',
messages=[{'role': 'user', 'content': 'What are the latest LLM releases?'}]
)Nessuna memoria persistente tra le sessioni
Quando avvia una nuova sessione, il modello non ricorda nessuna conversazione precedente, nemmeno una di 5 minuti prima.
Non è un bug: è il funzionamento dell'API stateless. Ogni sessione parte da un contesto vuoto.
Per conservare informazioni tra le sessioni, deve salvarle personalmente (in un database o in un file) e reinserirle nel messaggio di sistema o nella cronologia della conversazione.
import json
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
# Simulate storing user preferences between sessions
def load_user_profile(user_id):
# In production: load from database
return {'name': 'Alice', 'preferred_language': 'Python', 'skill_level': 'intermediate'}
def build_system_message(profile):
return (
f'The user\'s name is {profile["name"]}. '
f'They prefer {profile["preferred_language"]} examples. '
f'Their skill level is {profile["skill_level"]}. '
f'Tailor all responses accordingly.'
)
profile = load_user_profile('user-123')
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=256,
system=build_system_message(profile),
messages=[{'role': 'user', 'content': 'Show me how to read a file.'}]
)
print(response.content[0].text)Allucinazioni: risposte sicure ma errate
Un'allucinazione si verifica quando il modello genera un testo plausibile ma errato nei fatti e lo presenta con assoluta sicurezza.
Tipi comuni di allucinazione:
- Citazioni e titoli di articoli inventati
- Date, nomi o statistiche errati
- Dettagli di aziende o specifiche di prodotti inventati
- API o nomi di funzioni inesistenti
Il modello non dispone di alcun verificatore interno dei fatti: genera ciò che sembra statisticamente probabile, non ciò che è stato verificato.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
# Asking for a citation is a classic hallucination trigger
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=256,
messages=[{
'role': 'user',
'content': (
'Cite 3 peer-reviewed papers about the effect of social media on teen anxiety. '
'Include author names, journal names, and publication years.'
)
}]
)
print(response.content[0].text)
# WARNING: verify every citation independently — some may be fabricatedRidurre le allucinazioni
Non è possibile eliminare le allucinazioni, ma è possibile ridurle in modo significativo:
- Fornisca il materiale di riferimento: chieda al modello di rispondere esclusivamente sulla base di un documento incollato
- Chieda un livello di confidenza: chieda al modello di dire «Non lo so» quando non è sicuro
- Utilizzi una temperature più bassa: riduce le ipotesi azzardate
- Verifichi in modo indipendente: controlli sempre i fatti negli output importanti
- Utilizzi il retrieval augmentation: inserisca fatti aggiornati prima di porre la domanda
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
# Ground the model with provided source material
document = (
'According to the 2023 Pew Research report, 46% of US teens say '
'they are online almost constantly, up from 24% in 2014-2015.'
)
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=256,
system=(
'Answer ONLY using the provided document. '
'If the answer is not in the document, say: "The document does not cover this."'
),
messages=[{
'role': 'user',
'content': f'Document:\n{document}\n\nQuestion: What percentage of US teens are online almost constantly?'
}]
)
print(response.content[0].text)Errori di ragionamento in matematica
Gli LLM non sono calcolatrici. Generano token che sembrano il risultato di calcoli corretti, ma commettono errori con:
- Operazioni aritmetiche con più passaggi
- Operazioni con numeri grandi
- Conversioni di percentuali e unità
- Problemi di logica con molte variabili
Per qualsiasi attività che coinvolga numeri, utilizzi sempre l'esecuzione di codice o una calcolatrice esterna, poi chieda al modello di interpretare il risultato.
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
# Bad practice: ask the LLM to compute a complex calculation directly
response_direct = client.chat.completions.create(
model='gpt-4o',
messages=[{'role': 'user', 'content': 'What is 17.83% of 348,921.47?'}]
)
print('LLM answer:', response_direct.choices[0].message.content)
# Good practice: compute in Python, then ask LLM to explain it
result = round(348921.47 * 0.1783, 2)
response_explained = client.chat.completions.create(
model='gpt-4o',
messages=[{
'role': 'user',
'content': f'17.83% of 348,921.47 is ${result}. Explain what this means for a budget report.'
}]
)
print('Explained:', response_explained.choices[0].message.content)Limiti nella logica complessa e nel ragionamento
Gli LLM faticano con le attività che richiedono di mantenere simultaneamente molti vincoli o di tenere traccia dello stato attraverso numerosi passaggi:
- Dimostrazioni logiche lunghe e articolate
- Problemi di pianificazione con molti vincoli
- Codice con logica profondamente annidata
- Attraversamento di grafi o problemi combinatori
Il chain-of-thought prompting (chiedere al modello di «pensare passo dopo passo») migliora significativamente le prestazioni, ma non elimina gli errori.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
# Chain-of-thought improves complex reasoning
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=512,
messages=[{
'role': 'user',
'content': (
'A train leaves Station A at 9:00 AM traveling at 80 km/h. '
'Another train leaves Station B (300 km away) at 10:00 AM traveling at 100 km/h toward Station A. '
'At what time do they meet?\n\n'
'Think step by step before giving your answer.'
)
}]
)
print(response.content[0].text)Limiti relativi a file e immagini
Le API di base degli LLM presentano alcune limitazioni nella gestione dei file:
- Non è possibile inviare un PDF e aspettarsi che il modello lo «legga» senza averne prima estratto il testo
- Gli input di immagini richiedono un modello multimodale (GPT-4o, Claude con la visione abilitata)
- Audio, video e fogli di calcolo richiedono in genere una pre-elaborazione prima che il modello possa utilizzarli
Converta sempre i documenti in testo prima di includerli in un prompt, a meno che non utilizzi un endpoint multimodale.
import anthropic
import base64
from pathlib import Path
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
# Images require explicit base64 encoding and vision-capable model
image_data = base64.standard_b64encode(Path('chart.png').read_bytes()).decode('utf-8')
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=256,
messages=[{
'role': 'user',
'content': [
{
'type': 'image',
'source': {'type': 'base64', 'media_type': 'image/png', 'data': image_data}
},
{'type': 'text', 'text': 'Describe what this chart shows.'}
]
}]
)
print(response.content[0].text)Ciò che l'IA sa fare bene — una visione equilibrata
Conoscere i limiti aiuta a usare l'IA là dove eccelle:
- Attività linguistiche: scrittura, editing, riepiloghi, traduzioni — eccellente
- Riconoscimento di pattern nel testo: classificazione, estrazione — eccellente
- Brainstorming: generazione di molte idee diverse — eccellente
- Matematica e logica: deleghi i calcoli al codice e usi l'IA per l'interpretazione — utilizzi degli strumenti
- Fatti in tempo reale: inserisca personalmente i dati e usi l'IA per il ragionamento — utilizzi il retrieval
- Memoria: salvi i dati esternamente e li reinserisca — utilizzi un database
# Pattern: inject real-time context + use AI for reasoning, not retrieval
import anthropic
from datetime import datetime
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
# Your application fetches these from real sources
weather_data = {'city': 'London', 'temp_c': 12, 'condition': 'rainy'}
news_headline = 'UK inflation drops to 2.3% in April 2025'
context = (
f'Current date: {datetime.now().strftime("%Y-%m-%d")}\n'
f'Weather in {weather_data["city"]}: {weather_data["temp_c"]}C, {weather_data["condition"]}\n'
f'Today\'s top news: {news_headline}'
)
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=256,
system='You are a helpful assistant. Use only the provided context for current facts.',
messages=[{'role': 'user', 'content': f'{context}\n\nWhat should I wear today and what is the economic mood?'}]
)
print(response.content[0].text)La regola d'oro: verifichi gli output dell'IA
L'abitudine più importante quando si usa l'IA è verificare gli output prima di agire sulla base di essi.
- Fatti → controlli le fonti primarie
- Codice → lo esegua e testi i casi limite
- Calcoli → li verifichi in modo indipendente
- Citazioni → le cerchi su Google Scholar
- Consigli medici, legali o finanziari → consulti un professionista abilitato
Usi l'IA per creare bozze, generare contenuti e fare brainstorming; usi il suo giudizio per convalidare i risultati.
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
# Ask the model to flag its own uncertainty
response = client.chat.completions.create(
model='gpt-4o',
messages=[
{
'role': 'system',
'content': (
'After every response, add a line starting with CONFIDENCE: '
'and rate your certainty as HIGH, MEDIUM, or LOW, '
'with a brief reason.'
)
},
{
'role': 'user',
'content': 'Who won the 2023 FIFA Women\'s World Cup and what was the final score?'
}
]
)
print(response.choices[0].message.content)Verifica delle conoscenze
Uno sviluppatore chiede a un LLM di calcolare il 23,7% di 1.456.820 e di usare il risultato per scrivere il riepilogo di un rapporto finanziario. Qual è il rischio di questo flusso di lavoro?
Limitazioni dell'IA — riepilogo
I limiti principali da tenere sempre presenti:
- Niente Internet in tempo reale: inserisca i dati aggiornati dal suo codice
- Data limite della conoscenza: il modello non sa nulla di ciò che è avvenuto dopo la data del training
- Nessuna memoria della sessione: salvi il contesto esternamente e lo reinserisca
- Allucinazioni: verifichi in modo indipendente fatti, citazioni e codice
- Errori matematici: esegua i calcoli nel codice e usi l'IA per l'interpretazione
- Limiti logici: utilizzi il chain-of-thought, ma verifichi comunque i ragionamenti complessi
Comprendere i limiti è ciò che distingue gli utenti efficaci dell'IA da quelli frustrati.
Domande Frequenti
La lezione «Cosa non può fare l'IA» è gratuita?
Sì — il testo completo di «Cosa non può fare l'IA» è 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 «Cosa non può fare l'IA»?
Limiti: dati in tempo reale, memoria, errori di ragionamento e risposte errate ma espresse con sicurezza 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 «Cosa non può fare l'IA»?
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
- Comprendere l'interfaccia di chat
- Tipi di richieste che l'IA può gestire
- Come l'IA genera le risposte
- Cosa non può fare l'IA