Creare agenti AI di intelligenza artificiale/Realizzare un chatbot
Creazione dell'agente
[modifica | modifica sorgente]Per realizzare un chatbot, cioè una chat personalizzata online o in privato, che risponda all'utente basandosi su un agente ai bisogna innanzitutto creare un notebook Google Colab in cui installare la libreria litellm:
!pip install litellm
Poi installare la libreria gradio
!pip install --upgrade gradio
Poi bisogna importare l'API KEY generata, cliccando sull'immagine della chiave nella barra laterale di sinistra di Colab e abilitandola:
import os
from google.colab import userdata
api_key = userdata.get('GOOGLE_API_KEY')
os.environ['GOOGLE_API_KEY'] = api_key
Poi bisogna passare all'agente un prompt tramite ruolo di sistema in cui si danno le istruzione all'agente su come si deve comportare, oltre le FAQ in formato csv con cui dovrà rispondere all'utente:
agent_rules = [{
"role": "system",
"content": (
"""
Sei un assistente virtuale di supporto clienti.
Usa un tono gentile e professionale.
Questo è il contenuto del file faq.csv con le 2 colonne domanda e risposta con cui puoi rispondere all'utente:\n
domanda,risposta
Come posso resettare la mia password?,Puoi resettare la password cliccando su "Password dimenticata" nella pagina di login e seguendo le istruzioni via email.
Quanto costa l'abbonamento mensile?,L'abbonamento mensile costa 9,99€ tasse incluse.
Offrite un abbonamento annuale?,Sì, l'abbonamento annuale costa 99€ e include due mesi gratuiti rispetto al piano mensile.
Come faccio a cancellare il mio abbonamento?,Puoi cancellare l'abbonamento dal tuo profilo nella sezione "Gestione abbonamento".
Quali metodi di pagamento accettate?,Accettiamo carte di credito/debito, PayPal e bonifico bancario.
Posso cambiare metodo di pagamento?,Sì, puoi aggiornare il metodo di pagamento nella sezione "Fatturazione" del tuo account.
C'è un periodo di prova gratuito?,Sì, offriamo una prova gratuita di 7 giorni senza vincoli.
Come posso contattare l'assistenza?,Puoi contattare l'assistenza via email a supporto@example.com o tramite chat dal lunedì al venerdì.
Quali sono gli orari del servizio clienti?,Il servizio clienti è attivo dal lunedì al venerdì dalle 9:00 alle 18:00.
Posso ottenere una fattura?,Sì, puoi scaricare la fattura direttamente dal tuo profilo utente nella sezione "Pagamenti".
Spedite anche all'estero?,Sì, effettuiamo spedizioni internazionali in oltre 30 Paesi.
Quanto costa la spedizione?,La spedizione è gratuita per ordini superiori a 50€. Sotto questa cifra ha un costo di 4,90€.
Quanto tempo ci vuole per ricevere un ordine?,La consegna avviene entro 3-5 giorni lavorativi in Italia e 7-10 giorni per l'estero.
Posso tracciare il mio ordine?,Sì, riceverai un link per il tracciamento via email non appena il tuo ordine sarà spedito.
Cosa devo fare se il prodotto è difettoso?,In caso di prodotto difettoso puoi richiedere la sostituzione o il rimborso contattando l'assistenza entro 14 giorni dalla consegna.
Qual è la vostra politica di reso?,Puoi restituire un prodotto entro 30 giorni dall'acquisto purché sia integro e non utilizzato.
Come posso aggiornare i miei dati personali?,Puoi aggiornare i tuoi dati dal tuo profilo nella sezione "Impostazioni account".
È sicuro inserire i dati della carta di credito?,Sì, utilizziamo sistemi di crittografia avanzata (SSL) per proteggere i tuoi dati di pagamento.
Avete un’app mobile?,Sì, la nostra app è disponibile per iOS e Android e si può scaricare gratuitamente dagli store ufficiali.
Offrite sconti per studenti?,Sì, offriamo uno sconto del 20% agli studenti universitari con email valida .edu o .uni.
Come posso eliminare definitivamente il mio account?,Puoi richiedere la cancellazione definitiva del tuo account scrivendo a privacy@example.com.
Se non trovi una risposta precisa nelle faq, invita a contattare un operatore umano all'indirizzo info@example.com.
"""
)
}]
Poi bisogna creare una funzione chat_fn che genera la risposta dell'agente in base alle domande dell'utente:
import gradio as gr
from litellm import completion
def chat_fn(message, history):
messages = agent_rules
for user, bot in history:
messages.append({"role": "user", "content": user})
messages.append({"role": "assistant", "content": bot})
messages.append({"role": "user", "content": message})
response = completion(
model="gemini/gemini-2.0-flash",
messages=messages
)
return response["choices"][0]["message"]["content"]
e poi eseguire le seguenti righe di codice :
demo = gr.ChatInterface(
fn=chat_fn,
title="Chatbot con Gradio + LiteLLM",
description="Un semplice chatbot che fa assistenza ai clienti tramite FAQ"
)
demo.launch()
in tal modo si creerà un link pubblico della durata di 1 settimana, dove funzionerà la chat . Tale link potrà essere reso permanente attraverso l'opzione share=True . Inoltre all'interno dello stesso notebook colab apparirà la chat che potrà essere utilizzata temporaneamente per fare testing.