CHATBOT CON ADRIANO OLIVETTI

Se sei qui, significa che vorresti avere un dialogo con Adriano Olivetti.
Beh, in realtà è molto semplice: grazie all’intelligenza artificiale, oggi puoi creare un Chatbot con Adriano Olivetti.

Qui sotto troverai tutte le istruzioni per crearlo.

Se vuoi approfondire la vita e il pensiero di Adriano Olivetti, visita il sito.

COSA DEVI FARE?

Mi raccomando: se non hai Python installato, devi installarlo. (puoi scaricarlo da qui: https://www.python.org/downloads/)

Istruzioni per creare il tuo Chatbot con Adriano Olivetti

  1. Apri Python e copia il codice qui sottostante
  2. Salva il file con nome
  3. Assicurati di avere i pacchetti python
      • google-genai
      • edge-tts
      • playsound==1.2.2

    Se ce li hai, salta direttamente al passaggio 5.
    Altrimenti continua.

  4. Apri il terminale (o Prompt dei comandi)
    Scrivi “python -m pip install google-genai edge-tts playsound==1.2.2″
    Dopo che li hai installati, ritorna sul tuo file.
  5. Trova la riga:
    API_KEY = “XXXX”
  6. Sostituisci “XXXX” con la tua API Key di Google AI Studio
    Puoi crearne una facilmente qui:
    Google AI Studio
  7. Salva il file ed eseguilo

Ed ora…?

Ed ora è il momento di far partire il file.
Che dirvi… buon divertimento!

Il codice che vi abbiamo dato è una versione semplice del chatbot. Abbiamo anche sviluppato una versione avanzata che anima le risposte di Olivetti. Questa però è più complessa da far partire su tutti i PC, ma se vi interessa vedere il risultato, potete cliccare qui.

E se gli proponessi una domanda che non è inerente ad Olivetti? Beh… Vi darà una risposta: siete curiosi di conoscerla? Allora cliccate qui

ECCO IL CODICE PER IL CHATBOT CON ADRIANO OLIVETTI…

import tkinter as tk
from tkinter import scrolledtext
import random
from google import genai
from google.genai import types
import threading
import uuid
from playsound import playsound
import asyncio
import edge_tts
import re
# =========================
# API GEMINI
# =========================
API_KEY = "XXXX" #inserire la tua api_key
client = genai.Client(api_key=API_KEY)
# =========================
# DATABASE CONOSCENZE
# =========================
knowledge = 
# =========================
# DOMANDE QUIZ
# =========================
quiz_questions = [
"Quando nacque Adriano Olivetti?",
"Chi era il padre di Adriano Olivetti?",
"Quali servizi offriva agli operai?",
"Che cos'era la Programma 101?",
"Qual era la visione sociale di Olivetti?",
"Cos'era l'Elea 9003?"
]

# =========================
# FUNZIONE GEMINI
# =========================
def chiedi_gemini(domanda):
prompt = f"""
Sei un assistente esperto di Adriano Olivetti.
Rispondi in modo semplice per uno studente.
Domanda:

"""
try:
response = client.models.generate_content(
model="gemini-2.5-flash",
contents=prompt,
config=types.GenerateContentConfig(
thinking_config=types.ThinkingConfig(thinking_budget=0)
),
)
return response.text
except Exception:
return "Errore nel collegamento con Gemini."

# =========================
# TROVA RISPOSTA
# =========================
def trova_risposta(domanda):
domanda_lower = domanda.lower()
for categoria in knowledge.values():
for keyword in categoria["keywords"]:
if keyword in domanda_lower:
return categoria["response"]
return chiedi_gemini(domanda)

def pulisci_testo(text):
# Rimuove gli asterischi
text = text.replace("*", "")

# (opzionale) rimuove altri caratteri strani
text = re.sub(r"[#_~`]", "", text)

return text

# =========================
# FUNZIONE PER PARLARE
# =========================
def speak(text):
# Crea un file mp3 unico
filename = f"output_.mp3"

async def generate():
communicate = edge_tts.Communicate(text, "it-IT-DiegoNeural")
await communicate.save(filename)

# Blocca qui finché l'audio non viene generato
asyncio.run(generate())

# Blocca qui finché l'audio non viene riprodotto tutto
playsound(filename)

# =========================
# INVIA MESSAGGIO
# =========================
def invia():
user_input = entry.get()
if user_input.strip() == "":
return

chat_area.insert(tk.END, "Tu: " + user_input + "\n", "user")

risposta = trova_risposta(user_input) # TESTO ORIGINALE
risposta_voce = pulisci_testo(risposta) # SOLO PER VOCE

chat_area.insert(tk.END, "Bot: " + risposta + "\n\n", "bot")

chat_area.yview(tk.END)
entry.delete(0, tk.END)

window.update()
speak(risposta_voce) #
# =========================
# MODALITÀ INTERROGAZIONE
# =========================
def domanda_casuale():
domanda = random.choice(quiz_questions)
chat_area.insert(tk.END, "Bot (Interrogazione): " + domanda + "\n\n", "quiz")
chat_area.yview(tk.END)
speak(domanda) # legge anche la domanda

# =========================
# INTERFACCIA GRAFICA
# =========================
window = tk.Tk()
window.title("Chatbot Adriano Olivetti")
window.geometry("700x600")

chat_area = scrolledtext.ScrolledText(window, wrap=tk.WORD, font=("Arial", 12))
chat_area.pack(padx=10, pady=10, fill=tk.BOTH, expand=True)

chat_area.tag_config("user", foreground="blue")
chat_area.tag_config("bot", foreground="green")
chat_area.tag_config("quiz", foreground="red")

entry = tk.Entry(window, font=("Arial", 12))
entry.pack(padx=10, pady=5, fill=tk.X)
entry.focus_set()
entry.bind("", lambda event: invia())

send_button = tk.Button(window, text="Invia", command=invia)
send_button.pack(pady=5)

quiz_button = tk.Button(window, text="Fammi una domanda (modalità interrogazione)", command=domanda_casuale)
quiz_button.pack(pady=5)

window.mainloop()
2026-05-23T07:07:22+00:00

Amici del Vernato

È con immenso piacere che vi presentiamo il nostro sito “Amici del Vernato”. Il Vernato è il più antico quartiere della città di Biella e la nostra associazione, che non ha scopo di lucro, si propone di far conoscere e valorizzare la storia, la cultura, gli usi e costumi del nostro Rione. Proprio la parola “amici” sta a significare che l´associazione è aperta a chiunque voglia collaborare e portare il proprio contributo per facilitare i rapporti sociali e di buona vicinanza solidale. Inoltre, l´emblema dell´associazione è la foglia dell´ontano, albero presente nel nostro territorio che simboleggia l´eroe civilizzatore dell´antichità, quello che riunì gli uomini che in precedenza vivevano dispersi, fondando in tal modo una comunità abitativa.

Contatti

Via Ivrea, 14 – 13900 BIELLA BI

Web: https://www.amicidelvernato.it/

Recent Posts

Torna in cima