Connessione a un repository di contenuti Elasticsearch

Collegate il vostro agente a un repository di contenuti su Elasticsearch per consentire il recupero intelligente di documenti, articoli o voci della knowledge base. Grazie all'integrazione con Elasticsearch, il vostro agente può cercare e restituire contenuti pertinenti durante le interazioni con gli utenti, migliorando l'accuratezza e l'utilità delle risposte.

Collegate il vostro agente a Elasticsearch

Seguite la procedura per collegarvi a un'istanza di Elasticsearch :

Nota:

L'opzione "Scegli conoscenza +" non viene visualizzata se è già collegata una fonte di conoscenza diversa. Per cambiare fonte, clicca su "Sostituisci fonte", seleziona la nuova fonte e conferma cliccando su "Ho capito". Quando si sostituisce l'origine, tutti i dettagli e i file del repository precedente vengono eliminati e non possono essere recuperati.

  1. Nella pagina di configurazione dell'agente, accedere alla sezione Conoscenze.

  2. Fare clic su Scegli conoscenza +.

  3. In Aggiungi sorgente, fare clic su Nuova conoscenza.

  4. Selezionare Elasticsearch e fare clic su Avanti.

  5. Sotto Elasticsearch url, inserire l'endpoint URL del cluster Elasticsearch.

  6. In Elasticsearch port (opzionale), inserire il numero di porta per connettersi al cluster Elasticsearch.

  7. Da Scegliere un tipo di autenticazione, selezionare Basic authentication o API key.

    • Per Basic authentication, fornire un nome utente e una password.

    • Per API key, fornire la chiave API Elasticsearch.

  8. Fare clic su Avanti per procedere. Configurare l'indice di ricerca a cui si vuole accedere dall'istanza di Elasticsearch e mappare i campi utilizzati nei risultati della ricerca.

  9. Nell' indice Elasticsearch, inserire il nome dell'indice Elasticsearch.

  10. Nella sezione Configura il contenuto dei risultati, mappare i campi dell'indice specificato nei campi corrispondenti della risposta di ricerca:

    1. Titolo: il titolo del risultato della ricerca. Utilizza il titolo, il nome o un tipo di campo simile dalla raccolta come titolo del risultato della ricerca.

    2. Corpo: la descrizione del risultato della ricerca. Utilizza un campo astratto, di riepilogo o di evidenziazione dalla raccolta come corpo del risultato della ricerca.

    3. URL: questo campo può essere popolato con qualsiasi contenuto di piè di pagina che vuoi includere alla fine del risultato della ricerca.

Quando si configura il corpo della query nelle impostazioni avanzate di Elasticsearch per effettuare ricerche nei documenti nidificati, è necessario assicurarsi che i campi "Titolo ", "Corpo " e " URL " corrispondano ai campi dei documenti interni presenti nell'indice di Elasticsearch. Per ulteriori informazioni sull'uso delle query annidate, consultare la sezione "Configurazione del corpo della query" all'indirizzo Elasticsearch.

Per una procedura dettagliata sulle impostazioni avanzate di Elasticsearch, vedere Impostazione di filtri personalizzati e corpo della query.

  1. Fare clic su Avanti per procedere.

  2. Nella sezione Dettagli sulla conoscenza,

  3. Salvare le proprie impostazioni.

Aggiorna le impostazioni dell' Elasticsearch

Per modificare le impostazioni del repository di contenuti Elasticsearch :

  1. Andate alla sezione Conoscenze.

  2. Fai clic sulle Opzioni ( ) accanto alla fonte di conoscenza selezionata.

  3. Selezionare Modifica dettagli e aggiornare la configurazione.

  4. Salvare le proprie impostazioni.

Elimina il repository Elasticsearch

Per eliminare un repository di contenuti Elasticsearch :

  1. Andate alla sezione Conoscenze.

  2. Fai clic sulle Opzioni ( ) accanto alla fonte di conoscenza selezionata.

  3. Fare clic su Rimuovi.

Impostare filtri personalizzati e corpo della query

Configurare un filtro personalizzato per i risultati della query e un corpo della query per Elasticsearch nella sezione Impostazioni avanzate Elasticsearch. Questa configurazione è facoltativa.

Configurare filtri personalizzati per i risultati

Nel campo "Configura il filtro dei risultati personalizzato per Elasticsearch " (facoltativo), è possibile definire il filtro come un array di oggetti, in modo da poter creare filtri per organizzare i contenuti in base al corpo della query. Per ulteriori informazioni, consultare la sezione "Configurazione dei filtri personalizzati per Elasticsearch ".

Configura il corpo della query

Nel campo Configurare il corpo della query per Elasticsearch (opzionale), inserire il corpo della query.

Il corpo della query viene utilizzato per manipolare le richieste dell'utente in un formato che la ricerca si aspetta. Controlla i moduli della query, i campi di ricerca, i filtri e le dimensioni della query. Nell'API REST, il corpo della query è un oggetto che rappresenta il corpo POST della richiesta _search a Elasticsearch. Il corpo della query ha un token "$QUERY" per rappresentare la domanda del cliente e un token "$FILTER" per rappresentare la serie di filtri definiti nelle impostazioni di ricerca o a livello di passo.

Per impostazione predefinita, l'integrazione con Elasticsearch utilizza la ricerca per parole chiave, ma è possibile configurare il corpo della query come impostazione avanzata di Elasticsearch nei propri agenti per abilitare tecniche di ricerca più avanzate, come ad esempio:

  • Ricerca semantica con ELSER.

  • ricerca di vettori densi con k-nearest neighbor ( kNN ).

  • Query annidata per cercare documenti annidati.

  • Ricerca ibrida.

  • Ricerca su un campo di testo semantico.

Per ulteriori informazioni sull'utilizzo dei diversi tipi di corpo della query, consultare la sezione "Configurazione del corpo della query" all'indirizzo Elasticsearch.

Per ulteriori informazioni sul corpo della richiesta API di _search Elasticsearch, consultare la sezione "Corpo della richiesta API di ricerca di Elasticsearch " nella documentazione di Elasticsearch.

Passare le variabili di contesto

È possibile rendere dinamici i filtri facendo riferimento a variabili di contesto nei modelli di filtro di Elasticsearch. Ciò consente di sostituire in runtime i valori in base al contesto dell'utente o della sessione, rendendo le query più flessibili e personalizzate.

Come funziona

  • Nel repository dei contenuti, impostare i filtri e le variabili contestuali di riferimento nel formato: {context_var}

  • Quando l'agente viene eseguito, recupera il contesto da:

    • Il payload dell'endpoint di esecuzione, oppure

    • Il token JWT associato alla sessione

  • Il runtime della conoscenza sostituisce le variabili di contesto nel modello di filtro con i valori effettivi del contesto

Esempi per la sostituzione del filtro Elasticsearch

Ogni esempio comprende:

  • filter: Un modello con riferimenti a variabili di contesto, inserite nel campo del filtro per la sostituzione dinamica.

  • final_filter: Il modello dopo aver sostituito le variabili di contesto con i valori reali. L'interrogazione viene inviata a Elasticsearch per il recupero dei dati.

  • context_variable: Un insieme di coppie chiave-valore che definiscono le variabili di contesto utilizzate nella sostituzione.

Esempio 1:

    filter = [{"bool": {"should": [{"match": {"title": "{location}"}},
                                     {"match": {"text": "{name}"}},
                                     {"match": {"id": "{title}"}}]}}]
    context_variable = {"location": "US", "name": "Pooja", "title": "developer"}
    final_filter = [{"bool": {"should": [{"match": {"title": "US"}},
                                              {"match": {"text": "Pooja"}},
                                              {"match": {"id": "developer"}}]}}]

Esempio 2:

    filter = [{"terms":{"title":["dialog","{topic}"]}}]
    context_variable = {"topic": "action"}
    final_filter = [{"terms":{"title":["dialog","action"]}}]

Esempio 3:

    filter = [{"bool": {"should": [{"match": {"title": "{location}"}},
                                     {"match": "{name}"}
                                     ]}}]
    context_variable = {"location": "US", "name": {"text": "Pooja"}}
    final_filter = [{"bool": {"should": [{"match": {"title": "US"}},
                                              {"match": {"text": "Pooja"}},
                                              ]}}]

Cosa fare successivamente

Dopo essersi collegati a Elasticsearch, è possibile modificare i dati di connessione al repository o le impostazioni fornite per recuperare i documenti.

Inoltre, se desideri personalizzare il modo in cui il tuo agente utilizza i risultati della ricerca, consulta la sezione Modifica delle impostazioni dei risultati della ricerca.