Il progetto finale: un chatbot completo, con personalità, memoria persistente e conoscenza dei tuoi documenti.
Questo è il progetto più completo del percorso: un assistente AI con una personalità definita (system prompt), che ricorda la conversazione anche dopo aver chiuso e riaperto lo script (persistenza), e che opzionalmente può consultare i tuoi documenti (RAG) — mettendo insieme tutto ciò che hai imparato sull'AI generativa.
Spunta ogni passaggio man mano che lo completi: sbloccherai l'attestato del progetto al termine.
Passo 1 — Codice
# assistente.py import streamlit as st import anthropic import json import os client = anthropic.Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY")) SYSTEM_PROMPT = "Sei un tutor Python paziente, che spiega con esempi semplici e incoraggia sempre lo studente."
Passo 2 — Codice
def carica_cronologia(): if os.path.exists("cronologia.json"): with open("cronologia.json", "r") as f: return json.load(f) return [] def salva_cronologia(cronologia): with open("cronologia.json", "w") as f: json.dump(cronologia, f)
Passo 3 — Codice
if "cronologia" not in st.session_state: st.session_state.cronologia = carica_cronologia() st.title("🤖 Il mio Assistente AI") for messaggio in st.session_state.cronologia: with st.chat_message(messaggio["role"]): st.write(messaggio["content"])
Passo 4 — Codice
domanda = st.chat_input("Scrivi un messaggio...") if domanda: st.session_state.cronologia.append({"role": "user", "content": domanda}) with st.chat_message("user"): st.write(domanda)
Passo 5 — Codice
risposta = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=400,
system=SYSTEM_PROMPT,
messages=st.session_state.cronologia
)
testo_risposta = risposta.content[0].text
st.session_state.cronologia.append({"role": "assistant", "content": testo_risposta})
with st.chat_message("assistant"):
st.write(testo_risposta)
salva_cronologia(st.session_state.cronologia)
Passo 6 — Test
# streamlit run assistente.py # Fai una conversazione di almeno 4 messaggi, chiudi l'app, riaprila: # la cronologia precedente deve essere ancora visibile.
Integra la logica del progetto "Chatbot Documentale con RAG": prima di rispondere, recupera contesto rilevante da un documento e aggiungilo al prompt.
Aggiungi un pulsante che azzeri la cronologia (sia in session_state che nel file salvato), per iniziare una chat da zero.
Aggiungi un selectbox che permetta di scegliere tra 2-3 system prompt diversi (es. tutor severo, tutor amichevole, assistente tecnico), cambiando il comportamento dell'assistente.
Completa tutti i 6 passaggi per sbloccare il tuo attestato in PDF.