Guida Didattica · Percorso Python

Librerie per l'AI Generativa e API Esterne

Fai "parlare" Python con un modello AI: chiavi API, richieste HTTP e i primi SDK di Anthropic e OpenAI.

0 di 5 passaggi completati

01Fondamenti

Da modelli locali a modelli in the cloud

Finora hai addestrato piccoli modelli tuoi (regressione, reti neurali). I grandi modelli di AI generativa (come Claude o GPT) sono troppo grandi per essere eseguiti sul tuo computer: si trovano su server remoti, e Python li raggiunge tramite una API (Application Programming Interface), un "canale" di comunicazione standardizzato su internet.

🔑Chiave APIUna password personale che autentica le tue richieste al servizio.
📡Richiesta HTTPIl messaggio che Python invia al server per chiedere una risposta.
🔒File .envUn file separato dove tenere le chiavi segrete, mai nel codice.

La tua prima chiamata a un modello AI

import anthropic

client = anthropic.Anthropic(api_key="la-tua-chiave")

risposta = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=200,
    messages=[{"role": "user", "content": "Spiega Python in una frase"}]
)
print(risposta.content[0].text)

02Concetti Chiave

🔒 Proteggere le chiavi con python-dotenv▶

Non si scrive mai una chiave API direttamente nel codice (rischio di condividerla per errore, es. su GitHub). Si mette in un file .env separato, e la si carica a runtime.

from dotenv import load_dotenv import os load_dotenv() # legge il file .env chiave = os.getenv("ANTHROPIC_API_KEY")
📡 La libreria requests▶

requests è la libreria standard per comunicare con servizi web tramite HTTP: inviare richieste GET (leggere dati) o POST (inviare dati) e ricevere risposte, tipicamente in formato JSON.

import requests risposta = requests.get("https://api.esempio.com/dati") dati = risposta.json()
🤖 SDK Anthropic e OpenAI▶

Un SDK (Software Development Kit) è una libreria pronta che nasconde la complessità delle richieste HTTP dirette, offrendo funzioni semplici come client.messages.create(...) per parlare con il modello.

💬 Messaggi e ruoli▶

Le conversazioni con un modello AI sono strutturate come una lista di messaggi, ciascuno con un "ruolo" (user per l'utente, assistant per le risposte del modello) e un contenuto testuale.

messages=[ {"role": "user", "content": "Ciao!"}, {"role": "assistant", "content": "Ciao, come posso aiutarti?"}, {"role": "user", "content": "Spiegami i tuoi limiti"} ]
⚠️ Gestione degli errori nelle chiamate API▶

Le chiamate API possono fallire (rete assente, chiave non valida, limite di richieste superato): è buona pratica avvolgerle in un try/except, come visto nella guida sulla gestione degli errori.

try: risposta = client.messages.create(...) except Exception as e: print(f"Errore nella chiamata: {e}")

03Checklist Pratica

Spunta ogni passaggio man mano che lo completi: sbloccherai l'attestato di questa guida al termine.

Esempio per il punto 1

# Nel file .env (mai condiviso, mai su GitHub):
# ANTHROPIC_API_KEY=la-tua-chiave-segreta

from dotenv import load_dotenv
import os

load_dotenv()
chiave = os.getenv("ANTHROPIC_API_KEY")
print("Chiave caricata:", chiave is not None)
1. Crea un file .env e caricaloMetti la tua chiave in un file .env e caricala con python-dotenv, come nell'esempio sopra.

Esempio per il punto 2

import requests

risposta = requests.get("https://api.github.com")
print(risposta.status_code)  # 200 = richiesta riuscita
print(risposta.json())
2. Fai una richiesta GET con requestsUsa requests.get() su un endpoint pubblico e stampa il codice di stato e la risposta, come nell'esempio sopra.

Esempio per il punto 3

import anthropic

client = anthropic.Anthropic(api_key=chiave)
risposta = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=100,
    messages=[{"role": "user", "content": "Ciao!"}]
)
print(risposta.content[0].text)
3. Invia il tuo primo messaggio a un modello AIUsa l'SDK Anthropic come nell'esempio sopra, con la chiave caricata dal .env.

Esempio per il punto 4

try:
    risposta = client.messages.create(
        model="claude-sonnet-4-5",
        max_tokens=100,
        messages=[{"role": "user", "content": "Ciao!"}]
    )
    print(risposta.content[0].text)
except Exception as e:
    print(f"Errore: {e}")
4. Gestisci gli errori della chiamataAvvolgi la chiamata in un try/except, come nell'esempio sopra.
5. Completa il quiz di verificaScendi in fondo alla guida e rispondi correttamente ad almeno l'80% delle domande.

04Glossario Interattivo

Tocca ogni termine per vederne la definizione.

05Quiz di Verifica

06Esercitazioni Pratiche

Esercizio 1

Il traduttore automatico

Scrivi uno script che chiede all'utente una frase in italiano e usa l'SDK Anthropic per tradurla in inglese, stampando il risultato.

⏱ 25 minuti📦 Script funzionante testato🖥️ Individuale
Esercizio 2

La conversazione a due turni

Costruisci una lista di messaggi con un turno utente, un turno assistant (inventato) e un secondo turno utente. Invia tutto al modello e osserva come il contesto precedente influenza la risposta.

⏱ 25 minuti📦 Script con conversazione multi-turno🖥️ Individuale
Esercizio 3

Trova l'errore: la chiave nel codice

Questo codice ha un problema di sicurezza: api_key = "sk-ant-abc123..." scritto direttamente nello script. Spiega perché è pericoloso e come lo risolveresti con python-dotenv.

⏱ 10 minuti📦 Spiegazione scritta + codice corretto🖥️ Individuale o in coppia

🎓 Attestato di completamento

Completa tutti i 5 passaggi della checklist per sbloccare il tuo attestato in PDF.

0 / 5 passaggi completati