Gli strumenti del datastore possono fornire risposte dell'agente generate dall'AI 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 l'adempimento.
Strumenti per i datastore: console
Questa sezione spiega come aggiungere uno strumento datastore a un agente e configurarlo in un fulfillment.
Crea uno strumento datastore
- Apri la console Conversational Agents e seleziona il tuo progetto.
- Seleziona un agente dal menu a discesa.
- Vai alla barra dei menu sul lato sinistro della pagina e seleziona Strumenti.
- Fai clic su + Crea. Inserisci un Nome univoco per lo strumento e seleziona Datastore dal menu a discesa in Tipo. Facoltativamente, inserisci una descrizione dello strumento nel campo Descrizione.
- Fai clic su Aggiungi datastore. La finestra visualizzata contiene un elenco dei tuoi datastore esistenti, se presenti. Seleziona il datastore da aggiungere allo strumento.
- (Facoltativo) Per creare un nuovo datastore nella console di Vertex AI Agent Builder, fai clic su Crea nuovo datastore per essere reindirizzato automaticamente.
- (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.
- Fai clic su Salva nella parte superiore della configurazione Crea strumento per creare il nuovo strumento del datastore.
Aggiungi lo strumento datastore a un fulfillment
- Vai alla barra dei menu all'estrema sinistra e seleziona Flussi.
- Seleziona un flusso e una pagina, quindi fai clic sulla Route da utilizzare con il datastore.
- Vai a Fulfillment > Strumento datastore e seleziona lo strumento datastore dal menu a discesa.
- Vai a Fulfillment > Risposte dell'agente, fai clic su + Aggiungi risposta al dialogo e poi su Risposta dello strumento datastore.
- Configura il numero di link e citazioni delle fonti da visualizzare nella risposta e specifica il comportamento di riserva se la risposta del datastore è vuota. Inserisci una risposta di riserva statica nel campo Risposte di riserva statiche. Facoltativamente, 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 riserva, 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.
- Nella parte superiore del menu Route (Percorso), fai clic su Save (Salva).
- Vai al simulatore di Dialogflow CX per testare i risultati dell'agente.
Parametro di sessione facoltativo per l'override della query
Puoi eseguire l'override della query passata a questo strumento del datastore utilizzando un parametro di 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 metodo 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, una sezione 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 datastore potrebbero anche contenere snippet sull'origine dei contenuti utilizzata per generare la risposta. L'agente può fornire istruzioni su come procedere con la risposta dal datastore o su come rispondere se non viene trovata alcuna 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. Gli esempi devono seguire lo schema. Per maggiori 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 ti 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. Più esempi dettagliati indicano al modello del playbook come compilare questo parametro. Se una stringa di filtro non è valida, il filtro viene ignorato 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 i filtri:
Specifica i campi disponibili per il filtro 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
mealcon "colazione", "pranzo" e "cena" come valori validi e un camposervingSizeche potrebbe essere un 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 pubblico di utenti esterni, aggiungi istruzioni per impedire al playbook di rispondere 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 fornire informazioni più precise ai risultati di ricerca e alla risposta dello strumento.
Più esempi 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 per 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 istruire il modello del playbook su come compilare il campo di riserva per gli input utente relativi ad argomenti diversi. 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 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 ulteriori informazioni su queste opzioni di configurazione, consulta la pagina delle impostazioni del datastore.
Opzioni di risposta dello strumento datastore
Per saperne di più sulla configurazione della risposta dello strumento datastore, consulta la documentazione sul fulfillment.
Gestori dei datastore
I gestori dei datastore sono un tipo speciale di gestore dello 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 i datastore all'agente.
Utilizzando questi gestori di datastore, il tuo 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 per le lingue.
- Sono supportate solo le seguenti regioni:
global,usmultiregionale eeumultiregionale. - Le app con datastore con e senza chunk non sono supportate.
Controllo degli accessi
Se sei il Project Owner, disponi delle autorizzazioni necessarie per creare un gestore del datastore. Se non sei il Project Owner, devi disporre dei seguenti ruoli:
- Dialogflow Admin
- Discovery Engine Admin
Per saperne di più, consulta la guida al controllo dell'accesso.
Aggiungi 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:
- Seleziona una pagina, quindi fai clic su Aggiungi gestore stato.
- Seleziona la casella di controllo Datastore e 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 con tutti i datastore esistenti. Seleziona la casella di controllo accanto al nome dei datastore che vuoi utilizzare, quindi fai clic su Salva. Per creare un nuovo datastore, fai clic su Crea nuovo datastore. Viene eseguito il reindirizzamento automatico a Vertex AI Agent Builder.
- (Solo per i nuovi datastore) Seleziona un'origine dati, quindi 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.
Testa l'agente
Esegui il deployment del tuo agente
Puoi eseguire il deployment dell'agente in diversi modi:
- Utilizza un'integrazione per fornire 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 dei 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 un essere umano?"
- Assegnazione a un agente umano: l'agente gestisce domande come "Voglio parlare con un agente umano" o "Voglio parlare con una persona reale".
Ciò avviene 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
Ulteriori informazioni potrebbero essere disponibili in $request.knowledge.* per personalizzare la risposta. Queste informazioni includono:
- Le fonti identificate della risposta con i campi: snippet, titolo e 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 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 fonte principale identificata della risposta principale | $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "title") |
| Link della 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 datastore di domande frequenti) | $request.knowledge.questions[0] |
| Affidabilità del grounding per la risposta principale | $request.knowledge.grounding_confidences[0] |