MODIFICATI CON SCRIPT
This commit is contained in:
parent
9eec379464
commit
d0b222488b
11 changed files with 30 additions and 37 deletions
|
|
@ -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.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue