banner
Heim / Blog / Erstellen Sie über die OpenAI-API – SitePoint – einen Chatbot, der auf Ihren eigenen Daten trainiert wird
Blog

Erstellen Sie über die OpenAI-API – SitePoint – einen Chatbot, der auf Ihren eigenen Daten trainiert wird

Aug 23, 2023Aug 23, 2023

In diesem Artikel erfahren Sie, wie Sie Ihren eigenen Chatbot mithilfe der OpenAI-API trainieren und testen und ihn in eine Web-App umwandeln, die Sie mit der Welt teilen können.

Da KI die Informationstechnologien revolutioniert hat, haben viele sie mithilfe von API-Anbietern wie OpenAI genutzt, um KI in ihre Daten zu integrieren.

Eine besonders gute Möglichkeit, KI für Ihre Daten zu nutzen, besteht darin, einen eigenen Chatbot zu erstellen.

Stellen Sie sich zum Beispiel vor, Sie hätten einen Datensatz, der aus Tausenden von Unternehmensgewinnberichten besteht. Sie möchten es erkunden und analysieren, ohne Stunden Ihrer Zeit zu verschwenden. Eine gute Option wäre es, einen Chatbot zu erstellen, der alle Fragen zu den Dokumenten beantwortet – so ersparen Sie sich das manuelle Durchsuchen der Dokumente.

Beispielsweise möchten Sie vielleicht fragen: „Welches Unternehmen hatte im letzten Quartal die besten Erträge?“ – eine Frage, die Sie normalerweise beantworten müssten, indem Sie Ihren Datensatz manuell durchsuchen. Durch den Einsatz eines Chatbots, der auf Ihre Daten trainiert wird, können Sie in Sekundenschnelle die Antwort auf diese Frage erhalten.

Um mit Ihrem eigenen Chatbot zu beginnen, benötigen Sie zunächst Zugriff auf die OpenAI-API. Um Ihren OpenAI-API-Schlüssel zu erhalten, melden Sie sich auf der OpenAI-Website an. Klicken Sie dann auf Ihr Profilsymbol oben rechts auf der Startseite und wählen Sie es ausAPI-Schlüssel anzeigen, und klicken SieErstellen Sie einen neuen geheimen Schlüsselum einen neuen API-Schlüssel zu generieren.

Für dieses Tutorial verwende ich die Wikipedia-Seite für Computer, um einen einfachen Chatbot zu erstellen, der alle allgemeinen Fragen zu Computern und ihrer Geschichte beantworten kann.

Sie können den Datensatz im Textformat aus dem GitHub-Repo dieses Artikels herunterladen.

Erstellen Sie einen neuen Ordner, in dem Sie Ihren Chatbot erstellen. Erstellen Sie dann einen Ordner mit dem Namen chatbot_docs in Ihrem Projektordner und fügen Sie die Datensatzdatei in diesen Ordner ein. (Der Name des Ordners spielt keine Rolle, aber für dieses Tutorial ist es viel einfacher, ihn chatbot_docs zu nennen.)

Sobald Sie Ihren API-Schlüssel und die Datensatzdatei haben, können Sie mit dem eigentlichen Code beginnen.

Gehen Sie zu Ihrem Projektordner und erstellen Sie eine leere Python-Datei in Ihrem neuen Projektordner.

Sobald Sie das getan haben, laden Sie die Bibliotheken herunter, die wir verwenden werden, indem Sie Folgendes in Ihrem Terminal ausführen:

Sobald Sie schließlich alle erforderlichen Bibliotheken installiert haben, fügen Sie diesen Python-Code aus unserem Repo in Ihre Python-Datei ein.

Für dieses Tutorial verwende ich das OpenAI-Modell gpt-3.5-turbo, da es das schnellste und kostengünstigste ist. Wie Sie vielleicht bemerkt haben, wenn Sie sich den Code angesehen haben, habe ich die Temperatur des Chatbots auf 0 gesetzt. Ich habe dies getan, um den Chatbot so sachlich genau wie möglich zu machen. DerTemperatur Der Parameter bestimmt die Kreativität des Chatbots, wobei eine Temperatur von 0 bedeutet, dass der Chatbot immer sachlich korrekt ist und eine Temperatur von 1 bedeutet, dass der Chatbot völlige Freiheit hat, Antworten und Details aus Gründen der Kreativität zu erfinden, auch wenn dies der Fall ist nicht genau. Je höher die Temperatur, desto kreativer und weniger sachlich korrekt ist der Chatbot.

In diesem Code erwähne ich das Wort „Einbettungen“. Dies ist genau das, in was der Text in Ihrem Wikipedia-Dokument umgewandelt wird, damit er vom Chatbot verstanden und verstanden wird. Bei jeder Einbettung handelt es sich um eine Liste von Zahlen im Bereich von -1 bis 1, die die einzelnen Informationen danach verknüpfen, wie eng sie mit anderen verknüpft sind. Falls Sie sich fragen, was text-embedding-ada-002 bedeutet: Dies ist nur das Modell, das für die Einbettungen verwendet wird, da es am kosten- und zeiteffizientesten ist.

Dieser Code erstellt eine Einbettungs-CSV-Datei für jedes Dokument in Ihrem chatbot_docs-Ordner, und da Sie nur eine haben (für die Zwecke dieses Tutorials), wird auch nur eine Einbettungsdatei erstellt. Wenn Sie jedoch mehr Dokumente hätten, würde der Code für jedes Dokument eine Einbettungsdatei erstellen. Dieser Ansatz macht Ihren Chatbot skalierbarer.

Sie wundern sich wahrscheinlich auch über den Teil mit den Brocken:

Lassen Sie mich erklären. Dieser Code teilt die Wikipedia-Seite über Computer in Abschnitte von 2000 Zeichen und einen überlappenden Abschnitt von 250 Zeichen. Je größer die Blockgröße, desto größer der Kontext des Chatbots, aber dadurch kann er auch langsamer werden. Deshalb habe ich für dieses Tutorial 2000 als guten Mittelwert zwischen 0 und 4096 (die maximale Blockgröße) gewählt.

Was die Chunk-Überlappung betrifft, empfiehlt ChatGPT, die Chunk-Überlappung zwischen 10 % und 20 % der Chunk-Größe zu halten. Dadurch bleibt ein gewisser Kontext zwischen den verschiedenen Blöcken erhalten. Es stellt außerdem sicher, dass die Blöcke nicht redundant sind, indem verhindert wird, dass sie zu viele Daten der vorherigen Blöcke enthalten.

Je kleiner die Chunk-Überlappung ist, desto kleiner ist der Kontext zwischen den Chunks. Je größer die Chunk-Überlappung ist, desto größer ist der Kontext zwischen den Chunks und desto redundanter sind die Chunk-Daten.

Dieser Code teilt das Dokument auch nach Absätzen auf, indem er den Text jedes Mal aufteilt, wenn eine neue Zeile (\n oder \n\n) steht. Dadurch werden die Abschnitte zusammenhängender, da sichergestellt wird, dass sie nicht mitten im Absatz geteilt werden.

Sobald Sie Ihren Code ausgeführt haben, haben Sie Ihre Daten für die Verwendung durch den Chatbot vorbereitet. Das bedeutet, dass Sie jetzt den eigentlichen Chatbot erstellen können.

Während die Python-Datei, die Sie gerade ausgeführt haben, die für die Funktion des Chatbots erforderlichen Einbettungen erstellt hat, müssen Sie jetzt eine weitere Python-Datei für den eigentlichen Chatbot erstellen. Dabei wird eine Frage als Eingabe verwendet und eine vom Chatbot gegebene Antwort ausgegeben.

Nachdem Sie eine neue Python-Datei erstellt haben, fügen Sie diesen Python-Code aus dem Repo hinzu.

Wenn Sie nun Ihren Chatbot ausführen, sollten Sie nach einigen Sekunden der Verarbeitung die folgende Ausgabe erhalten.

Da Sie nun Ihren Chatbot haben, können Sie mit verschiedenen Fragen experimentieren! Sie können auch mit verschiedenen Chunks und Chunk-Überlappungen sowie der Temperatur experimentieren (wenn Sie nicht möchten, dass Ihr Chatbot 100 % sachlich korrekt ist).

Auch wenn es schön ist, einen einfachen Chatbot zu haben, suchen Sie wahrscheinlich nach dem echten Angebot – nach einer Benutzeroberfläche für Ihren Chatbot, die Benutzern aus der ganzen Welt die Nutzung ermöglicht.

Um mit Ihrer Chatbot-Web-App zu beginnen, erstellen Sie einen Vorlagenordner in Ihrem Projektverzeichnis. Erstellen Sie darin eine HTML-Datei namens bot.html und eine CSS-Datei namens style.css.

Stellen Sie außerdem sicher, dass Sie in Ihrem Projektverzeichnis einen leeren Chat-Ordner erstellen. Dies wird für die Backend-Frontend-Kommunikation verwendet.

Fügen Sie nun diesen CSS-Code zu Ihrer style.css-Datei hinzu.

Nachdem Sie das getan haben, fügen Sie diesen HTML-Code zu Ihrer bot.html-Datei hinzu.

Jetzt müssen Sie Ihr Python-Chatbot-Skript ändern, um Anfragen von Ihrer Webseite zu empfangen und Antworten mit Flask zurückzusenden. Ändern Sie Ihr Python-Skript in diesen Code.

Jetzt testen wir Ihre Chatbot-Web-App! Führen Sie Ihre Python-Datei aus und öffnen Sie localhost:8001. Sie sollten nun Ihre Webseite sehen, wie unten abgebildet.

Wenn Sie nun eine Frage eingeben, sollte eine Ladeanimation angezeigt werden, während der Chatbot diese verarbeitet.

Schließlich sollten Sie nach ein paar Sekunden eine Antwort vom Chatbot erhalten, wie unten abgebildet.

Jetzt können Sie mit Ihrem Chatbot experimentieren. Verwenden Sie verschiedene Datensätze und bauen Sie auf dieser einfachen Web-App auf, um Ihre eigenen voll funktionsfähigen Web-Apps zu erstellen. Das Schöne an Chatbots ist, dass sie auf alles trainiert werden können – von Podcast-Transkripten bis hin zu Philosophiebüchern.

Ich hoffe, Sie fanden dieses Tutorial hilfreich. Viel Spaß beim Codieren!

Ich bin ein Full-Stack-Entwickler mit 3 Jahren Erfahrung mit PHP, Python, Javascript und CSS. Ich liebe es, über Webentwicklung, Anwendungsentwicklung und maschinelles Lernen zu bloggen.

In diesem Artikel erfahren Sie, wie Sie Ihren eigenen Chatbot mithilfe der OpenAI-API trainieren und testen und ihn in eine Web-App umwandeln, die Sie mit der Welt teilen können.API-Schlüssel anzeigenErstellen Sie einen neuen geheimen SchlüsselTemperatur