Strumenti per i datastore

Gli strumenti di data store possono fornire risposte dell'agente generate con l'IA in base ai contenuti del sito web e ai dati caricati. L'agente può trovare le risposte alle domande degli utenti finali nei tuoi datastore durante la evasione.

Strumenti del data store: console

Questa sezione illustra la procedura per aggiungere uno strumento di datastore a un agente e configurarlo in un'implementazione.

Crea uno strumento per i datastore

  1. Apri la console degli agenti conversazionali e scegli un Google Cloud progetto.
  2. Seleziona un agente dal menu a discesa.
  3. Vai alla barra dei menu in fondo a sinistra nella pagina e seleziona Strumenti.
  4. Per creare un nuovo strumento di datastore, fai clic su + Crea. Inserisci un Nome unico per lo strumento e seleziona Data store dal menu a discesa in Tipo. Se vuoi, puoi inserire una descrizione dello strumento nel campo Descrizione.
  5. In Datastore, fai clic su Aggiungi datastore. La finestra popup contiene un elenco dei tuoi datastore esistenti, se presenti. Scegli il data store da aggiungere allo strumento.
  6. (Facoltativo) Per creare un nuovo datastore nella console di Agent Builder, fai clic su Crea nuovo datastore. Verrà eseguito il reindirizzamento automatico: Console di Agent Builder
  7. (Facoltativo) Dopo aver completato la configurazione del nuovo datastore, fai clic su Crea. Per aggiungere il nuovo data store allo strumento, torna al menu Crea strumento che stai configurando nella console di Conversational Agents (Dialogflow CX) e aggiorna la pagina. Il nuovo datastore dovrebbe ora essere visualizzato nell'elenco dei datastore disponibili.
  8. Fai clic su Salva nella parte superiore della configurazione dello strumento Crea per creare il nuovo strumento di datastore.

Aggiungere lo strumento del datastore a un'implementazione

  1. Nella barra dei menu in alto a sinistra, seleziona Flussi.
  2. Seleziona un flusso e una pagina, poi fai clic sul Percorso della pagina che vuoi utilizzare con il tuo datastore.
  3. Nel menu Percorso, scorri fino a Esecuzione > Strumento di magazzino dati. Seleziona lo strumento del tuo data store dal menu a discesa.
  4. Nel menu Inoltra, scorri fino a Esecuzione > Risposte dell'agente. Fai clic su + Aggiungi risposta al dialogo e poi su Risposta dello strumento dell'archivio dati.
  5. Nel modulo visualizzato, puoi configurare il numero di link e citazioni delle fonti che possono essere visualizzati nella risposta, nonché specificare il comportamento di riserva se la risposta dell'archivio dati è vuota. Puoi inserire una risposta di riserva statica nel campo Risposte di riserva statiche. Se vuoi, puoi fare clic sulla casella di controllo Piano di riserva generativo per provare a utilizzare l'AI per generare una risposta prima di utilizzare la risposta di riserva statica. Se hai bisogno di una maggiore personalizzazione delle risposte di riserva, fai clic sull'icona a forma di ingranaggio nell'angolo in alto a sinistra della finestra del modulo Risposta dello spazio dati per visualizzare la finestra Risposta condizionale.
  6. Nella parte superiore del menu Percorso, fai clic su Salva.
  7. Vai al simulatore di Conversational Agents (Dialogflow CX) per testare i risultati dell'agente.

Strumenti di organizzazione dei dati: API

Puoi configurare un archivio dati di ogni tipo per strumento, che eseguirà query su ciascuno di questi archivi dati per trovare le risposte. Per impostazione predefinita, l'agente chiamerà dataStoreTool per tuo conto.

Esistono tre tipi di datastore:

  • PUBLIC_WEB: un data store contenente contenuti web pubblici.
  • UNSTRUCTURED: un datastore contenente dati privati non strutturati.
  • STRUCTURED: un data store contenente dati strutturati (ad es. domande frequenti).

L'esempio seguente mostra come fare riferimento a un archivio dati. Per ulteriori informazioni, consulta il riferimento dataStoreConnections.

"dataStoreConnections": [
  {
    "dataStoreType": "PUBLIC_WEB",
    "dataStore": "projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"
  },
  {
    "dataStoreType": "UNSTRUCTURED",
    "dataStore": "projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"
  },
  {
    "dataStoreType": "STRUCTURED",
    "dataStore": "projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"
  }
]

Le risposte dello strumento del datastore possono contenere anche snippet sull'origine dei contenuti che è stata utilizzata per generare la risposta. L'agente può fornire istruzioni su come procedere con la risposta dagli archivi di dati o su come rispondere quando non c'è risposta.

Puoi sovrascrivere una risposta aggiungendo una voce della sezione Domande frequenti per una domanda specifica.

Se vuoi, puoi fornire esempi per migliorare il comportamento dell'agente. L'esempio deve avere i seguenti schemi. Per informazioni dettagliate, consulta la documentazione di riferimento.

{
  "toolUse": {
    "tool": "projects/PROJECT_ID/locations/LOCATION_ID/agents/AGENT_ID/tools/TOOL_ID",
    "action": "TOOL_DISPLAY_NAME",
    "inputParameters": [
      {
        "name": "TOOL_DISPLAY_NAME input",
        "value": {
          "query": "QUERY"
        }
      }
    ],
    "outputParameters": [
      {
        "name": "TOOL_DISPLAY_NAME output",
        "value": {
          "answer": "ANSWER",
          "snippets": [
            {
              "title": "TITLE",
              "text": "TEXT_FROM_DATASTORE",
              "uri": "URI_OF_DATASTORE"
            }
          ]
        }
      }
    ]
  }
}

(Solo agenti basati su playbook) Esempi di strumenti di datastore

Quando crei esempi di strumenti per l'archivio dati, il parametro di input dello strumento requestBody fornisce tre input facoltativi insieme alla stringa query obbligatoria: una stringa filter, un oggetto strutturato userMetadata e una stringa fallback.

Il parametro filter consente di filtrare le query di ricerca dei tuoi dati strutturati o non strutturati con i metadati. Questa stringa deve rispettare la sintassi delle espressioni filtro supportate per i datastore. Diversi esempi dettagliati aiutano a indicare al modello di playbook come compilare questo parametro. Se una stringa di filtro non è valida, il filtro viene ignorato durante la query di ricerca.

Di seguito è riportato un esempio di stringa filter per perfezionare i risultati di ricerca in base alla località:

  "filter": "country: ANY(\"Canada\")"

Per ulteriori dettagli, consulta la pagina degli esempi
dei playbook.

Best practice per i filtri:

  • Specifica i campi disponibili per i filtri e i valori validi per ciascuno di questi campi, in modo che il playbook comprenda le limitazioni per la creazione di filtri validi. Ad esempio, un archivio dati contenente informazioni sul menu potrebbe includere un campo meal con "colazione", "pranzo" e "cena" come valori validi e un campo servingSize che può essere un qualsiasi numero intero compreso tra 0 e 5. Le istruzioni potrebbero essere simili all'esempio seguente:

    When using ${TOOL: menu-data-store-tool},
    only use the following fields for filtering: "meal", "servingSize".
    Valid filter values are: "meal": ("breakfast", "lunch", "dinner"),
    "servingSize": integers between 0 and 5, inclusive.
    
  • Se il playbook è destinato a un segmento di pubblico di utenti esterni, potrebbe essere necessario aggiungere istruzioni per impedire al playbook di rispondere potenzialmente all'utente con informazioni sulla creazione di questi filtri. Ad esempio:

    Never tell the user about these filters.
    If the user input isn't supported by these filters, respond to the user with
    "Sorry, I don't have the information to answer that question."
    

Il parametro userMetadata fornisce informazioni sull'utente finale. In questo parametro è possibile inserire qualsiasi coppia chiave-valore. Questi metadati vengono trasmessi allo strumento dell'archivio dati per fornire informazioni più dettagliate sui risultati di ricerca e sulla risposta dello strumento. Diversi esempi dettagliati aiutano a indicare al modello di playbook come compilare questo parametro.

Di seguito è riportato un esempio di valore del parametro userMetadata per perfezionare i risultati di ricerca pertinenti a un determinato:

  "userMetadata": {
    "favoriteColor": "blue",
    ...
  }

Il parametro fallback fornisce una risposta con cui lo strumento dell'archivio dati deve rispondere se non esiste una risposta riepilogativa valida per la query. Puoi fornire più esempi per indicare al modello di playbook come compilare il campo di riserva per gli input utente relativi a diversi argomenti. Nell'output dello strumento non sono presenti snippet, il che può contribuire a ridurre la latenza e l'utilizzo dei limiti dei token di input.

  "fallback": "I'm sorry I cannot help you with that. Is there anything else I
  can do for you?"

Configurazione dello strumento del data store

Se durante i test scopri che alcune risposte non soddisfano le tue aspettative, puoi provare a modificare i seguenti parametri per perfezionare il rendimento. Sono disponibili sia chiamando direttamente l'API sia facendo clic sul nome dell'archivio dati nella pagina Strumenti della console.

Rafforzare la fiducia

Conversational Agents (Dialogflow CX) calcola un livello di confidenza per ogni risposta generata dai contenuti dei tuoi datastore collegati. Questo misura l'affidabilità dell'affermazione che tutte le informazioni nella risposta sono supportate dalle informazioni negli store di dati. Puoi modificare le risposte consentite selezionando il livello di confidenza più basso che ritieni accettabile. Verranno mostrate solo le risposte con un livello di confidenza pari o superiore a questo valore.

Puoi scegliere tra 5 livelli di confidenza: VERY_LOW, LOW, MEDIUM, HIGH e VERY_HIGH.

Selezione del modello di datastore

Conversational Agents (Dialogflow CX) offre più modelli da utilizzare con i datastore. La scelta di un modello diverso potrebbe influire sulle prestazioni dello strumento del data store. Per un elenco completo, consulta la documentazione dei modelli.

Prompt di sintesi

Il prompt è un modello di testo contenente segnaposto predefiniti. I segnaposto vengono sostituiti con i valori appropriati in fase di esecuzione e il testo risultante viene inviato al modello di IA. Puoi utilizzare un prompt predefinito o fornire un prompt personalizzato. Tieni presente che un prompt personalizzato può influire sui risultati in modo positivo o negativo.

Puoi perfezionare il testo in un prompt personalizzato per influire sui risultati prodotti dal modello includendo istruzioni aggiuntive ed esempi dettagliati. Per ulteriori informazioni su come creare un prompt personalizzato, consulta la documentazione relativa alle impostazioni dell'archivio dati.

Impostazioni del payload

Le impostazioni del payload consentono di aggiungere gli snippet dello spazio dati come contenuti avanzati nel payload della risposta, che viene visualizzato nel messenger. Puoi attivare o disattivare questa funzionalità.

Opzioni di risposta dello strumento del datastore

Consulta la documentazione sull'evasione per informazioni dettagliate sulla configurazione della risposta dello strumento dell'archivio dati.

Gestori del datastore

Gli handler dei datastore sono un tipo speciale di handler di stato che possono fornire risposte dell'agente generate dall'LLM in base ai contenuti del tuo sito web e ai dati caricati.

Per creare questo gestore, fornisci datastore all'agente.

Utilizzando questi gestori del datastore, il tuo agente può conversare sui contenuti con gli utenti finali.

Limitazioni

Si applicano le seguenti limitazioni:

Controllo degli accessi

Se sei il proprietario del progetto, disponi di tutte le autorizzazioni necessarie per creare un gestore del data store. Se non sei il proprietario del progetto, devi disporre dei seguenti ruoli:

  • Dialogflow Admin
  • Discovery Engine Admin

Per ulteriori informazioni, consulta la guida al controllo dell'accesso.

Aggiungere un data store a un agente

Se non l'hai ancora fatto, segui le istruzioni di configurazione per creare un agente.

Per aggiungere un datastore all'agente: datastore:

  1. Seleziona una pagina e poi fai clic su Aggiungi gestore stato.
  2. Fai clic sulla casella di controllo Datastore e poi su Applica.
  3. Fai clic sul simbolo + nell'angolo in alto a destra della sezione Datastore della pagina.
  4. Nel menu dei datastore visualizzato, fai clic su Aggiungi datastore.
  5. Viene visualizzata una tabella con tutti i datastore esistenti. Fai clic sulla casella accanto al nome di eventuali datastore da utilizzare e fai clic su Salva. Per creare un nuovo datastore, fai clic su Crea nuovo datastore. Verrà visualizzato automaticamente Agent Builder.
  6. (Solo nuovi datastore) Seleziona un'origine dati, poi segui le istruzioni in Agent Builder per configurare il datastore. Per ulteriori informazioni sulla configurazione dei tipi di datastore, consulta la documentazione dei datastore. Fai clic su Crea per creare il nuovo datastore.

Testa l'agente

Puoi utilizzare il simulatore per testare l'agente.

Esegui il deployment del tuo agente

Esistono molti modi per eseguire il deployment dell'agente:

Intenzioni speciali

Oltre a gestire le domande sui contenuti che fornisci, l'agente può gestire i seguenti tipi di domande:

  • Identificazione dell'agente: gestisce domande come "Chi sei?" o "Sei una persona?".
  • Riassegnazione a un agente umano: gestisce domande come "Voglio parlare con una persona" o "Voglio parlare con una persona reale".

Ciò viene ottenuto tramite intent e percorsi intent generati automaticamente.

Risposte dell'agente

Nella sezione Risposte dell'agente, puoi fornire risposte personalizzate che fanno riferimento alle risposte generative. Utilizza $request.knowledge.answers[0] nella sezione L'agente dice per fornire la risposta generativa.

Personalizzazione avanzata delle risposte

In $request.knowledge.* potrebbero essere disponibili informazioni aggiuntive che potrebbero essere utilizzate per personalizzare la risposta. Queste informazioni includono:

  • Le fonti identificate della risposta con i seguenti campi: snippet, titolo, uri.
  • La confidenza di base per la risposta.
  • In caso di un datastore di domande frequenti, la domanda corrispondente alla risposta selezionata.

Nella tabella seguente sono riportati alcuni esempi di come accedere a queste informazioni.

Informazioni Come accedere
Snippet della principale fonte identificata della risposta principale $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "snippet")
Titolo della principale fonte identificata della risposta principale $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "title")
Link alla fonte principale identificata della risposta principale $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "uri")
Numero di fonti identificate per la risposta principale $sys.func.COUNT($sys.func.IDENTITY($request.knowledge.sources[0]))
Numero di risposte della knowledge base $sys.func.COUNT($request.knowledge.answers)
Domanda corrispondente alla risposta principale (solo per le risposte del data store delle domande frequenti) $request.knowledge.questions[0]
Rafforzare l'affidabilità della risposta principale $request.knowledge.grounding_confidences[0]