Von der Vektorsuche bis hin zu leistungsstarken REST-APIs bietet Elasticsearch Entwicklern das umfangreichste Such-Toolkit. Sehen Sie sich die Beispiel-Notebooks auf GitHub an, um etwas Neues testen. Sie können auch noch heute Ihre kostenlose Testversion starten oder Elasticsearch lokal ausführen.
Konversationelle Schnittstellen gibt es schon seit einiger Zeit und sie werden zunehmend beliebter als Mittel zur Unterstützung verschiedener Aufgaben, wie z. B. Kundenservice, Informationsbeschaffung und Aufgabenautomatisierung. Diese Schnittstellen, auf die typischerweise über Sprachassistenten oder Messaging-Apps zugegriffen wird, simulieren menschliche Konversation, um den Nutzern zu helfen, ihre Anfragen effizienter zu lösen.
Mit dem technologischen Fortschritt werden Chatbots eingesetzt, um komplexere Aufgaben schnell zu bewältigen und gleichzeitig den Nutzern ein personalisiertes Erlebnis zu bieten. Die Verarbeitung natürlicher Sprache (NLP) ermöglicht es Chatbots, die Sprache des Benutzers zu verarbeiten, die Absicht hinter seiner Nachricht zu erkennen und relevante Informationen daraus zu extrahieren. Die Named Entity Recognition extrahiert beispielsweise wichtige Informationen aus einem Text, indem sie diese in eine Reihe von Kategorien einordnet. Die Stimmungsanalyse ermittelt den emotionalen Tonfall, und die Fragebeantwortung liefert die „Antwort“ auf eine Anfrage. Ziel der NLP ist es, Algorithmen in die Lage zu versetzen, die menschliche Sprache zu verarbeiten und Aufgaben zu erfüllen, zu denen historisch gesehen nur Menschen fähig waren, wie etwa das Auffinden relevanter Passagen in großen Textmengen, das Zusammenfassen von Texten und das Generieren neuer, origineller Inhalte.
Diese hochentwickelten NLP-Funktionen basieren auf einer Technologie namens Vektorsuche. Elastic bietet native Unterstützung für die Vektorsuche, die Durchführung exakter und approximativer k-nächster Nachbarn (kNN)-Suchen sowie für NLP, wodurch die Verwendung von benutzerdefinierten oder Drittanbietermodellen direkt in Elasticsearch ermöglicht wird.
In diesem Blogbeitrag werden wir untersuchen, wie Vektorsuche und NLP die Fähigkeiten von Chatbots verbessern und zeigen, wie Elasticsearch diesen Prozess erleichtert. Beginnen wir mit einem kurzen Überblick über die Vektorsuche.
Vektorsuche
Menschen können zwar die Bedeutung und den Kontext der geschriebenen Sprache erfassen, Maschinen hingegen nicht. Hier kommen Vektoren ins Spiel. Durch die Umwandlung von Text in Vektordarstellungen (numerische Darstellungen der Bedeutung des Textes) können Maschinen diese Einschränkung überwinden. Im Vergleich zur herkömmlichen Suche, bei der nicht auf Schlüsselwörtern und lexikalischer Suche basierend auf Häufigkeiten beruht, ermöglichen Vektoren die Verarbeitung von Textdaten mithilfe von Operationen, die für numerische Werte definiert sind.
Dies ermöglicht es der Vektorsuche, Daten zu finden, die ähnliche Konzepte oder Kontexte aufweisen, indem Distanzen im „Einbettungsraum“ verwendet werden, um die Ähnlichkeit zu einem gegebenen Abfragevektor darzustellen. Wenn die Daten ähnlich sind, sind auch die entsprechenden Vektoren ähnlich.

Die Vektorsuche wird nicht nur in NLP-Anwendungen eingesetzt, sondern auch in verschiedenen anderen Bereichen, in denen unstrukturierte Daten verwendet werden, darunter Bild- und Videoverarbeitung.
Im Ablauf eines Chatbots gibt es verschiedene Herangehensweisen an die Anfragen der Nutzer, und folglich auch unterschiedliche Möglichkeiten, die Informationsbeschaffung zu verbessern und so ein besseres Nutzererlebnis zu schaffen. Da jede Alternative ihre eigenen Vor- und Nachteile hat, ist es unerlässlich, die verfügbaren Daten und Ressourcen sowie die Trainingszeit (falls zutreffend) und die zu erwartende Genauigkeit zu berücksichtigen. Im folgenden Abschnitt werden wir diese Aspekte für NLP-Modelle zur Beantwortung von Fragen behandeln.
Frage-Antwort-System
Ein Frage-Antwort-Modell (QA-Modell) ist eine Art von NLP-Modell, das dazu dient, Fragen in natürlicher Sprache zu beantworten. Wenn Benutzer Fragen haben, deren Antworten aus mehreren Quellen abgeleitet werden müssen, ohne dass in den Dokumenten eine vorgegebene Zielantwort vorhanden ist, können generative QA-Modelle hilfreich sein. Allerdings können diese Modelle rechenintensiv sein und benötigen große Datenmengen für das domänenspezifische Training, was sie in manchen Situationen weniger praktikabel macht, obwohl diese Methode besonders wertvoll sein kann, um Fragestellungen außerhalb des jeweiligen Fachgebiets zu bearbeiten.
Wenn Benutzer hingegen Fragen zu einem bestimmten Thema haben und die eigentliche Antwort im Dokument enthalten ist, können extraktive QA-Modelle verwendet werden. Diese Modelle extrahieren die Antwort direkt aus dem Quelldokument und liefern transparente und überprüfbare Ergebnisse. Dadurch sind sie eine praktischere Option für Unternehmen oder Organisationen, die eine einfache und effiziente Möglichkeit zur Beantwortung von Fragen bieten möchten.
Das folgende Beispiel demonstriert die Verwendung eines vortrainierten, extraktiven QA-Modells, das auf Hugging Face verfügbar ist und in Elasticsearch bereitgestellt wird, um Antworten aus einem gegebenen Kontext zu extrahieren:
Fügen Sie einer Inferenz-Ingest-Pipeline ein Modell hinzu.
Es gibt verschiedene Möglichkeiten, Benutzeranfragen zu bearbeiten und Informationen abzurufen, und die Verwendung mehrerer Sprachmodelle und Datenquellen kann eine effektive Alternative beim Umgang mit unstrukturierten Daten sein. Um dies zu veranschaulichen, haben wir ein Beispiel für die Datenverarbeitung eines Chatbots, der dazu dient, Anfragen mit Antworten zu beantworten, die auf Daten basieren, die aus ausgewählten Dokumenten extrahiert wurden.
Chatbot-Datenverarbeitung: NLP und Vektorsuche

Wie oben dargestellt, lässt sich die Datenverarbeitung für unseren Chatbot in drei Teile unterteilen:
- Vektorverarbeitung: In diesem Teil werden Dokumente in Vektordarstellungen umgewandelt.
- Verarbeitung der Benutzereingaben: Dieser Teil extrahiert relevante Informationen aus der Benutzeranfrage und führt eine semantische Suche sowie einen hybriden Abruf durch.
- Optimierung: Dieser Teil umfasst die Überwachung und ist entscheidend für die Zuverlässigkeit, optimale Leistung und ein hervorragendes Benutzererlebnis des Chatbots.
Vektorverarbeitung
Im Verarbeitungsprozess besteht der erste Schritt darin, die Bestandteile jedes Dokuments zu ermitteln, um dann jedes Element in eine Vektordarstellung umzuwandeln; diese Darstellungen können für eine breite Palette von Datenformaten erstellt werden.
Zur Berechnung von Einbettungen stehen verschiedene Methoden zur Verfügung, darunter vortrainierte Modelle und Bibliotheken.
Wichtig ist zu beachten, dass die Effektivität der Suche und des Abrufs dieser Darstellungen von den vorhandenen Daten sowie der Qualität und Relevanz der verwendeten Methode abhängt.
Sobald die Vektoren berechnet sind, werden sie in Elasticsearch mit einem Feld vom Typ dense_vector gespeichert.
Verarbeitung von Benutzereingaben des Chatbots
Für den Benutzer ist es nach Erhalt einer Frage sinnvoll, alle möglichen Informationen daraus zu extrahieren, bevor er fortfährt. Dies hilft, die Absicht des Benutzers zu verstehen, und in diesem Fall verwenden wir ein Named Entity Recognition-Modell (NER), um dies zu unterstützen. NER ist der Prozess der Identifizierung und Klassifizierung benannter Entitäten in vordefinierte Entitätskategorien.
Obwohl dies kein notwendiger Schritt ist, können wir die kNN-Suche mithilfe eines Filters einschränken, indem wir strukturierte Daten oder das oben genannte oder ein anderes NLP-Modellergebnis verwenden, um die Anfrage des Benutzers zu kategorisieren. Dies trägt zur Verbesserung der Leistung und Genauigkeit bei, indem die Menge der zu verarbeitenden Daten reduziert wird.
Semantische Suche und hybride Retrieval-Methoden
Da die Eingabeaufforderung von Benutzeranfragen stammt und der Chatbot die menschliche Sprache mit ihrer Variabilität und Mehrdeutigkeit verarbeiten muss, ist die semantische Suche hervorragend geeignet. In Elasticsearch können Sie eine semantische Suche in einem einzigen Schritt durchführen, indem Sie die Abfragezeichenfolge und die ID des einbettenden Modells in ein query_vector_builder-Objekt übergeben. Dadurch wird die Anfrage vektorisiert und eine kNN- Suche durchgeführt, um die k besten Übereinstimmungen zu finden, die der Bedeutung der Anfrage am nächsten kommen:
Beispiel für den gesamten Prozess: Wie man ein Text-Embedding-Modell bereitstellt und es für die semantische Suche verwendet. Elasticsearch verwendet die Lucene-Implementierung des Okapi BM25, eines Sparse-Modells , um Textanfragen nach Relevanz zu ordnen, während für die semantische Suche Dense-Modelle verwendet werden. Um die Stärken beider Ansätze – Vektortreffer und Treffer aus der Textanfrage – zu kombinieren , kann man eine hybride Abfrage durchführen:
Die Kombination von spärlichen und dichten Modellen liefert oft die besten Ergebnisse.
Sparse Modelle schneiden im Allgemeinen bei kurzen Anfragen und spezifischen Terminologien besser ab, während Dense Modelle Kontext und Assoziationen nutzen. Wenn Sie mehr darüber erfahren möchten, wie sich diese Methoden vergleichen und ergänzen, vergleichen wir hier BM25 mit zwei dichten Modellen, die speziell für den Retrieval trainiert wurden.
Das relevanteste Ergebnis ist in der Regel die erste Antwort, die dem Benutzer angezeigt wird. Der_Score ist eine Zahl, die zur Bestimmung der Relevanz des zurückgegebenen Dokuments verwendet wird.
Chatbot-Optimierung
Um die Benutzerfreundlichkeit, die Leistung und die Zuverlässigkeit Ihres Chatbots zu verbessern, können Sie neben der Anwendung hybrider Bewertungsverfahren die folgenden Ansätze einbeziehen: Stimmungsanalyse: Um die Kommentare und Reaktionen der Benutzer während des Dialogs zu erfassen, können Sie ein Stimmungsanalysemodell integrieren:
GPT-Funktionen : Alternativ zur Verbesserung des Gesamterlebnisses können Sie die Suchrelevanz von Elasticsearch mit den GPT-Frage-Antwort-Funktionen von OpenAI kombinieren und dabei die Chat Completion API nutzen, um dem Benutzer modellgenerierte Antworten zurückzugeben, die die Top-k-Dokumente als Kontext berücksichtigen. Aufforderung: "Beantworten Sie diese Frage <user_question> ausschließlich anhand dieses Dokuments <top_search_result>"
Beobachtbarkeit: Die Sicherstellung der Leistungsfähigkeit eines jeden Chatbots ist von entscheidender Bedeutung, und die Überwachung ist ein wesentlicher Bestandteil, um dies zu erreichen. Neben Protokollen, die die Interaktionen des Chatbots erfassen, ist es wichtig, auch die Reaktionszeit, die Latenz und andere relevante Chatbot-Metriken zu verfolgen. Dadurch lassen sich Muster und Trends erkennen und sogar Anomalien aufdecken.Elastic Observability- Tools ermöglichen es Ihnen, diese Informationen zu sammeln und zu analysieren.
Zusammenfassung
Dieser Blogbeitrag erklärt, was NLP und Vektorsuche sind, und geht auf ein Beispiel eines Chatbots ein, der zur Beantwortung von Benutzeranfragen eingesetzt wird, indem er Daten berücksichtigt, die aus der Vektordarstellung von Dokumenten extrahiert werden.
Wie gezeigt wurde, sind Chatbots mithilfe von NLP und Vektorsuche in der Lage, komplexe Aufgaben zu bewältigen, die über strukturierte, zielgerichtete Daten hinausgehen. Dies umfasst das Abgeben von Empfehlungen und das Beantworten spezifischer produkt- oder geschäftsbezogener Anfragen unter Verwendung mehrerer Datenquellen und -formate als Kontext sowie die Bereitstellung eines personalisierten Benutzererlebnisses.
Die Anwendungsfälle reichen von der Unterstützung des Kundenservice bei Kundenanfragen bis hin zur Hilfe für Entwickler bei ihren Fragen durch schrittweise Anleitungen, Empfehlungen oder sogar die Automatisierung von Aufgaben. Je nach Zielsetzung und vorhandenen Daten können auch andere Modelle und Methoden eingesetzt werden, um noch bessere Ergebnisse zu erzielen und das gesamte Benutzererlebnis zu verbessern.
Hier sind einige Links zu diesem Thema, die hilfreich sein könnten:
- Wie man die Verarbeitung natürlicher Sprache (NLP) einsetzt: Erste Schritte
- Überblick über die Bildähnlichkeitssuche in Elasticsearch
- ChatGPT und Elasticsearch: OpenAI trifft auf private Daten
- OpenAI API und GPT-Modelle mit OpenTelemetry und Elastic überwachen
- 5 Gründe, warum IT-Verantwortliche die Vektorsuche benötigen, um das Sucherlebnis zu verbessern
Durch die Integration von NLP und nativer Vektorsuche in Elasticsearch können Sie dessen Geschwindigkeit, Skalierbarkeit und Suchfunktionen nutzen, um hocheffiziente und effektive Chatbots zu erstellen, die in der Lage sind, große Datenmengen zu verarbeiten, egal ob strukturiert oder unstrukturiert.
Bereit loszulegen? Starten Sie eine kostenlose Testversion von Elastic Cloud.
In diesem Blogbeitrag haben wir möglicherweise generative KI-Tools von Drittanbietern verwendet oder darauf verwiesen, die Eigentum ihrer jeweiligen Inhaber sind und von diesen betrieben werden. Elastic hat keinerlei Kontrolle über die Tools von Drittanbietern und übernimmt keine Verantwortung oder Haftung für deren Inhalt, Funktionsweise oder Verwendung sowie für etwaige Verluste oder Schäden, die durch die Verwendung solcher Tools entstehen können. Bitte seien Sie vorsichtig beim Einsatz von KI-Tools mit persönlichen, sensiblen oder vertraulichen Informationen. Alle von Ihnen übermittelten Daten können für das Training der KI oder für andere Zwecke verwendet werden. Es gibt keine Garantie dafür, dass die von Ihnen bereitgestellten Informationen sicher oder vertraulich behandelt werden. Sie sollten sich vor der Verwendung von generativen KI-Tools mit deren Datenschutzpraktiken und Nutzungsbedingungen vertraut machen.
Elastic, Elasticsearch und zugehörige Marken, Waren- und Dienstleistungszeichen sind Marken oder eingetragene Marken von Elastic N.V. in den USA und anderen Ländern. Alle weiteren Marken- oder Warenzeichen sind eingetragene Marken oder eingetragene Warenzeichen der jeweiligen Eigentümer.
Wie man einen Chatbot optimiert
1
Nutzen Sie die Möglichkeiten von GPT: Kombinieren Sie die Suchrelevanz von Elasticsearch mit den Frage-Antwort-Funktionen von OpenAI GPT und verwenden Sie die Chat Completion API, um dem Benutzer modellgenerierte Antworten zurückzugeben, wobei die Top-k-Dokumente als Kontext dienen.
2
Sentimentanalyse einbeziehen: Integrieren Sie ein Sentimentanalysemodell, um während des Dialogs ein Bewusstsein für die Kommentare und Reaktionen der Nutzer zu schaffen.
3
Observability: Zusätzlich zu Protokollen, die Chatbot-Interaktionen erfassen, ist es wichtig, Antwortzeit, Latenz und andere relevante Chatbot-Metriken zu verfolgen. Dadurch können Sie Muster und Trends erkennen und sogar Anomalien aufdecken.




