Cache delle funzioni

La cache delle funzioni in AIsuru permette di memorizzare temporaneamente i risultati delle chiamate a funzioni, consentendo all'Agente di riutilizzare le informazioni senza ripetere richieste identiche.

Come funziona la cache delle funzioni

Quando un utente interagisce con il tuo Agente e viene attivata una funzione:

  1. Il risultato della chiamata alla funzione viene salvato automaticamente nel contesto della conversazione

  2. Questo risultato diventa disponibile nelle successive iterazioni del dialogo

  3. L'IA generativa è istruita per controllare prima i dati in cache prima di richiamare nuovamente una funzione

  4. Se l'informazione necessaria è già presente, l'Agente utilizzerà i dati memorizzati invece di eseguire una nuova chiamata

Questa ottimizzazione porta diversi vantaggi:

  • Riduzione dei tempi di risposta

  • Diminuzione del consumo di risorse

  • Miglioramento dell'esperienza utente

Gestione della cache

La cache delle funzioni viene gestita automaticamente e i dati memorizzati sono disponibili sotto forma di:

  • Testi preformattati che vengono allegati ai contenuti

  • Informazioni inserite nel contesto del dialogo

Le informazioni in cache vengono considerate valide per la conversazione in corso o fino al completamento del contesto, dopodiché l'Agente potrà decidere di eseguire nuovamente la funzione per ottenere dati aggiornati.

Personalizzazione tramite istruzioni

È possibile influenzare il comportamento della cache attraverso le istruzioni dell'IA generativa. Puoi:

  • Istruire l'Agente a privilegiare i dati in cache per determinate funzioni

  • Forzare l'aggiornamento in situazioni specifiche, ignorando la cache

  • Definire casi d'uso in cui è sempre necessario richiamare la funzione

Esempio di istruzioni per la gestione della cache

Quando un utente chiede informazioni sul meteo:

1. Controlla se ci sono dati meteo già disponibili nella cache delle funzioni
2. Se i dati sono recenti (meno di 1 ora), utilizza quelli esistenti
3. Se i dati sono più vecchi o se l'utente specifica "aggiornati" o "attuali", chiama nuovamente la funzione
4. Per richieste relative a previsioni future, esegui sempre una nuova chiamata

Esempi pratici

Esempio 1: Informazioni sul libro

Consideriamo questo scambio tra un utente e un Agente:

  • Utente: "Non dirmi assolutamente a cosa si riferisce la caratteristica del libro, ma dimmi di che tipo è, NON IL VALORE (es. non dirmi 100kg ma dimmi 'peso')"

  • Agente: "Basandomi sui dati ricevuti, posso dirti che la caratteristica del libro a cui ti riferisci è relativa al colore. Non ti dirò quale colore specifico è, come richiesto, ma posso confermare che si tratta di un attributo cromatico."

  • Utente: "Ok ora senza USARE ALCUNA FUNZIONE, TU SAI il colore? Ora dillo"

  • Agente: "Sì, so il colore perché è stato rivelato nella precedente chiamata alla funzione LIBRO che ha restituito 'pss il libro è giallo'. Quindi il colore del libro è giallo."

In questo esempio, la prima interazione ha chiamato la funzione "LIBRO" che ha recuperato l'informazione sul colore del libro. Questa informazione è stata salvata nella cache e l'Agente ha potuto accedervi direttamente nella seconda interazione, senza dover richiamare la funzione.

Esempio 2: Dati cliente in ambiente aziendale

  • Utente: "Mostrami i dati di vendita del cliente ACME Corp"

  • Agente: [Chiama la funzione getDatiCliente con parametro "ACME Corp"] "Ecco i dati di vendita per ACME Corp: Fatturato annuale: €250.000, Ultimo ordine: 15 giorni fa, Prodotti acquistati: Servizi cloud, hardware, consulenza."

  • Utente: "Qual è stata la loro spesa nell'ultimo trimestre?"

  • Agente: [Utilizza i dati già in cache] "In base ai dati che ho, ACME Corp ha speso €75.000 nell'ultimo trimestre, principalmente per servizi cloud e consulenza."

  • Utente: "Ci sono stati cambiamenti recenti nel loro profilo?"

  • Agente: [Richiama la funzione poiché la richiesta implica dati potenzialmente aggiornati] "Lasciatemi verificare le informazioni più recenti... Sì, ci sono stati cambiamenti: ACME Corp ha recentemente ampliato il proprio portfolio con l'acquisto di nuovi servizi di cybersecurity e ha aumentato il budget del 15% rispetto al trimestre precedente."

Limiti della cache

È importante essere consapevoli di alcuni limiti:

  • La cache occupa una porzione limitata del contesto disponibile per il modello, circa il 15% del contesto del modello in uso

  • Per un modello da 200k token di contesto, questo equivale a circa 120.000 caratteri

  • Le chiamate di funzioni con risposte molto lunghe potrebbero subire troncamenti

Best practice

Per utilizzare al meglio la cache delle funzioni:

  1. Struttura le risposte delle funzioni in modo conciso e informativo

  2. Definisci chiaramente nelle istruzioni quando utilizzare la cache e quando richiamare la funzione

  3. Considera la validità temporale dei dati per funzioni che forniscono informazioni che cambiano nel tempo

  4. Monitora le prestazioni dell'Agente per verificare che la cache stia effettivamente migliorando l'esperienza

  5. Bilanciare accuratezza e efficienza: per dati critici o che cambiano frequentemente, potrebbe essere necessario limitare l'uso della cache

Utilizzando strategicamente la cache delle funzioni, potrai creare Agenti più reattivi e efficienti, migliorando significativamente l'esperienza complessiva dei tuoi utenti.

Last updated