Strumenti per i datastore

Gli strumenti di archiviazione dei dati possono fornire risposte dell'agente generate dall'AI in base ai contenuti del sito web e ai dati caricati. Il tuo agente può trovare le risposte alle domande degli utenti finali nei tuoi datastore durante l'evasione.

Strumenti di archiviazione dei dati: console

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

Crea uno strumento datastore

  1. Apri la console Conversational Agents e scegli un progetto Google Cloud.
  2. Seleziona un agente dal menu a discesa.
  3. Vai alla barra dei menu all'estrema sinistra della pagina e seleziona Strumenti.
  4. Per creare un nuovo strumento datastore, fai clic su + Crea. Inserisci un Nome univoco per lo strumento e seleziona Datastore dal menu a discesa in Tipo. (Facoltativo) Puoi inserire una descrizione dello strumento nel campo Descrizione.
  5. Console Agenti conversazionali: in Datastore, fai clic su Aggiungi datastore per aggiungere uno o più datastore preesistenti allo strumento oppure su Crea datastore per aggiungerne uno nuovo. Se crei un nuovo datastore, viene visualizzato un menu dei tipi di datastore. Le opzioni Sito web, Cloud Storage (domande frequenti) e Cloud Storage (dati non strutturati) possono essere completate nella console Conversational Agents. Se scegli un altro tipo, verrà eseguito automaticamente il reindirizzamento ad AI Applications per creare il datastore: Console AI Applications
  6. Console Dialogflow CX: in Datastore, fai clic su Aggiungi datastore. La finestra popup contiene un elenco dei datastore esistenti, se presenti. Scegli gli datastore da aggiungere allo strumento. Per creare un nuovo datastore nella console AI Applications, fai clic su Crea nuovo datastore. Verrà visualizzata automaticamente la pagina AI Applications: Console AI Applications
  7. Dopo aver completato la configurazione del nuovo datastore, fai clic su Crea. Se hai creato un nuovo datastore nella console Conversational Agents (Dialogflow CX), ora dovrebbe essere visualizzato nell'elenco dei datastore. Se hai creato un datastore in AI Applications, torna al menu Crea strumento che stai configurando nella console 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 Crea strumento per creare il nuovo strumento datastore.
  9. Per ulteriori informazioni sulle opzioni di configurazione aggiuntive dello strumento datastore, consulta la pagina delle impostazioni del datastore.

Aggiungere lo strumento datastore a un adempimento

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

Strumenti di archiviazione dei dati: API

Per impostazione predefinita, l'agente chiamerà il dataStoreTool per tuo conto.

Esistono tre tipi di datastore:

  • PUBLIC_WEB: Un datastore che contiene contenuti web pubblici.
  • UNSTRUCTURED: un datastore che contiene dati privati non strutturati.
  • STRUCTURED: un datastore che contiene dati strutturati (ad esempio domande frequenti).

L'esempio seguente mostra come fare riferimento a un datastore. Per saperne di più, 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 datastore potrebbero contenere anche snippet sull'origine dei contenuti utilizzati 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 delle domande frequenti per una domanda specifica.

Se vuoi, puoi fornire esempi per migliorare il comportamento dell'agente. L'esempio deve avere gli schemi seguenti. 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 Playbooks) Esempi di strumenti per i datastore

Quando crei esempi di strumenti di datastore, 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 metadati. Questa stringa deve seguire la sintassi delle espressioni di filtro supportate per i datastore. Esempi multipli e dettagliati aiutano a istruire il modello del playbook su 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 posizione:

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

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

Best practice per il filtraggio:

  • Specifica i campi disponibili per il filtraggio e i valori validi per ciascuno di questi campi, in modo che il playbook comprenda i vincoli per la creazione di filtri validi. Ad esempio, un datastore contenente informazioni sul menu potrebbe includere un campo meal con "colazione", "pranzo" e "cena" come valori validi e un campo servingSize che potrebbe essere qualsiasi numero intero da 0 a 5. Le istruzioni potrebbero essere simili a quelle dell'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 pubblico di utenti esterni, potrebbe essere necessario aggiungere istruzioni per evitare che il playbook risponda 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 possono essere inserite coppie chiave-valore. Questi metadati vengono passati nello strumento di datastore per migliorare i risultati di ricerca e la risposta dello strumento. Esempi multipli e dettagliati aiutano a istruire il modello del playbook su come compilare questo parametro.

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

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

Il parametro fallback fornisce una risposta che lo strumento di datastore deve restituire se non esiste una risposta riepilogativa valida per la query. Puoi fornire più esempi per indicare al modello del playbook come compilare il campo di riserva per gli input degli utenti relativi a diversi argomenti. Non sono presenti snippet nell'output dello strumento, 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 datastore

Se durante i test riscontri che alcune risposte non soddisfano le tue aspettative, puoi provare a modificare i seguenti parametri per perfezionare il rendimento. Sono disponibili chiamando direttamente l'API o facendo clic sul nome del datastore nella pagina Strumenti della console. Per ulteriori informazioni su queste opzioni di configurazione aggiuntive, consulta la pagina delle impostazioni del datastore.

Opzioni di risposta dello strumento di archiviazione dei dati

Per informazioni dettagliate sulla configurazione della risposta dello strumento di datastore, consulta la documentazione sull'evasione.

Gestori datastore

I gestori dei datastore sono un tipo speciale di gestore di stato che può 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 di 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 datastore. Se non sei il proprietario del progetto, devi disporre dei seguenti ruoli:

  • Amministratore Dialogflow
  • Discovery Engine Admin

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

Aggiungere un datastore 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, quindi fai clic su Aggiungi gestore di stato.
  2. Fai clic sulla casella di controllo Datastore, quindi 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 che elenca tutti i datastore esistenti. Fai clic sulla casella accanto al nome di tutti i datastore che vuoi utilizzare e fai clic su Salva. Per creare un nuovo datastore, fai clic su Crea nuovo datastore. Vieni reindirizzato automaticamente ad AI Applications.
  6. (Solo per i nuovi datastore) Seleziona un'origine dati, poi segui le istruzioni in Applicazioni AI per configurare il datastore. Per ulteriori informazioni sulla configurazione dei tipi di datastore, consulta la documentazione sui datastore. Fai clic su Crea per creare il nuovo datastore.

Testa l'agente

Puoi utilizzare il simulatore per testare il tuo agente.

Esegui il deployment del tuo agente

Esistono molti modi per eseguire il deployment dell'agente:

Intenzioni speciali

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

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

Ciò si ottiene tramite intent e route degli intent generate 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

Potrebbero essere disponibili ulteriori informazioni in $request.knowledge.* che potrebbero essere utilizzate per personalizzare la risposta. Queste informazioni includono:

  • Le fonti identificate della risposta con i seguenti campi: snippet, titolo, uri.
  • L'affidabilità della risposta.
  • Nel caso di un datastore delle domande frequenti, la domanda corrispondente alla risposta selezionata.

Consulta la tabella seguente per esempi di accesso a queste informazioni.

Informazioni Come accedere
Snippet della fonte principale 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 della principale fonte identificata della risposta migliore $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "uri")
Numero di fonti identificate per la risposta migliore $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 dell'datastore delle domande frequenti) $request.knowledge.questions[0]
Affidabilità della risposta principale $request.knowledge.grounding_confidences[0]