Dieses Repo stellt eine QnA-Beispielanwendung bereit, die auf dem Dataworkz RAG Builder basiert und die Leistungsfähigkeit von RAG für mehrere Datensätze demonstriert. In diesem Abschnitt zeigen wir Ihnen, wie Sie die QnA-Beispielanwendung auf Ihrem lokalen Computer ausführen. Klicken Sie hier, um mehr über Dataworkz RAG Builder zu erfahren
Klonen Sie das Repository dataworkz-qna-app mit git clone https://github.com/dataworkz-dev/dataworkz-qna-app.git
.
Installieren Sie bei Bedarf node.js für Ihre Plattform (Node-Version > 16.0.0).
Ein Standard-API-Schlüssel für das Beispiel ist in diesem Projekt enthalten. Sie können Schritt Nr. 4 und Nr. 5 ignorieren, es sei denn, Sie planen, für die weitere Entwicklung ein eigenes Konto zu erstellen.
Sie benötigen einen Dataworkz-API-Schlüssel, um auf den Dataworkz RAG QnA-Dienst zuzugreifen. Hier sind die Schritte zum Generieren eines API-Schlüssels. Hinweis: Der Name des API-Schlüssels muss für alle Benutzer eindeutig sein. Wählen Sie daher bitte einen entsprechenden Namen.
Platzieren Sie Ihren generierten API-Schlüssel in token.txt
Datei. Sie finden die Datei unter src/assets/token.txt
.
Führen Sie npm install
aus, um Abhängigkeiten zu installieren.
Führen Sie npm run start
um einen lokalen Webserver auszuführen, der die QnA-Beispielanwendung hostet. Um auf die Anwendung zuzugreifen, öffnen Sie einen Browser und navigieren Sie zu http://localhost:4200
Bitte melden Sie alle Probleme mit der QnA-Beispielanwendung unter Probleme
Dataworkz vereinfacht die RAG-App-Entwicklung für Unternehmen. Dataworkz bietet RAG as a Service an, sodass Sie GenAI-Anwendungen mithilfe proprietärer Daten erstellen und dabei entweder öffentliche LLM-APIs oder privat gehostete Open-Source-Grundlagenmodelle nutzen können.
Der RAG-Builder von Dataworkz rationalisiert die Erstellung von GenAI-Anwendungen, um die Komplexität zu beseitigen, die mit dem Zusammenfügen einer schlüsselfertigen Lösung verbunden ist. Ein zusammensetzbarer KI-Stack bietet die Möglichkeit, die Vektordatenbank, das Einbettungsmodell, die Chunking-Strategie und das LLM-Modell auszuwählen. Sie haben die Flexibilität, öffentliche LLM-APIs wie AWS Bedrock und OpenAI zu nutzen oder ein Open-Source-Modell in einer VPC zu hosten.
Für Advanced RAG-Anwendungen bietet Dataworkz die Möglichkeit, lexikalische und semantische Suche mit Metadatenfilterung zu kombinieren, wodurch RAG-Apps große Mengen unstrukturierter, halbstrukturierter oder strukturierter Daten verarbeiten können.
Dataworkz stellt eine Verbindung zu verschiedenen Quellen von Geschäftsdaten her – SaaS-Dienste, relationale Datenbanken, NoSQL-Datenbanken, in Cloud-Objektspeichern gespeicherte Dateien – und bietet Transformationen ohne Code, um proprietäre Daten in jedem Format für LLM-Anwendungen bereit zu machen. Wenn Sie Daten aus mehreren Quellen kombinieren, können Sie auch die Rangfolge für Eingabequellen konfigurieren, die zum Erstellen des Kontexts für die Generierung der LLM-Antwort verwendet werden. Die vollständige Liste der Anschlüsse finden Sie hier.
RAG Builder bietet jedem Entwickler eine API, mit der er GenAI-Anwendungen in seinen bestehenden Workflow einbetten kann, mit völliger Flexibilität zur individuellen Anpassung des Erscheinungsbilds. Die Beispielanwendung in diesem Repository nutzt diese API für ihre Funktionalität. Wir haben einen Abschnitt über die API-Integration in diese App sowie über die Verwendung dieser in Ihren eigenen Anwendungen.
Das Auftreten von Halluzinationen stellt ein erhebliches Hindernis für die weit verbreitete Einführung von Gen AI in Unternehmen dar. Dataworkz ermöglicht es GenAI, auf seine Ursprünge zu verweisen und so die Rückverfolgbarkeit zu verbessern. Lesen Sie im Dataworkz-Blog, wie Dataworkz die Reaktion eines LLM bewertet.
In diesem Abschnitt stellen wir einige Entwicklerhinweise dazu bereit, wie die Beispielanwendung erstellt wurde und welche APIs zur Unterstützung verschiedener Abschnitte verwendet wurden. Sie können die in Ihre eigene Anwendung integrierte API und das Frage- und Antwortsystem ausprobieren. Sie können einen API-Schlüssel generieren (falls bereits generiert, kann derselbe Schlüssel verwendet werden) und eine Verbindung zu diesem Dienst herstellen.
Dataworkz arbeitet mit strategischen Partnern zusammen, um zu demonstrieren, wie sich unsere Technologie integrieren lässt. Diese QnA-Beispielanwendung stellt eine Verbindung zu https://ragapps.dataworkz.com als Backend-RAG-Partner-Playground-Dienst her. Dieser Partner Playground-Dienst zeigt, wie Dataworkz und MongoDB Atlas Vector Search zusammenarbeiten, um ein QnA-System für öffentlich zugängliche Dokumente wie 10.000 Einreichungen börsennotierter Unternehmen wie Uber zu erstellen.
Das Beispiel-QnA-System zeigt, wie Sie die Dataworkz RAG Builder-API verwenden, um QnA-Systeme aufzulisten und umfangreiche Abfragen für diesen Datensatz durchzuführen.
Im Abschnitt „API-Schlüsselgenerierung“ erfahren Sie, wie Sie einen API-Schlüssel erhalten und ihn zum Aufrufen von Dataworkz QnA-APIs verwenden. In der QnA-Beispielanwendung wird das API-Token im Authentication
in der Form SWSS <api-key>
übergeben.
Dataworkz RAG Builder unterstützt die Konfiguration mehrerer, isolierter QnA-Systeme. QnA-Systeme werden als Domänen von Frage- und Antwortsystemen verwendet und können zur Trennung zwischen mehreren Projekten, Quellengruppen, großen Sprachmodellen, Versionen oder verschiedenen unabhängigen Unterdomänen in einem Projekt usw. genutzt werden. Eine Anwendung kann eine oder mehrere haben QnA-Systeme. Wenn eine Frage gestellt wird, wird sie anhand eines bestimmten QnA-Systems gestellt.
Die QnA-Beispielanwendung beginnt mit der Auflistung aller QnA-Systeme (als Karten), damit der Benutzer das auswählen kann, an dem er interessiert ist. Anwendungsentwickler können die Systeme zur Benutzerauswahl auflisten oder, wenn die Auswahl aus dem Kontext klar ist, festlegen es im Code.
Hier ist die API zum Auflisten aller verfügbaren QnA-Systeme – https://ragapps.dataworkz.com/api/qna/v1/systems. Die ausgewählte QnA-System-ID wird in nachfolgenden APIs benötigt.
Informationen zu jedem einzelnen QnA-System werden über diese API abgerufen – https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}. Dies wird in der QnA-Beispielanwendung verwendet, um die einzelnen QnA-Systemkarten zu füllen.
Fragen werden durch im Dataworkz RAG Builder konfigurierte LLMs beantwortet. Für Systeme konfigurierte LLMs können von OpenAI, privat gehosteten Modellen (wie Llama-2) und Googles Vertex AI stammen (die Beispiel-App kann eines oder mehrere davon unterstützen). Diese API stellt eine Liste der konfigurierten LLMProviders nach QnA-System bereit – https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}/llm-providers
Die QnA-Beispielanwendung verwendet dies, um das Dropdown-Menü „LLMProviders“ zu füllen, damit der Benutzer das LLM auswählen kann, das er zur Beantwortung der Frage verwenden möchte. Sie sollten die ID des LLMProviders speichern, den Sie zum Stellen von Fragen verwenden möchten. Fragen können an bestimmte LLM-Anbieter gestellt werden, die durch die von diesem API-Aufruf zurückgegebene llmProviderId
identifiziert werden.
Die API zum Stellen einer Frage an das Dataworkz QnA-System ist https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}/answer
Diese API benötigt die systemId
des QnA-Systems, auf das Sie abzielen, und die llmProviderId
des zu verwendenden LLM. Die QnA-Beispielanwendung nutzt diese API, um die Seite „Wissenssuche“ zu betreiben. Die Antwort dieser API umfasst die Antwort des LLM sowie Links zu den maßgeblichen Quellen, die die Antwort stützen.
Die QnA-Beispielanwendung stellt eine Liste zuvor gestellter Fragen aus einem QnA-System bereit. Dies ist eine bequeme Methode für Benutzer, zuvor beantwortete Fragen anzuzeigen. Die folgende API wird verwendet: https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId)/questionshistory
Dataworkz bietet eine Liste zuvor beantworteter Fragen sowie zusätzliche Bewertungen und Analysen zur Qualität der Antwort. Lesen Sie hier mehr darüber. Die QnA-Beispielanwendung verwendet diese API, um Details zu jeder beantworteten Frage bereitzustellen – https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}/questions/{questionId}