Context engineering

Immagine
  Negli ultimi mesi, chi lavora con i modelli linguistici ha iniziato a notare uno spostamento sottile ma significativo: il problema non è più cosa scrivere nel prompt , ma cosa mettere nel contesto . È la differenza tra dare un'istruzione ben formulata e costruire l'intero ambiente informativo in cui un modello deve operare — memoria, strumenti, cronologia, vincoli, stato del sistema. Si parla ormai apertamente di context engineering come disciplina distinta dal prompt engineering, e la distinzione non è solo terminologica. 🔹 1. Il prompt come istruzione, il contesto come ambiente Un prompt ben scritto ottimizza una singola interazione. Il contesto, invece, è tutto ciò che il modello "vede" prima di rispondere: documenti recuperati, risultati di strumenti, conversazioni pregresse, regole di sistema, persino la cronologia di errori già commessi in quella sessione. Con l'adozione crescente di agenti che lavorano su compiti lunghi — scrivere codice, orchestrare...

Corso di Python: 9 – Moduli e Librerie

Moduli e Librerie

1. Moduli in Python

Un modulo è un file .py contenente definizioni di funzioni, classi e variabili che possiamo riutilizzare in altri programmi.

Esempio: creare e importare un modulo

modulo_saluti.py

def saluta(nome):
    print(f"Ciao, {nome}!")

main.py

import modulo_saluti

modulo_saluti.saluta("Luca")

Output:

Ciao, Luca!

Si possono importare funzioni specifiche:

from modulo_saluti import saluta

saluta("Anna")

2. Librerie standard

Python include numerosi moduli preinstallati, pronti all’uso.

2.1 Modulo math

Funzioni matematiche avanzate:

import math

print(math.sqrt(16))   # 4.0
print(math.sin(math.pi/2))  # 1.0
print(math.factorial(5))    # 120

2.2 Modulo datetime

Gestione date e orari:

from datetime import datetime

oggi = datetime.now()
print(oggi)  # 2025-09-21 11:35:00
print(oggi.year, oggi.month, oggi.day)

2.3 Modulo random

Generazione di numeri casuali:

import random

print(random.randint(1, 10))  # numero intero casuale tra 1 e 10
print(random.choice(["rosso","verde","blu"]))  # scelta casuale da lista

3. Installazione pacchetti con pip

pip permette di installare librerie esterne non incluse in Python.

Esempi:

pip install requests
pip install numpy

Dopo l’installazione si importano come moduli standard:

import requests
response = requests.get("https://api.github.com")
print(response.status_code)

4. Esercizio pratico: Generatore casuale di password

Obiettivo: generare una password sicura combinando lettere, numeri e simboli.

import random
import string

def genera_password(lunghezza=12):
    caratteri = string.ascii_letters + string.digits + string.punctuation
    password = "".join(random.choice(caratteri) for _ in range(lunghezza))
    return password

# Uso della funzione
pw = genera_password(16)
print(f"La tua password casuale: {pw}")

Spiegazione passo-passo:

  1. string.ascii_letters → tutte le lettere (a-zA-Z)

  2. string.digits → numeri 0-9

  3. string.punctuation → simboli speciali

  4. random.choice(caratteri) → sceglie casualmente un carattere

  5. "".join(...) → unisce tutti i caratteri in una stringa

Output esempio:

La tua password casuale: q9&K@2mF!vRz7#T*

5. Test rapido

  1. Come si importa solo una funzione da un modulo?
    Risposta: from modulo import funzione

  2. Quale modulo usi per date e orari?
    Risposta: datetime

  3. Come generi un numero intero casuale tra 1 e 100?
    Risposta: random.randint(1,100)

  4. Come installi un pacchetto esterno?
    Risposta: pip install nome_pacchetto

  5. Come unisci caratteri casuali in una stringa?
    Risposta: con "".join(lista_di_caratteri)

6. Attività pratica

  • Modificare la funzione genera_password per garantire almeno una lettera maiuscola, una minuscola, un numero e un simbolo.

  • Creare un piccolo programma che salva le password generate in un file .txt.

  • Usare il modulo datetime per stampare data e ora della generazione.


Commenti

Post popolari in questo blog

Corso di Programmazione Strutturata e OOP: 3 Ereditarietà incapsulamento polimorfismo

Corso di CSS & Web Design: 3 – Box Model e spaziature

Corso di CSS & Web Design: 7 – Responsive Design