Strumenti per i datastore

Gli strumenti del datastore possono fornire risposte dell'agente generate dall'AI in base ai contenuti del sito web e ai dati caricati. Durante l'evasione , l'agente può trovare le risposte alle domande degli utenti finali nei datastore.

Strumenti del datastore: console

In questa sezione viene spiegato come aggiungere uno strumento del datastore a un agente e configurarlo in un'evasione.

Creare uno strumento del datastore

  1. Apri la console Agenti di conversazione e scegli un Google Cloud progetto.
  2. Seleziona un agente dal menu a discesa.
  3. Vai alla barra dei menu all'estrema sinistra della pagina e seleziona Strumenti.
  4. Fai clic su + Crea. Inserisci un nome univoco per lo strumento e seleziona Datastore dal menu a discesa in Tipo. (Facoltativo) Inserisci una descrizione dello strumento nel campo Descrizione.
  5. Fai clic su Aggiungi datastore. Nella finestra che viene visualizzata è presente un elenco dei datastore esistenti, se presenti. Seleziona il datastore da aggiungere allo strumento.
  6. (Facoltativo) Per creare un nuovo datastore nella console Vertex AI Agent Builder, fai clic su Crea nuovo datastore per essere reindirizzato automaticamente.
  7. (Facoltativo) Dopo aver configurato il nuovo datastore, fai clic su Crea. Per aggiungere il nuovo datastore allo strumento, torna al menu Crea strumento nella console Dialogflow CX e aggiorna la pagina. Il nuovo datastore viene visualizzato nell'elenco dei datastore disponibili.
  8. Fai clic su Salva nella parte superiore della configurazione Crea strumento per creare il nuovo strumento del datastore.

Aggiungere lo strumento del datastore a un'evasione

  1. Vai alla barra dei menu all'estrema sinistra e seleziona Flussi.
  2. Seleziona un flusso e una pagina, poi fai clic sulla route da utilizzare con il datastore.
  3. Vai a Evasione > Strumento del datastore e seleziona lo strumento del datastore dal menu a discesa.
  4. Vai a Evasione > Risposte dell'agente, fai clic su +Aggiungi risposta al dialogo, e poi su Risposta dello strumento del datastore.
  5. Configura il numero di link di origine e citazioni da visualizzare nella risposta e specifica il comportamento di fallback se la risposta del datastore è vuota. Inserisci una risposta di fallback statica nel campo Risposte di fallback statiche. (Facoltativo) Fai clic sulla casella di controllo Fallback generativo per utilizzare l'AI per generare una risposta prima di utilizzare la risposta di fallback statica. Per personalizzare le risposte di fallback, fai clic sull'icona a forma di chiave inglese nell'angolo in alto a sinistra della finestra del modulo Risposta del datastore per aprire la finestra Risposta condizionale.
  6. Nella parte superiore del menu Route, fai clic su Salva.
  7. Vai al simulatore Dialogflow CX per testare i risultati dell'agente.

(Facoltativo) Parametro sessione di override della query

Puoi sostituire la query passata a questo strumento del datastore utilizzando un parametro sessione knowledge.overrides.query. Se questo parametro non è vuoto, lo strumento lo utilizzerà al posto della query dell'utente.

Strumenti del datastore: API

Per impostazione predefinita, l'agente chiama il dataStoreTool metodo 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, una pagina di 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 del datastore potrebbero contenere anche snippet sull'origine dei contenuti utilizzata per generare la risposta. L'agente può fornire istruzioni su come procedere con la risposta del datastore o su come rispondere quando non viene trovata alcuna risposta.

Puoi sovrascrivere una risposta aggiungendo una voce di domande frequenti per una domanda specifica.

(Facoltativo) Puoi fornire esempi per migliorare il comportamento dell'agente. Gli esempi devono seguire lo schema. Per i dettagli, 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 del datastore

Quando crei esempi di strumenti del 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 dati strutturati o non strutturati con i metadati. Questa stringa deve seguire la sintassi dell'espressione di filtro supportata per i datastore. Più esempi dettagliati indicano al modello di playbook come compilare questo parametro. Se una stringa di filtro non è valida, viene ignorata durante la query di ricerca.

L'esempio seguente mostra una stringa filter che puoi utilizzare per perfezionare i risultati di ricerca in base alla località:

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

Per saperne di più sugli esempi di playbook, consulta la pagina degli esempi.

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 che contiene informazioni sul menu potrebbe includere un campo meal con "breakfast", "lunch" e "dinner" come valori validi e un campo servingSize che potrebbe essere qualsiasi numero intero da 0 a 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 pubblico di utenti esterni, aggiungi istruzioni per impedire 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 è possibile inserire qualsiasi coppia chiave-valore. Questi metadati vengono passati allo strumento del datastore per migliorare i risultati di ricerca e la risposta dello strumento. Più esempi dettagliati aiutano a indicare al modello di playbook come compilare questo parametro.

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

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

Il parametro fallback fornisce una risposta che lo strumento del datastore restituisce se non esiste una risposta riassuntiva valida per la query. Puoi fornire più esempi per indicare al modello di playbook come compilare il campo di fallback per gli input dell'utente relativi a diversi argomenti. L'output dello strumento non contiene snippet, il che contribuisce a ridurre la latenza e l'utilizzo 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 datastore

Se durante i test noti che alcune risposte non soddisfano le tue aspettative, puoi provare a modificare i seguenti parametri per ottimizzare le prestazioni. Sono disponibili sia chiamando direttamente l'API sia facendo clic sul nome del datastore nella pagina Strumenti della console. Per saperne di più su queste opzioni di configurazione, consulta la pagina delle impostazioni del datastore.

Opzioni di risposta dello strumento del datastore

Per saperne di più sulla configurazione della risposta dello strumento del datastore, consulta la documentazione sull'evasione.

Gestori di datastore

I gestori di datastore sono un tipo speciale di gestore di stato che può fornire risposte dell'agente generate da LLM in base ai contenuti del sito web e ai dati caricati.

Per creare questo gestore, fornisci i datastore all'agente.

Utilizzando questi gestori di datastore, l'agente può avere conversazioni sui contenuti con gli utenti finali.

Limitazioni

Si applicano le seguenti limitazioni:

Controllo degli accessi

Se sei il proprietario del progetto, disponi delle autorizzazioni necessarie per creare un gestore di datastore. Se non sei il proprietario del progetto, devi avere i seguenti ruoli:

  • Amministratore di Dialogflow
  • Amministratore di Discovery Engine

Per saperne di più, consulta la guida al controllo degli accessi.

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:

  1. Seleziona una pagina e poi fai clic su Aggiungi gestore di stato.
  2. Seleziona la casella di controllo Datastore e poi fai clic su Applica.
  3. Fai clic sul simbolo + nell'angolo in alto a destra della sezione Datastore della pagina.
  4. Nel menu dei datastore che viene visualizzato, fai clic su Aggiungi datastore.
  5. Viene visualizzata una tabella che elenca i datastore esistenti. Seleziona la casella di controllo accanto al nome dei datastore che vuoi utilizzare e poi fai clic su Salva. Per creare un nuovo datastore, fai clic su Crea nuovo datastore. Viene eseguito automaticamente il reindirizzamento a Vertex AI Agent Builder.
  6. (Solo nuovi datastore) Seleziona un'origine dati e poi segui le istruzioni in Vertex AI Agent Builder per configurare il datastore. Per saperne di più sulla configurazione dei tipi di datastore, consulta la documentazione sui datastore. Fai clic su Crea per creare il nuovo datastore.

Testare l'agente

Eseguire il deployment dell'agente

Puoi eseguire il deployment dell'agente in diversi modi:

  • Un'opzione semplice è utilizzare un'integrazione, che fornisce un'interfaccia utente per l'agente. Ogni integrazione fornisce istruzioni per il deployment.
  • L'integrazione di Dialogflow CX Messenger è una buona opzione per i gestori di datastore. Dispone di opzioni integrate per le funzionalità generative.
  • Puoi creare la tua interfaccia utente e utilizzare l'API Dialogflow CX per le interazioni. L'implementazione dell'interfaccia utente gestisce il deployment.

Intent speciali

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

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

Questa operazione viene eseguita tramite intent e route di intent generati automaticamente.

Risposte dell'agente

Nella sezione Risposte dell'agente, fornisci 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.* per personalizzare la risposta. Queste informazioni includono:

  • Le origini identificate della risposta con i seguenti campi: snippet, titolo, URI.
  • La confidenza di grounding per la risposta.
  • Per un datastore di domande frequenti, la domanda corrispondente alla risposta selezionata.

La tabella seguente fornisce esempi di come accedere a queste informazioni.

Informazioni Come accedere
Snippet dell'origine principale identificata della risposta principale $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "snippet")
Titolo dell'origine principale identificata della risposta principale $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "title")
Link dell'origine principale identificata della risposta principale $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "uri")
Numero di origini identificate per la risposta principale $sys.func.COUNT($sys.func.IDENTITY($request.knowledge.sources[0]))
Numero di risposte di Knowledge $sys.func.COUNT($request.knowledge.answers)
Domanda corrispondente alla risposta principale (solo per le risposte del datastore di domande frequenti) $request.knowledge.questions[0]
Confidenza di grounding per la risposta principale $request.knowledge.grounding_confidences[0]