Gli strumenti per i 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 per i datastore: console
Questa sezione illustra la procedura per aggiungere uno strumento per i datastore a un agente e configurarlo in un'evasione.
Creare uno strumento per i datastore
- Apri la console Agenti di conversazione e scegli un Google Cloud progetto.
- Seleziona un agente dal menu a discesa.
- Vai alla barra dei menu all'estrema sinistra della pagina e seleziona Strumenti.
- Per creare un nuovo strumento per i datastore, fai clic su + Crea. Inserisci un nome univoco per lo strumento e seleziona Datastore dal menu a discesa sotto Tipo. Se vuoi, puoi inserire una descrizione dello strumento nel campo Descrizione.
- In Datastore, fai clic su Aggiungi datastore. La finestra popup contiene un elenco dei datastore esistenti, se presenti. Scegli il datastore che vuoi aggiungere allo strumento.
- (Facoltativo) Per creare un nuovo datastore nella console Vertex AI Agent Builder, fai clic su Crea nuovo datastore. Verrà eseguito automaticamente il reindirizzamento alla console Vertex AI Agent Builder: Vertex AI Agent Builder console
- (Facoltativo) Dopo aver completato la configurazione del nuovo datastore, fai clic su Crea. Per aggiungere il nuovo datastore allo strumento, torna al menu Crea strumento che stai configurando nella console Dialogflow CX e aggiorna la pagina. Il nuovo datastore dovrebbe essere visualizzato nell'elenco dei datastore disponibili.
- Fai clic su Salva nella parte superiore della configurazione Crea strumento per creare il nuovo strumento per i datastore.
Aggiungere lo strumento per i datastore a un'evasione
- Nella barra dei menu all'estrema sinistra, seleziona Flussi.
- Seleziona un flusso e una pagina, poi fai clic sulla route della pagina che vuoi utilizzare con il datastore.
- Nel menu Route, scorri fino a Evasione > Strumento per i datastore. Seleziona lo strumento per i datastore dal menu a discesa.
- Nel menu Route, scorri fino a Evasione > Risposte dell'agente. Fai clic su \+ Aggiungi risposta al dialogo, poi su Risposta dello strumento per i datastore.
- Nel modulo visualizzato, puoi configurare il numero di link di origine e citazioni che possono essere visualizzati nella risposta, nonché specificare il comportamento di fallback se la risposta del datastore è vuota. Puoi inserire una risposta di fallback statica nel campo Risposte di fallback statiche. 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 fallback, fai clic sull'icona a forma di chiave inglese nell'angolo in alto a sinistra della finestra del modulo Risposta del datastore per visualizzare la finestra Risposta condizionale.
- Nella parte superiore del menu Route, fai clic su Salva.
- Vai al simulatore Dialogflow CX per testare i risultati dell'agente.
(Facoltativo) Parametro di sessione per l'override della query
Puoi eseguire l'override della query passata a questo strumento per i datastore utilizzando un parametro di sessione knowledge.overrides.query. Se non è vuoto, lo strumento lo utilizzerà al posto della query dell'utente.
Strumenti per i datastore: 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 es. domande frequenti).
L'esempio seguente mostra come fare riferimento a un datastore. Per saperne di più
consulta il dataStoreConnections riferimento.
"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 per i 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 dei datastore o su come rispondere quando non è presente alcuna risposta.
Puoi sovrascrivere una risposta aggiungendo una voce di domande frequenti per una domanda specifica.
Se vuoi, puoi fornire esempi per migliorare il comportamento dell'agente. L'esempio deve avere gli schemi seguenti. Consulta la documentazione di riferimento per i dettagli.
{
"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 per i datastore
Quando crei esempi di strumenti per i 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 aiutano a indicare al modello di playbook come compilare questo parametro. Se una stringa di filtro non è valida, viene ignorata 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 maggiori dettagli, consulta la pagina degli esempi di 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 che contiene informazioni sul menu potrebbe includere un campo
mealcon "breakfast", "lunch" e "dinner" come valori validi e un camposervingSizeche 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, potrebbe essere necessario aggiungere istruzioni per impedire che il playbook risponda 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 compilare qualsiasi coppia chiave-valore. Questi metadati vengono passati allo strumento per i 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 elemento specifico:
"userMetadata": {
"favoriteColor": "blue",
...
}
Il parametro fallback fornisce una risposta che lo strumento per i datastore deve fornire 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. 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 per i datastore
Se durante i test noti che alcune risposte non soddisfano le tue aspettative, puoi provare a modificare i seguenti parametri per ottimizzare il rendimento. 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 aggiuntive, consulta la pagina delle impostazioni del datastore.
Opzioni di risposta dello strumento per i datastore
Per i dettagli sulla configurazione della risposta dello strumento per i 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:
- Questa funzionalità supporta alcune lingue in GA. Consulta la colonna del datastore nel riferimento alle lingue.
- Sono supportate solo le seguenti regioni:
global,usmulti-region eeumulti-region. - Le app con datastore suddivisi in blocchi e non suddivisi in blocchi non sono supportate.
Controllo degli accessi
Se hai il ruolo Project Owner, disponi di tutte le autorizzazioni necessarie per creare un gestore di datastore. Se non hai il ruolo Project Owner, devi disporre dei 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: datastore:
- Seleziona una pagina, poi fai clic su Aggiungi gestore di stato.
- Seleziona la casella di controllo Datastore, poi fai clic su Applica.
- Fai clic sul simbolo \+ nell'angolo in alto a destra della sezione Datastore della pagina.
- Nel menu dei datastore visualizzato, fai clic su Aggiungi datastore.
- Viene visualizzata una tabella che elenca i datastore esistenti. Fai clic sulla casella accanto al nome dei datastore che vuoi utilizzare e fai clic su Salva. Per creare un nuovo datastore, fai clic su Crea nuovo datastore. Verrà eseguito automaticamente il reindirizzamento a Vertex AI Agent Builder.
- (Solo nuovi datastore) Seleziona un'origine dati, 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
Puoi utilizzare il simulatore per testare l'agente.
Eseguire il deployment dell'agente
Esistono molti modi per eseguire il deployment dell'agente:
L'opzione più 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 è un'opzione particolarmente valida 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 è sotto il tuo controllo per 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: Gestisce domande come "Chi sei?" o "Sei umano?".
- Passaggio a un agente umano: gestisce domande come "Voglio parlare con un essere umano" o "Voglio parlare con una persona reale".
Questa operazione viene eseguita tramite intent generati automaticamente e route di intent.
Risposte dell'agente
Nella sezione Risposte dell'agente , puoi fornire risposte personalizzate che fanno riferimento a 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 origini identificate della risposta con i seguenti campi: snippet, titolo, URI.
- La confidenza del grounding per la risposta.
- Nel caso di un datastore di domande frequenti, la domanda corrispondente alla risposta selezionata.
Consulta la tabella seguente per esempi di come accedere a queste informazioni.
| Informazioni | Come accedere |
|---|---|
| Snippet dell'origine identificata principale della risposta principale | $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "snippet") |
| Titolo dell'origine identificata principale della risposta principale | $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "title") |
| Link dell'origine identificata principale 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 del grounding per la risposta principale | $request.knowledge.grounding_confidences[0] |