Ein ChatGPT-ähnlicher SMS-Chatbot mit OpenAI und Python
Lesezeit: 4 Minuten
ChatGPT ging vor Kurzem viral. Dieser von OpenAI entwickelte Conversational Machine Learning (ML)-Chatbot kann Fragen beantworten, Zusammenfassungen geben, falsche Versprechen hinterfragen, Geschichten, Poesie erzeugen und vieles mehr. Lesen Sie weiter, um zu erfahren, wie Sie einen ChatGPT-ähnlichen SMS-Chatbot mit der OpenAI-API und Twilio Programmable Messaging mit Python erstellen.
ChatGPT
GPT-3 (kurz für „Generative Pre-Training Transformer 3“) ist ein NLP-Modell (Natural Language Processing), das für menschengenerierten Text trainiert ist. In Antwort auf eine Frage kann er menschenähnliche Texte in einer Vielzahl von Sprachen und Stilen generieren. Hier schicke ich ihm die folgende Aufforderung: „Gib mir einen Rap-Text über SendGrid.“
Falls Sie es selbst testen möchten, können Sie ChatGPT hier im Browser testen.
Das GPT-3-Modell verwendet eine Transformer-Architektur. Dieses mehrschichtige neuronale Netzwerk eignet sich gut zur Verarbeitung sequenzieller Daten wie Text. Zu den sprachbezogenen Aufgaben, die es ausführen kann, gehören Übersetzung, Zusammenfassung und Beantwortung von Fragen sowie eine Textgenerierung, die mit der menschlichen vergleichbar ist.
Um ChatGPT in einer Python-Anwendung zu imitieren, müssen Sie OpenAI-API verwenden.
Voraussetzungen
- Ein Twilio-Konto: Melden Sie sich hier für ein kostenloses Twilio-Konto an
- Eine Twilio-Telefonnummer mit SMS-Funktionen: Erfahren Sie hier, wie Sie eine Twilio-Telefonnummer kaufen können
- Ein OpenAI-Konto: Erstellen Sie hier ein OpenAI-Konto
- Python installiert: Laden Sie Python hier herunter
- Mit dem praktischen Programm ngrok können Sie die unserer Python-Anwendung, die auf Ihrem Computer ausgeführt wird, mit einer öffentlichen URL verbinden, auf die Twilio zugreifen kann. Das ist für die Entwicklung des Chatbots notwendig, da sich Ihr Computer wahrscheinlich hinter einem Router oder einer Firewall befindet, sodass er nicht direkt über das Internet erreichbar ist. Übrigens, sie können ngrok auch automatisieren.
Konfiguration
Da Sie für dieses Projekt einige Python-Pakete installieren werden, müssen Sie ein neues Projektverzeichnis und eine virtuelle Umgebung erstellen.
Bei einem Unix- oder MacOS-System öffnen Sie ein Terminal und geben die folgenden Befehle ein:
Wenn Sie diesem Tutorial unter Windows folgen, geben Sie die folgenden Befehle in eine Kommandozeile ein:
Der letzte Befehl verwendet pip
, den Python-Paket-Installer, um die vier Pakete zu installieren, die Sie in diesem Projekt verwenden werden, nämlich:
- Die OpenAI-Python-Clientbibliothek, um Anforderungen an die GPT-3-Engine der OpenAI zu senden.
- Die Twilio-Python-Hilfsbibliothek zum Arbeiten mit SMS-Nachrichten.
- Das Flask-Framework zum Erstellen der Webanwendung in Python.
- Das Python-dotenv-Paket, um eine Konfigurationsdatei zu lesen.
Wie oben erwähnt, benötigen Sie für dieses Projekt einen OpenAI-API-Schlüssel. Nachdem Sie ein OpenAI-Konto erstellt haben, können Sie hier einen OpenAI-API-Schlüssel erhalten, indem Sie auf + Create new secret key (Neuen geheimen Schlüssel erstellen) klicken.
Die Python-Anwendung muss Zugriff auf diesen Schlüssel haben. Dazu erstellen wir eine .env-Datei, in der Sie den API-Schlüssel sicher speichern können. Die Anwendung, die wir erstellen, kann diesen Schlüssel dann als Umgebungsvariable importieren.
Erstellen Sie eine .env-Datei im Stammverzeichnis Ihres Projekts und geben Sie die folgende Textzeile ein. Achten Sie dabei darauf, <OPENAI_API_KEY> durch Ihren tatsächlichen Schlüssel zu ersetzen:
Achten Sie darauf, dass der OPENAI_API_KEY
sicher ist und dass Sie Ihre .env-Datei nicht an einem öffentlichen Ort wie GitHub verfügbar machen.
Jetzt muss Ihre Flask-App im Internet sichtbar sein, damit Twilio Anfragen an die App senden kann. Das erreichen Sie mit ngrok. Mit installiertem ngrok führen Sie ngrok http 5000
in einer neuen Terminal-Registerkarte in dem Projektverzeichnis aus.
Sie sollten den oben abgebildeten Bildschirm sehen. Konfigurieren Sie mithilfe dieser ngrok-Weiterleitungs-URL Ihre Twilio-Nummer: Wählen Sie dazu Ihre Twilio-Nummer unter Active Numbers (Aktive Nummern) in Ihrer Twilio-Konsole und scrollen Sie zum Abschnitt „Messaging“. Ändern Sie dann die Weiterleitung der Telefonnummer, indem Sie die ngrok-URL in das A Message Comes In (Eine Nachricht geht ein) Textfeld einfügen:
Klicken Sie auf Save (Speichern). Ihre Twilio-Telefonnummer wird jetzt so konfiguriert, dass sie Ihrem lokalen Webanwendungsserver auf Ihrem Computer zugeordnet wird. Erstellen wir nun diese Anwendung.
Erstellen Ihrer ChatGPT-ähnlichen SMS Python-App
Erstellen Sie in Ihrem Verzeichnis chatgpt-sms-python eine neue Datei mit dem Namen app.py.
Kopieren Sie den folgenden Code und fügen Sie ihn in app.py ein, um das ChatGPT-ähnliche Projekt zu starten. Der Code importiert die erforderlichen Module, legt den OpenAI-API-Schlüssel über die .env-Datei fest und erstellt eine Flask-App.
Fügen Sie direkt darunter den folgenden Code ein:
Innerhalb der /sms
-Webhook erstellt dieser Code die Variable inbMsg
aus der eingehenden, vom Nutzer:innen eingegebenen SMS. Anschließend wird die Methode openai.Completion.create
aufgerufen, die basierend auf inbMsg
Text generieren soll.
Um unsere Completion (oder Antwort) zu spezifizieren, geben Sie einige Parameter ein: model
gibt das OpenAI-Sprachmodell an, das verwendet wird, um eine Antwort für den Text zu generieren, den wir mit dem prompt
-Parameter zuweisen. In diesem Tutorial verwenden Sie das Sprachmodell text-davinci-003
. Es handelt sich um das gleiche Sprachmodell, das auch im Hintergrund von ChatGPT verwendet wird. Die Open-AI-Dokumentation listet die anderen Sprachmodelle auf, die sie zur Verwendung anbieten.
Die optionalen Parametermax_tokens
und frequency_penalty
geben die maximale Länge der Antwort und den Aufwand an, den das Modell betreiben soll, um sich nicht zu wiederholen. Weitere optionale Eigenschaften zum Abschluss finden Sie hier in der OpenAI-Dokumentation.
Sie können die vollständige App auf GitHub hier ansehen.
Führen Sie die Python-Flask-App aus, indem Sie den folgenden Befehl ausführen.
Nehmen Sie jetzt Ihr Telefon und senden Sie eine SMS mit einer Frage oder Aufforderung an Ihre Twilio-Telefonnummer, damit OpenAI sie beantworten kann.
Was steht als Nächstes für Twilio und ChatGPT an?
Die Entwicklungsmöglichkeiten, die ChatGPT und Twilio bieten, sind endlos. Sie können einen SMS-Chatbot mit Python erstellen, einen KI-Freund anrufen, über WhatsApp mit einem KI-Kochprofi chatten, OpenAI API mit Node.js und Twilio Serverless verwenden und vieles mehr. Lassen Sie mich wissen, woran Sie mit OpenAI oder Python arbeiten (bitte auf Englisch, da dieser Artikel übersetzt wurde). Ich bin gespannt, was Sie damit entwickeln.
- Twitter: @lizziepika
- GitHub: elizabethsiegle
- E-Mail: lsiegle@twilio.com
Verwandte Posts
Ähnliche Ressourcen
Twilio Docs
Von APIs über SDKs bis hin zu Beispiel-Apps
API-Referenzdokumentation, SDKs, Hilfsbibliotheken, Schnellstarts und Tutorials für Ihre Sprache und Plattform.
Ressourcen-Center
Die neuesten E-Books, Branchenberichte und Webinare
Lernen Sie von Customer-Engagement-Experten, um Ihre eigene Kommunikation zu verbessern.
Ahoy
Twilios Entwickler-Community-Hub
Best Practices, Codebeispiele und Inspiration zum Aufbau von Kommunikations- und digitalen Interaktionserlebnissen.