MODIFICATI CON SCRIPT

This commit is contained in:
PanSi21 2025-02-02 23:34:34 +01:00
parent 9eec379464
commit d0b222488b
Signed by untrusted user who does not match committer: PanSi21
GPG key ID: 755F8874C65EF462
11 changed files with 30 additions and 37 deletions

View file

@ -73,7 +73,7 @@ print(response.text)
\end{lstlisting}
Questo codice illustra una semplice chiamata API ai modelli Gemini. Prima di eseguirlo, è necessario installare la libreria \lstinline|google-generativeai| con \lstinline|pip install google-generativeai| e configurare la variabile d'ambiente \lstinline|GEMINI_API_KEY| con la propria chiave API. Il codice inizia configurando l'accesso al modello, specificando i parametri di generazione (come temperature, \lstinline|top_p|, \lstinline|top_k|, \lstinline|max_output_tokens|), i filtri di sicurezza tramite \lstinline|safety_settings| e la \lstinline|system_instruction|. Quest'ultima funge da prompt principale, definendo il ruolo del modello e influenzando tutte le interazioni successive. In questo caso, istruisce il modello a comportarsi come uno psicologo di Harvard che aiuta gli utenti a rilassarsi. Il modello usato è stato \lstinline|gemini-2.0-flash-exp|.
Il codice svolge le seguenti azioni: importa le librerie necessarie, configura l'API, definisce i parametri di generazione, imposta i filtri di sicurezza e definisce l'istruzione di sistema che guida il comportamento del modello. Sostituendo il placeholder "\lstinline|INSERT_INPUT_HERE|" ed eseguendo il codice si invia un messaggio al modello e viene stampato in console la risposta ottenuta. È fondamentale installare la libreria e configurare la chiave API. Tra i settaggi cruciali, temperature regola la casualità del modello, \lstinline|model_name| permette di scegliere quale modello usare, le \lstinline|safety_settings| applicano filtri di sicurezza e bloccano contenuti inappropriati, mentre la \lstinline|system_instruction| plasma il ruolo del modello. Google permette di impostare diversi livelli di blocco per le categorie delle \lstinline|safety_settings|, o di disabilitarli del tutto.
Il codice svolge le seguenti azioni: importa le librerie necessarie, configura l'API, definisce i parametri di generazione, imposta i filtri di sicurezza e definisce l'istruzione di sistema che guida il comportamento del modello. Sostituendo il placeholder \enquote{\lstinline|INSERT_INPUT_HERE|} ed eseguendo il codice si invia un messaggio al modello e viene stampato in console la risposta ottenuta. È fondamentale installare la libreria e configurare la chiave API. Tra i settaggi cruciali, temperature regola la casualità del modello, \lstinline|model_name| permette di scegliere quale modello usare, le \lstinline|safety_settings| applicano filtri di sicurezza e bloccano contenuti inappropriati, mentre la \lstinline|system_instruction| plasma il ruolo del modello. Google permette di impostare diversi livelli di blocco per le categorie delle \lstinline|safety_settings|, o di disabilitarli del tutto.
\subsection{Streamlit}
@ -131,13 +131,13 @@ if prompt := st.chat_input("Scrivi il tuo messaggio:"):
\end{lstlisting}
Grazie al componente \lstinline|st.chat_message|, è possibile creare interfacce di chat conversazionali. Questo componente si occupa di gestire la visualizzazione dei messaggi, sia dell'utente che dell'assistente, in un layout intuitivo. I messaggi vengono presentati in contenitori di chat distinti, con avatar predefiniti o personalizzati, rendendo l'interazione più chiara e coinvolgente.
Un'altra caratteristica fondamentale di Streamlit è la gestione dello stato della sessione tramite \lstinline|st.session_state|. Questo meccanismo permette all'applicazione di ricordare le informazioni tra le diverse interazioni dell'utente, garantendo un'esperienza utente fluida e coerente. Se si ritiene necessario mantenere la cronologia dei messaggi precedenti per consentire al modello di comprendere il contesto della conversazione \lstinline|st.session_state| permette di memorizzare questa cronologia e renderla disponibile durante l'interazione con l'utente. In questo modo, l'app può "ricordare" le domande e le risposte passate, offrendo un'esperienza simile ai chatbot a cui siamo abituati.
Un'altra caratteristica fondamentale di Streamlit è la gestione dello stato della sessione tramite \lstinline|st.session_state|. Questo meccanismo permette all'applicazione di ricordare le informazioni tra le diverse interazioni dell'utente, garantendo un'esperienza utente fluida e coerente. Se si ritiene necessario mantenere la cronologia dei messaggi precedenti per consentire al modello di comprendere il contesto della conversazione \lstinline|st.session_state| permette di memorizzare questa cronologia e renderla disponibile durante l'interazione con l'utente. In questo modo, l'app può \enquote{ricordare} le domande e le risposte passate, offrendo un'esperienza simile ai chatbot a cui siamo abituati.
Analizzando il codice, si può notare come:
Vengono importate le librerie necessarie, in particolare streamlit per l'interfaccia utente, \lstinline|google.generativeai| per le API di Gemini e os per la gestione delle variabili d'ambiente.
\begin{itemize}
\item Viene configurata l'API di Gemini con la chiave API ottenuta da Google AI Studio e viene istanziato il modello.
\item Si definisce un titolo per l'applicazione con \lstinline|st.title("Gemini Chatbot"|..
\item Si definisce un titolo per l'applicazione con \lstinline|st.title(\enquote{Gemini Chatbot}|..
\item Viene creato il componente \lstinline|st.session_state.messages| dove vengono salvati i messaggi della chat.
\item Si cicla sul componente \lstinline|st.session_state.messages| per far comparire la cronologia della chat al caricamento della pagina.
\item Si utilizza il componente \lstinline|st.chat_input| per permettere all'utente di inserire un input e si controlla che non sia vuoto.