Focus: Applicazioni reali di data engineering, analisi IA e monitoraggio sistemi.
::: info
Questa pagina raccoglie template e workflow per notebook pronti all'uso. Ogni esempio segue la struttura: Caricamento Dati -> Elaborazione -> Visualizzazione -> Conclusioni.
:::
Utilizziamo Jupyter per testare la velocità di inferenza di un modello locale (es. tramite le API di Ollama o LM Studio) e visualizzare la distribuzione della latenza.
import requests
import time
import pandas as pd
import matplotlib.pyplot as plt
def benchmark_llm(prompt, model="llama3"):
start_time = time.time()
response = requests.post("http://localhost:11434/api/generate",
json={"model": model, "prompt": prompt, "stream": False})
duration = time.time() - start_time
return duration, response.json().get('response')
# Esecuzione test iterativo
results = [benchmark_llm("Explain Quantum Computing in one sentence") for _ in range(10)]
df = pd.DataFrame(results, columns=['Latency', 'Response'])
# Visualizzazione
df['Latency'].plot(kind='bar', title="LLM Inference Latency (s)")
plt.ylabel("Seconds")
plt.show()
Analisi dei dati estratti dal database di Home Assistant (MariaDB) per identificare pattern di consumo energetico o cicli di temperatura.
Usa la cella Jupyter per trasformare i timestamp grezzi in oggetti datetime e calcolare la derivata (es. velocità di riscaldamento di una stanza).
Se stai sviluppando core logic in C++ (sezione [[programmazione/cpp/bindings]]), Jupyter è il posto perfetto per validare che i dati passati tra C++ e Python non subiscano corruzioni.
import my_cpp_module # Il tuo modulo compilato in C++
data_input = [1.5, 2.3, 3.8]
cpp_result = my_cpp_module.heavy_computation(data_input)
# Verifica immediata con asserzioni
assert len(cpp_result) == len(data_input), "Data size mismatch!"
print(f"Result from C++ engine: {cpp_result}")
L'obiettivo è imparare la logica di programmazione tramite la manipolazione immediata delle variabili.
# --- STEP 1: DEFINIZIONE ---
user_name = input("Hi! What's your name? ")
current_age = int(input("How old are you? "))
# --- STEP 2: LOGICA ---
years_to_100 = 100 - current_age
# --- STEP 3: OUTPUT ---
print(f"Nice to meet you {user_name}!")
print(f"You will be 100 years old in {years_to_100} years.")
# ESERCIZIO: Prova a cambiare '100' con un altro numero e riesegui la cella (Shift + Enter)
Qui Jupyter viene usato per visualizzare concetti complessi che altrimenti resterebbero astratti.
import time
# Un DECORATORE per misurare il tempo di esecuzione
def timer_decorator(func):
def wrapper(*args, **kwargs):
start = time.perf_counter()
result = func(*args, **kwargs)
end = time.perf_counter()
print(f"Execution time of {func.__name__}: {end - start:.6f} seconds")
return result
return wrapper
@timer_decorator
def advanced_processing(limit):
"""Calcola i quadrati dei numeri pari usando una list comprehension."""
return [x**2 for x in range(limit) if x % 2 == 0]
# Test del carico
result = advanced_processing(100000)
print(f"Found {len(result)} elements.")
Per un neofita che usa il tuo Wiki, ecco come dovrebbe utilizzare i notebook:
+ con un *) e osserva come l'output cambia.Prima di chiudere un esperimento nel notebook, verifica:
requirements.txt è aggiornato con le librerie usate?Tags: #AI #HomeAssistant #DataScience #Benchmarking #Python #Labs*