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 :
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.
Nella pagina di configurazione dell'agente, accedere alla sezione Conoscenze.
Fare clic su Scegli conoscenza +.
In Aggiungi sorgente, fare clic su Nuova conoscenza.
Selezionare Elasticsearch e fare clic su Avanti.
Sotto Elasticsearch url, inserire l'endpoint URL del cluster Elasticsearch.
In Elasticsearch port (opzionale), inserire il numero di porta per connettersi al cluster Elasticsearch.
Da Scegliere un tipo di autenticazione, selezionare
Basic authenticationoAPI key.Per
Basic authentication, fornire un nome utente e una password.Per
API key, fornire la chiave API Elasticsearch.
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.
Nell' indice Elasticsearch, inserire il nome dell'indice Elasticsearch.
Nella sezione Configura il contenuto dei risultati, mappare i campi dell'indice specificato nei campi corrispondenti della risposta di ricerca:
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.
Corpo: la descrizione del risultato della ricerca. Utilizza un campo astratto, di riepilogo o di evidenziazione dalla raccolta come corpo del risultato della ricerca.
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.
Fare clic su Avanti per procedere.
Nella sezione Dettagli sulla conoscenza,
Name: Inserire un nome di visualizzazione per la fonte di conoscenza.Description: Fornire una breve descrizione. Per ulteriori informazioni, vedere Creazione di descrizioni delle conoscenze.
Salvare le proprie impostazioni.
Aggiorna le impostazioni dell' Elasticsearch
Per modificare le impostazioni del repository di contenuti Elasticsearch :
Andate alla sezione Conoscenze.
Fai clic sulle Opzioni ( ⋮ ) accanto alla fonte di conoscenza selezionata.
Selezionare Modifica dettagli e aggiornare la configurazione.
Salvare le proprie impostazioni.
Elimina il repository Elasticsearch
Per eliminare un repository di contenuti Elasticsearch :
Andate alla sezione Conoscenze.
Fai clic sulle Opzioni ( ⋮ ) accanto alla fonte di conoscenza selezionata.
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.