Agenti del datastore

Gli agenti del datastore sono un tipo speciale di agente Dialogflow che può fornire risposte degli agenti generate da LLM in base ai contenuti del tuo sito web e ai dati caricati.

Per creare questo agente, devi fornire i datastore durante la creazione dell'agente.

Un agente del datastore ha gestori di stato speciali denominati gestori del datastore. Utilizzando questi gestori del datastore, l'agente del datastore può conversare sui contenuti con i tuoi utenti finali.

Limitazioni

Si applicano le seguenti limitazioni:

  • Al momento questa funzionalità supporta solo determinate lingue in GA. Consulta la colonna del datastore nel riferimento sulle lingue.
  • Sono supportate solo le seguenti regioni: global, us a più regioni e eu a più regioni.
  • L'unico tipo di datastore strutturato supportato è quello delle domande frequenti.
  • Le app con datastore in blocchi e non in blocchi non sono supportate.

Controllo dell'accesso

Se sei il proprietario del progetto, hai tutte le autorizzazioni necessarie per creare un agente del datastore. Se non sei il proprietario del progetto, devi disporre dei seguenti ruoli:

  • Amministratore Dialogflow
  • Amministratore di Discovery Engine

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

Crea un agente del datastore

Per creare un agente del datastore:

  1. Se non l'hai già fatto, segui le istruzioni per la setup di Dialogflow.
  2. Vai alla console di Agent Builder:

    Console Agent Builder

  3. Seleziona il progetto dal menu a discesa della console.

  4. Se non hai già attivato l'API, leggi e accetta i Termini di servizio e poi fai clic su Continua e attiva l'API.

  5. Fai clic su Create a New App (Crea una nuova app) o New App (Nuova app).

  6. Seleziona Chat.

  7. Fornisci il nome della tua azienda nella sezione Configurazioni agente.

  8. Espandi la sezione delle impostazioni di lingua e fuso orario.

  9. Seleziona un fuso orario

  10. Seleziona una lingua predefinita.

  11. Fornisci il nome di un agente nella sezione Nome agente.

  12. Seleziona una o più regioni nella sezione Località dell'agente.

  13. Fai clic su Continua.

  14. Connetti un datastore all'agente eseguendo una delle seguenti operazioni:

    • Seleziona un datastore esistente creato in precedenza.
    • Crea un nuovo datastore:
      1. Fai clic su Crea nuovo datastore.
      2. Scegli un'origine di dati.
      3. Fornisci i dati e la configurazione per l'origine del datastore selezionata. La località del datastore deve corrispondere alla località dell'agente.
      4. Fai clic su Crea per creare il datastore.
      5. Seleziona il nuovo datastore.
  15. Fai clic su Crea.

  16. L'agente sarà stato creato. A questo punto verrai reindirizzato automaticamente alla pagina Datastore disponibili, dove potrai aggiungere altri datastore in base alle esigenze.

  17. Se hai creato un nuovo datastore per un sito web, devi verificare il tuo dominio.

  18. Per aprire l'agente con Dialogflow CX, fai clic su Anteprima nel riquadro a sinistra. Nella console Dialogflow CX, puoi modificare o aggiungere gestori dei datastore, eseguire il deployment dell'agente e, facoltativamente, aggiungere flussi che gestiranno scenari non coperti dai datastore.

Testa l'agente

Puoi utilizzare il simulatore Dialogflow CX per testare l'agente.

Impostazioni

Sono disponibili le seguenti impostazioni dell'agente del datastore.

Grounding

Per ogni risposta generata dai contenuti dei tuoi datastore connessi, viene calcolato un livello di confidenza, che valuta l'affidabilità che tutte le informazioni nella risposta sono supportate da informazioni nei datastore. Puoi selezionare il livello di confidenza più basso consentito e l'agente non restituirà risposte inferiori a quel livello.

Puoi scegliere tra 5 livelli di confidenza: molto basso, basso, medio, alto e molto alto.

Puoi anche applicare un filtro euristica di grounding. Se attivata, le risposte contenenti contenuti probabilmente imprecisi sulla base di allucinazioni comuni vengono soppresse.

Richiesta datastore

Puoi aggiungere ulteriori informazioni sull'agente che possono migliorare la qualità delle risposte generate dai contenuti del datastore e farle sembrare più simili al tuo brand:

  • Nome agente: il nome che deve chiamarsi l'agente. Se non viene configurato, verrà utilizzato il valore predefinito Assistente IA.
  • Identità dell'agente: come sarà l'agente tipo. Se non viene configurato, verrà utilizzato il valore predefinito Assistente IA.
  • Nome dell'azienda Imposta il nome della tua azienda. Questo valore dovrebbe essere già stato impostato come parte del flusso di creazione dell'agente, ma è modificabile secondo necessità. Ti consigliamo di impostare questo campo correttamente (e in particolare di non lasciarlo vuoto), per evitare di compromettere la qualità delle risposte generate.
  • Descrizione dell'azienda Una breve descrizione di ciò che l'azienda fa o offre l'azienda.
  • Ambito agente: il campo in cui deve essere utilizzato l'agente. Se non viene configurato, verrà utilizzato il valore predefinito sul sito web dell'azienda.

Dopo aver compilato questa sezione parzialmente o completamente, puoi controllare sul lato destro, in Il tuo prompt, il breve paragrafo che è stato ricavato da queste impostazioni. Questo dato viene utilizzato nell'ambito della generazione delle risposte.

Prompt di selezione e riepilogo del modello di datastore

Quando la query di un utente viene elaborata, l'agente esegue una ricerca nei datastore per trovare origini attendibili. L'agente invia quindi la query utente e le origini trovate all'LLM, che esegue un riepilogo.

Puoi selezionare il modello da utilizzare per il riepilogo e, facoltativamente, fornire il tuo prompt.

Seleziona un modello generativo

Puoi selezionare il modello generativo utilizzato da un agente di datastore per la richiesta generativa di riassunto. La tabella seguente contiene le opzioni disponibili:

Identificatore modello Supporto delle lingue
Predefinito Questa è la configurazione attualmente consigliata ed è soggetta a modifiche nel tempo. Se utilizzi questa opzione, potresti riscontrare cambiamenti nel comportamento degli agenti (probabili miglioramenti). Per ottenere una maggiore coerenza nel comportamento dell'agente, seleziona un modello specifico.
text-bison@001 Funzionalità disponibile in tutte le lingue supportate.
text-bison@002 Funzionalità disponibile in tutte le lingue supportate.
text-bison@001 ottimizzato (conversazionale) Al momento è supportato solo l'inglese.
text-bison@001 ottimizzato (informativo) Al momento è supportato solo l'inglese.
gemini-1.0-pro-001 Funzionalità disponibile in tutte le lingue supportate.

Personalizza il prompt di riassunto

Puoi fornire il tuo prompt per la chiamata LLM di riassunto. Il prompt è un modello di testo che può contenere segnaposto predefiniti. I segnaposto verranno sostituiti con i valori appropriati in fase di runtime e il testo finale verrà inviato all'LLM.

I segnaposto sono i seguenti:

  • $original-query: testo della query dell'utente.
  • $rewritten-query: Dialogflow utilizza un modulo di riscrittura per riscrivere la query dell'utente originale in un formato più accurato.
  • $sources: Dialogflow utilizza Enterprise Search per cercare origini in base alla query dell'utente. Le origini trovate vengono visualizzate in un formato specifico:

    [1] title of first source
    content of first source
    [2] title of second source
    content of second source
    
  • $conversation: la cronologia della conversazione viene visualizzata nel seguente formato:

    Human: user's first query
    AI: answer to user's first query
    Human: user's second query
    AI: answer to user's second query
    

Un prompt personalizzato dovrebbe indicare all'LLM di restituire "NOT_ENOUGH_INFORMATION" quando non può fornire una risposta. In questo caso, l'agente richiama un evento senza corrispondenza.

Ad esempio:

Given the conversation between a Human and a AI assistant and a list of sources,
write a final answer for the AI assistant.
Follow these guidelines:
+ Answer the Human's query and make sure you mention all relevant details from
  the sources, using exactly the same words as the sources if possible.
+ The answer must be based only on the sources and not introduce any additional
  information.
+ All numbers, like price, date, time or phone numbers must appear exactly as
  they are in the sources.
+ Give as comprehensive answer as possible given the sources. Include all
  important details, and any caveats and conditions that apply.
+ The answer MUST be in English.
+ Don't try to make up an answer: If the answer cannot be found in the sources,
  you admit that you don't know and you answer NOT_ENOUGH_INFORMATION.
You will be given a few examples before you begin.

Example 1:
Sources:
[1] <product or service> Info Page
Yes, <company> offers <product or service> in various options or variations.

Human: Do you sell <product or service>?
AI: Yes, <company> sells <product or service>. Is there anything else I can
help you with?

Example 2:
Sources:
[1] Andrea - Wikipedia
Andrea is a given name which is common worldwide for both males and females.

Human: How is the weather?
AI: NOT_ENOUGH_INFORMATION


Begin! Let's work this out step by step to be sure we have the right answer.

Sources:
$sources

$conversation
Human: $original-query
AI:

Fallback del datastore

Questa sezione prevede le seguenti impostazioni:

  • Link di riserva: mostra il link più appropriato se l'agente non riesce a produrre una risposta.
  • Abilita l'IA generativa: consenti al datastore di utilizzare l'AI generativa durante la generazione di risultati.

Migliora le risposte degli agenti

Se durante il test noti alcune risposte che non soddisfano le tue aspettative, prova a procedere nel seguente modo.

Esegui il deployment del tuo agente

Esistono molti modi per eseguire il deployment dell'agente:

  • L'opzione più semplice consiste nell'utilizzare un'integrazione Dialogflow CX, che fornisce un'interfaccia utente per l'agente. Ogni integrazione fornisce istruzioni per il deployment.

  • L'integrazione di Dialogflow Messenger è un'opzione particolarmente valida per gli agenti dei datastore. Ha 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 controlla l'implementazione.

Monitorare le prestazioni dell'agente

Puoi monitorare la cronologia delle conversazioni degli agenti e utilizzare lo strumento di analisi per le statistiche degli agenti.

Intenzioni speciali

Oltre a gestire le domande sui contenuti forniti, l'agente del datastore può gestire i seguenti tipi di domande:

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

Ciò è possibile grazie a intent e routine di intent generati automaticamente.

Agenti ibridi

Se disponi già di un agente Dialogflow CX, puoi eseguirne l'upgrade a un agente ibrido, che combina la potenza di controlli delle conversazioni precisi (flussi, parametri, intent, condizioni, transizioni e così via) con le funzionalità generative del gestore del datastore.

Nell'ambito di questo upgrade, potresti voler eliminare o disattivare temporaneamente le route di intent (durante il test dei gestori del datastore) per determinati scenari di conversazione dal tuo agente, perché i gestori del datastore possono gestire questi scenari in modo più semplice.

I seguenti scenari sono consigliati per i gestori dei datastore:

  • Domande a cui possono rispondere i documenti o il sito web della tua organizzazione.
  • Domande frequenti che non richiedono ricerche nel database.

I seguenti scenari non sono consigliati per i gestori dei datastore:

  • Contenuti che non forniscono risposte alle domande desiderate.
  • Domande che richiedono ricerche nel database o richieste del server.
  • Scenari che richiedono l'oscuramento dei dati.
  • Scenari che richiedono risposte deterministiche dell'agente.

Dialogflow valuta l'input utente finale nel seguente ordine di preferenza:

  1. Corrispondenza di intent per le route nell'ambito
  2. Domande frequenti sui contenuti del datastore
  3. Contenuti del datastore non strutturati

Ordine di valutazione dell'input

Dialogflow valuta l'input utente finale nel seguente ordine per gli agenti ibridi:

  1. Input dei parametri durante la compilazione del modulo.
  2. Corrispondenze di intent per le route nell'ambito.
  3. Gestore del datastore con contenuti del datastore Domande frequenti.
  4. Gestore del datastore con contenuti non strutturati del datastore.

Aggiungere o modificare i gestori del datastore per un agente esistente

I gestori del datastore sono un tipo speciale di gestore dello stato di Dialogflow. Ciò significa che puoi applicarle a flussi o pagine e che vengono valutate utilizzando le stesse regole di ambito.

Per aggiungere o modificare un gestore di datastore:

  1. Vai alla console Dialogflow CX.
  2. Selezionare il tuo progetto Google Cloud.
  3. Seleziona l'agente.
  4. Seleziona il flusso associato al gestore del datastore. In genere questo è il flusso di avvio predefinito.
  5. Seleziona la pagina associata al gestore del datastore. In genere si tratta della pagina iniziale.
  6. Fai clic su Aggiungi gestore di stato nei dati della pagina, poi seleziona datastore.
  7. Se devi creare un datastore, si aprirà l'interfaccia utente di Vertex AI Agent Builder. Consulta le informazioni sul datastore per effettuare le selezioni desiderate.
  8. Se hai già un datastore, fai clic su Modifica datastore.
  9. Apporta gli aggiornamenti necessari e salva al termine dell'operazione. Consulta le informazioni di seguito sulle impostazioni specifiche per i datastore.

Risposte dell'agente

Nella sezione Risposte dell'agente, puoi fornire risposte personalizzate che fanno riferimento a risposte generative. Usa $request.knowledge.questions[0] nella sezione L'agente dice per fornire una risposta generativa.

Opzioni di risposta del datastore

Puoi aggiornare il campo Numero massimo di link per indicare il numero massimo di link supplementari che dovrebbero essere forniti dalle risposte generative.

Gestire le digressioni delle conversazioni

Durante una conversazione, l'utente finale potrebbe porre domande di chiarimento. Ad esempio, durante la raccolta dei dati della carta di credito, potrebbe voler chiarire che cos'è un CVV. In questo caso, l'agente deve rispondere alla domanda e tornare a raccogliere i dati necessari della carta di credito. A questo scopo, puoi creare un gestore dell'archivio dati con datastore che rispondono alla domanda, applicarlo alla pagina iniziale del flusso del flusso che gestisce la raccolta dei dati della carta di credito e impostare una destinazione di transizione per questo gestore affinché torni alla "pagina corrente".

Gestire le corrispondenze di intent indesiderate

Se il tuo agente abbina gli intent quando dovrebbe utilizzare un gestore del datastore, puoi provare quanto segue per risolvere il problema:

  • Elimina o modifica le frasi di addestramento che sono vaghe, in modo che tutte le frasi di addestramento gestiscano con precisione l'intenzione desiderata e non siano in conflitto con i contenuti del tuo datastore.
  • Utilizza esempi negativi per evitare la corrispondenza di intent.

Filtro del datastore

In alcuni casi, a seconda dei valori dei parametri di sessione, potresti volere che solo determinati datastore siano disponibili per le query. Ad esempio, potresti avere datastore univoci per le categorie di prodotti. Per filtrare i dati del datastore in base alle categorie di prodotti:

  • Imposta i parametri di sessione sulle categorie di prodotti.
  • Crea route di condizioni che controllano i valori dei parametri di sessione e passa a una pagina specifica che abbia il gestore del datastore desiderato.
  • Il gestore del datastore deve tornare alla pagina delle chiamate, in modo che la conversazione possa continuare.

Personalizzazione

Per rendere le risposte generative più pertinenti per gli utenti finali, puoi fornire a Dialogflow informazioni sugli utenti.

Queste informazioni vengono fornite in formato JSON. Non c'è uno schema previsto, quindi puoi definire le proprietà degli oggetti. Questo JSON viene inviato al modello LLM così com'è, quindi i nomi e i valori descrittivi delle proprietà garantiscono i risultati migliori.

Ad esempio:

{
  "subscription plan": "Business Premium Plus",
  "devices owned": [
    {"model": "Google Pixel 7"},
    {"model": "Google Pixel Tablet"}
  ]
}

Personalizzazione con l'API Dialogflow

Puoi fornire questi dati a Dialogflow quando invii richieste di rilevamento dell'intento. Devi fornire queste informazioni in ogni richiesta di rilevamento dell'intent, poiché non sono rese persistenti nella sessione.

Fornisci queste informazioni nel campo queryParams.endUserMetadata nel metodo Sessions.detectIntent.

Seleziona un protocollo e una versione per il riferimento sessione:

Protocollo V3 V3beta1
REST Risorsa sessione Risorsa sessione
RPC Interfaccia sessione Interfaccia sessione
C++ SessionsClient Non disponibile
C# SessionsClient Non disponibile
Go SessionsClient Non disponibile
Java SessionsClient SessionsClient
Node.js SessionsClient SessionsClient
PHP Non disponibile Non disponibile
Python SessionsClient SessionsClient
Ruby Non disponibile Non disponibile

Personalizzazione con Dialogflow Messenger

Puoi fornire questi dati all'integrazione di Dialogflow Messenger. Vedi il metodo setContext.

Configurazione di ricerca

Per avere un maggiore controllo sul comportamento dell'agente e migliorare la qualità delle risposte, vengono esposte le configurazioni di ricerca e di filtro per poter potenziare, bury e filtrare i documenti.

I controlli del miglioramento delle impostazioni ti consentono di modificare il ranking dei risultati di ricerca mediante l'applicazione di un valore di miglioramento (maggiore di zero per il ranking più alto e inferiore a zero per il ranking più basso) a documenti specifici.

I controlli filtro ti consentono di conservare o rimuovere i risultati di ricerca in base ai criteri di filtro specificati.

Queste informazioni vengono fornite come JSON alle richieste Dialogflow. Il formato del file JSON dipende dal tipo di controllo della ricerca.

Controllo Boost

La seguente configurazione di ricerca descrive un controllo di boosting:

"searchConfig": {
  "boostSpecs": [
    {
      "dataStores": [ "DATASTORE_ID" ],
      "spec": [
        {
          "conditionBoostSpecs": {
            "condition": "CONDITION",
            "boost": "1.0"
          }
        }
      ]
    }
  ]
}

Controllo filtro

La seguente configurazione di ricerca descrive un controllo filtro:

"searchConfig": {
  "filterSpecs": [
    {
      "dataStores": [ "DATASTORE_ID" ],
      "filter": "CONDITION"
    }
  ]
}

Imposta la configurazione di ricerca con l'API Dialogflow

Puoi fornire questi dati a Dialogflow quando invii richieste di rilevamento dell'intento. Devi fornire queste informazioni in ogni richiesta di rilevamento dell'intent, poiché non sono rese persistenti nella sessione.

Fornisci queste informazioni nel campo queryParams.searchConfig nel metodo Sessions.detectIntent.

Seleziona un protocollo e una versione per il riferimento sessione:

Protocollo V3 V3beta1
REST Risorsa sessione Risorsa sessione
RPC Interfaccia sessione Interfaccia sessione
C++ SessionsClient Non disponibile
C# SessionsClient Non disponibile
Go SessionsClient Non disponibile
Java SessionsClient SessionsClient
Node.js SessionsClient SessionsClient
PHP Non disponibile Non disponibile
Python SessionsClient SessionsClient
Ruby Non disponibile Non disponibile

Configurare la configurazione di ricerca con Dialogflow Messenger

Puoi fornire questi dati all'integrazione di Dialogflow Messenger.

Per applicare un controllo di ricerca, devi aggiungere il seguente snippet al codice di Messenger DF quando lo incorpora in un sito web:

<script>
  document.addEventListener('df-messenger-loaded', () => {
    const dfMessenger = document.querySelector('df-messenger');
    const searchConfig = { ... }
    dfMessenger.setQueryParameters(searchConfig);
  });
</script>

Vedi il metodo setQueryParameters.