Verbindung zu einem Elasticsearch Content Repository

Verbinden Sie Ihren Agenten mit einem Content-Repository auf Elasticsearch, um eine intelligente Suche nach Dokumenten, Artikeln oder Knowledge-Base-Einträgen zu ermöglichen. Durch die Integration mit Elasticsearch kann Ihr Agent während der Benutzerinteraktion relevante Inhalte suchen und zurückgeben und so die Genauigkeit und Nützlichkeit der Antworten verbessern.

Verbinden Sie Ihren Agenten mit Elasticsearch

Befolgen Sie die Schritte, um eine Verbindung zu einer Instanz von Elasticsearch herzustellen:

Hinweis:

Die Option „Wissen +“ wird nicht angezeigt, wenn bereits eine andere Wissensquelle verbunden ist. Um die Quelle zu wechseln, klicken Sie auf „Quelle ersetzen“, wählen Sie die neue Quelle aus und bestätigen Sie mit einem Klick auf „Ich habe verstanden“. Wenn Sie die Quelle ersetzen, werden alle vorherigen Repository-Details und Dateien gelöscht und können nicht wiederhergestellt werden.

  1. Gehen Sie auf der Agentenkonfigurationsseite zum Abschnitt Wissen.

  2. Klicken Sie auf Wissen auswählen +.

  3. Klicken Sie unter Quelle hinzufügen auf Neues Wissen.

  4. Wählen Sie Elasticsearch und klicken Sie auf Weiter.

  5. Geben Sie unter Elasticsearch url den Endpunkt URL Ihres Elasticsearch Clusters ein.

  6. Geben Sie unter Elasticsearch port (optional) die Portnummer für die Verbindung mit dem Elasticsearch cluster ein.

  7. Wählen Sie unter „Wählen Sie einen Authentifizierungstyp“ die Option Basic authentication oder API key.

    • Geben Sie für Basic authentication einen Benutzernamen und ein Passwort ein.

    • Geben Sie für API key den API-Schlüssel Elasticsearch an.

  8. Klicken Sie auf Weiter, um fortzufahren. Konfigurieren Sie den Suchindex, auf den Sie von Ihrer Elasticsearch -Instanz aus zugreifen möchten, und ordnen Sie die Felder zu, die in den Suchergebnissen verwendet werden.

  9. Geben Sie in den Index Elasticsearch den Indexnamen Elasticsearch ein.

  10. Im Abschnitt Ergebnisinhalt konfigurieren ordnen Sie die Felder des angegebenen Index den entsprechenden Feldern in der Suchantwort zu:

    1. Titel: Der Titel für das Suchergebnis. Verwenden Sie das Titelfeld, das Namensfeld oder einen ähnlichen Feldtyp aus der Datensammlung als Titel für das Suchergebnis.

    2. Haupttext : Beschreibung des Suchergebnisses. Verwenden Sie ein Kurzdarstellungs-, Zusammenfassungs- oder Hervorhebungsfeld aus der Datensammlung als Hauptteiltext für das Suchergebnis.

    3. URL: Dieses Feld kann mit beliebigem Fußzeileninhalt gefüllt werden, der am Ende des Suchergebnisses eingeschlossen werden soll.

Wenn Sie den Abfragetext in den erweiterten „ Elasticsearch “-Einstellungen so konfigurieren, dass verschachtelte Dokumente durchsucht werden, müssen Sie sicherstellen, dass die Felder „Title“, „Body“ und „ URL “ aus den Feldern der inneren Dokumente in Ihrem „ Elasticsearch “-Index stammen. Weitere Informationen zur Verwendung verschachtelter Abfragen finden Sie unter „Konfigurieren des Abfragetextes für Elasticsearch “.

Ein detailliertes Verfahren für die erweiterten Einstellungen von Elasticsearch finden Sie unter Einrichten von benutzerdefinierten Filtern und Abfragetext.

  1. Klicken Sie auf Weiter, um fortzufahren.

  2. Im Abschnitt Wissensdetails,

    • Name: Geben Sie einen Anzeigenamen für die Wissensquelle ein.

    • Description: Geben Sie eine kurze Beschreibung. Weitere Informationen finden Sie unter Erstellen von Wissensbeschreibungen.

  3. Speichern Sie die Einstellungen.

Elasticsearch -Einstellungen aktualisieren

So ändern Sie die Einstellungen des Elasticsearch Content Repository:

  1. Gehen Sie zum Bereich Wissen.

  2. Klicken Sie auf die Optionen ( ) neben der ausgewählten Wissensquelle.

  3. Wählen Sie Details bearbeiten und aktualisieren Sie die Konfiguration.

  4. Speichern Sie die Einstellungen.

Das Repository „ Elasticsearch “ löschen

So löschen Sie ein Elasticsearch Content Repository:

  1. Gehen Sie zum Bereich Wissen.

  2. Klicken Sie auf die Optionen ( ) neben der ausgewählten Wissensquelle.

  3. Klicken Sie auf Entfernen.

Benutzerdefinierte Filter und Abfragekörper einrichten

Konfigurieren Sie einen benutzerdefinierten Filter für die Abfrageergebnisse und einen Abfragetext für Elasticsearch im Abschnitt Erweiterte Einstellungen Elasticsearch. Diese Konfiguration ist optional.

Benutzerdefinierte Ergebnisfilter konfigurieren

Im Feld „Benutzerdefinierten Ergebnisfilter für Elasticsearch konfigurieren (optional) “ definieren Sie den Filter als Array von Objekten, sodass Sie Filter erstellen können, um den Inhalt entsprechend dem Abfragetext anzuordnen. Weitere Informationen finden Sie unter „Konfigurieren benutzerdefinierter Filter für Elasticsearch “.

Abfragetext konfigurieren

Geben Sie im Feld Konfigurieren Sie den Abfragetext für Elasticsearch (optional) den Abfragetext ein.

Der Abfragetext wird verwendet, um die Benutzeranfragen in ein Format zu bringen, das die Suche erwartet. Sie steuert die Abfrageformulare, Suchfelder, Filter und die Abfragegröße. In der REST-API ist der Abfragekörper ein Objekt, das den POST Körper für die _search Anfrage an Elasticsearch darstellt. Der Abfragekörper enthält ein "$QUERY" -Token, das die Anfrage des Kunden darstellt, und ein "$FILTER" -Token, das die Reihe von Filtern darstellt, die entweder in den Sucheinstellungen oder auf Schrittebene definiert sind.

Standardmäßig verwendet die Integration mit Elasticsearch eine Schlüsselwortsuche, aber Sie können den Abfragetext als erweiterte Elasticsearch Einstellung in Ihren Agenten konfigurieren, um erweiterte Suchtechniken zu aktivieren, wie z. B.:

  • Semantische Suche mit ELSER.

  • k-nearest neighbor ( kNN ) dichte Vektorsuche.

  • Verschachtelte Abfrage zur Suche in verschachtelten Dokumenten.

  • Hybridsuche.

  • Suche in einem semantischen Textfeld.

Weitere Informationen zur Verwendung verschiedener Arten von Abfragetextbeispielen finden Sie unter „Konfigurieren des Abfragetextes für Elasticsearch “.

Weitere Informationen zum Anfragetext der „ Elasticsearch_search “-API finden Sie unter „ Elasticsearch -Such-API-Anfragetext “ in der Dokumentation zu „ Elasticsearch “.

Kontextvariablen übergeben

Sie können Ihre Filter dynamisch gestalten, indem Sie auf Kontextvariablen in Ihren Elasticsearch Filtervorlagen verweisen. Dies ermöglicht die Ersetzung von Werten zur Laufzeit auf der Grundlage des Benutzer- oder Sitzungskontexts, wodurch Ihre Abfragen flexibler und personalisierter werden.

Funktionsweise

  • Richten Sie in Ihrem Content Repository Filter ein und referenzieren Sie Kontextvariablen in diesem Format: {context_var}

  • Wenn der Agent läuft, holt er sich den Kontext von:

    • Die Endpunkt-Nutzlast wird ausgeführt, oder

    • Das mit der Sitzung verbundene JWT-Token

  • Die Wissenslaufzeit ersetzt die Kontextvariablen in Ihrer Filtervorlage durch aktuelle Werte aus dem Kontext

Beispiele für Elasticsearch filter substitution

Jedes Beispiel enthält:

  • filter: Eine Vorlage mit Verweisen auf Kontextvariablen, die in das Filterfeld für die dynamische Ersetzung eingegeben werden.

  • final_filter: Die Vorlage nach dem Ersetzen von Kontextvariablen durch aktuelle Werte. Die Abfrage wird zum Datenabruf an Elasticsearch gesendet.

  • context_variable: Ein Satz von Schlüssel-Wert-Paaren, die die bei der Substitution verwendeten Kontextvariablen definieren.

Beispiel 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"}}]}}]

Beispiel2:

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

Beispiel 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"}},
                                              ]}}]

Nächste Schritte

Nachdem Sie eine Verbindung zu Elasticsearch hergestellt haben, können Sie die Verbindungsdaten für das Repository oder die Einstellungen, die Sie für den Abruf der Dokumente angegeben haben, ändern.

Wenn Sie außerdem die Art und Weise, wie Ihr Agent die Suchergebnisse nutzt, genauer anpassen möchten, lesen Sie den Abschnitt „Einstellungen der Suchergebnisse bearbeiten “.