Implementierung von ChatGPT mit PubNub Webhooks in Django
Published: 2024-03-20 12:00:40

In der heutigen, sich ständig erweiternden digitalen Landschaft müssen wir ständig neue Updates und Mikroanpassungen vornehmen, um nach digitaler Perfektion zu streben. Bei solchen Fortschritten gab es schon immer eine Lücke, die überbrückt werden musste: die Notwendigkeit, den Nutzern bessere Erfahrungen in ihren Konversationen über [Chatbots](https://www.pubnub.com/blog/building-a-chatbot-with-openai-gpt3-and-pubnub/) zu bieten. Ziel ist es, intelligente Interaktionen zwischen Unternehmen und Einzelpersonen so zu gestalten, dass sich ein Nutzer zufrieden und emotional mit dem Produkt oder der Marke verbunden fühlt. Chatbots haben sich somit als vielseitiges Mittel erwiesen, um die Kluft zwischen der digitalen und der realen Welt zu verringern und die Art und Weise zu verändern, wie wir online mit Web-Apps, Android- und Apple-Geräten sowie Webbrowsern kommunizieren.

Chatbots erfüllen die wachsende Nachfrage nach Echtzeitkommunikation und -unterstützung, die jeder Nutzer erwartet. Ohne einen leistungsstarken Chatbot können Unternehmen leicht potenzielle Kunden und Leads verlieren, da es eine Vielzahl von Optionen gibt, aus denen sie wählen können. Die steigende Erwartungshaltung treibt die Anpassungsschlacht voran, da Chatbots in digitale Produkte integriert werden, um den Nutzern Komfort zu bieten und ihre Erfahrung zufriedenstellend zu gestalten.

Stellen Sie sich vor: Sie haben ein paar dringend benötigte Lebensmittel bestellt, aber die Bestellung verzögert sich. Sie öffnen die Web-App und sehen keine Bewegung in Ihrem Tracking-System. Sie brauchen ein Update. Nun, es gibt zwei mögliche Szenarien:

**Erstes Szenario:** Sie wählen die Nummer des Kundensupports und müssen warten, weil die Leitungen besetzt sind. Ihre Frustration wächst.

**Zweites Szenario:** Sie haben die Möglichkeit, einen [Live-Chat](https://www.pubnub.com/solutions/chat/) zu nutzen und erhalten fast sofort Hilfe. Sie erhalten eine Nachricht, dass der Zusteller unterwegs ist und in wenigen Minuten bei Ihnen eintreffen wird. Sie haben auch die Möglichkeit, sich online mit einem Mitarbeiter in Verbindung zu setzen, wenn Sie weitere Informationen wünschen.

_Welche Erfahrung würden Sie bevorzugen?_

Alle Nutzer erwarten ein gewisses Maß an Komfort bei ihren Online-Aktivitäten. Ob es sich nun um Einkäufe, Fragen, Bildung, Spiele usw. handelt, der sofortige Austausch von Informationen und die Lösung von Fragen ist einer der wichtigsten Auslöser für positive Online-Erfahrungen und Interaktionen und daher notwendig.

Die wachsende Bedeutung von Chatbots
------------------------------------

Einem aktuellen Forschungsbericht von Grand View Research, Inc. zufolge wird die Größe des Chatbot-Marktes in den kommenden Jahren erheblich ansteigen und bis 2030 etwa [27,3 Milliarden USD bis 2030 erreichen wird](https://www.grandviewresearch.com/press-release/global-chatbot-market). Dies entspricht einer durchschnittlichen Wachstumsrate (CAGR) von 23,3 % zwischen dem laufenden Jahr und 2030. Eine erstaunliche Wachstumsrate, um es vorsichtig auszudrücken! Die Projektion unterstreicht die entscheidende Rolle, die Chatbots bei der Gestaltung der Zukunft der digitalen Kommunikation spielen werden, da sie die Kluft zwischen Technologie und Nutzern weiter überbrücken.

Herkömmliche Kommunikationsmethoden haben Schwierigkeiten, sofortigen und reaktionsschnellen Support zu bieten, während intelligente Chatbots, die von Technologien wie Django, PubNub Webhooks und dem ChatGPT-Sprachmodell angetrieben werden, sich dadurch auszeichnen, dass sie Benutzer in sinnvolle Interaktionen einbinden.

Unternehmen profitieren von intelligenten Chatbots auf verschiedene Weise. Sie automatisieren die Antwortraten, bieten prompte Kundenunterstützung bei vorhersehbaren Anfragen, und wenn komplexe Probleme auftreten, kann der Chatbot die Konversation an einen menschlichen Vertreter weiterleiten und gleichzeitig den Komfort der Benutzer sicherstellen. Neben der Unterstützung fördern Chatbots auch den Verkauf, generieren Leads und pflegen den Online-Ruf von Marken. Die Automatisierung, die Chatbots bieten, senkt auch die Kosten für Unternehmen und rationalisiert Prozesse. Davon profitiert vor allem der E-Commerce durch [Verbesserung des Kundenerlebnisses](https://www.pubnub.com/blog/4-ways-ecommerce-chatbots-enrich-customer-experiences/) mit Einkaufsvorschlägen, individuellen Empfehlungen, wiederholten Auflistungen auf der Grundlage von Historie und Häufigkeit und vielem mehr.

Die Entwicklung von intelligenten Chatbots ist eine komplexe Aufgabe. Sie erfordert Innovation und ein Verständnis des menschlichen Online-Verhaltens. Leistungsstarke Frameworks wie Django, Echtzeit-Messaging-Plattformen wie PubNub und hochentwickelte KI-Sprachmodelle wie ChatGPT können zusammenarbeiten, um eine allumfassende Strategie zu entwickeln, mit der reaktionsschnelle und dynamische Benutzererfahrungen generiert werden können; komplett mit Kontext, Bedeutung und Anregung.

### Das Django-Framework und PubNub-Webhooks

Das Django-Framework ist [eines der besten Python-Frameworks](https://www.browserstack.com/guide/top-python-web-development-frameworks)und bildet die Grundlage für die Entwicklung von Chatbot-Software. Es bietet auch die wesentliche Logik im Framework, die eine kontinuierliche Kommunikation und Interaktion ermöglicht. Entwickler haben die Möglichkeit, immersive Anwendungen zu erstellen, bei denen auch komplexe Funktionen in das Toolkit integriert werden können, um ein reichhaltiges Ökosystem zu schaffen. Django rationalisiert den Entwicklungsprozess mit einem organisierten und systematisierten Ansatz für die Erstellung von Webanwendungen, die leicht gewartet werden können. Dies ist vor allem auf seine leistungsstarken Funktionen wie das integrierte URL-Routing, robuste Sicherheitsmechanismen und die Model-View-Controller-Architektur (MVC) zurückzuführen.

Die Webhooks von PubNub heben die Interaktion jedoch auf die nächste Stufe, indem sie als Verbindung zwischen Ihrem Django-Backend und der Nachrichtenstruktur von PubNub dienen. Die Webhooks von Pubnub sind in der Lage, auf Nutzernachrichten in Echtzeit zu reagieren, da ihre Funktionalität sofort beim Empfang einer Nachricht ausgelöst wird. Es ist in der Lage, Anfragen zu beantworten, Empfehlungen auszusprechen, Benutzer zu unterstützen und ohne erkennbare Verzögerung in einen Dialog einzutreten. Diese prompte Bereitstellung von Antworten führt zu einem Gesprächsfluss, der, obwohl er im Hintergrund automatisiert ist, für jeden Benutzer natürlich erscheint. Wir werden im Detail besprechen, wie [die Erstellung eines Chatbots mit PubNub und ChatGPT / OpenAI](https://www.pubnub.com/blog/build-a-chatbot-with-pubnub-and-chatgpt-openai/) Entwicklern einen Vorteil bei der Erstellung von ansprechenden KI-gesteuerten Chatbots verschafft.

Die Intelligenz eines Chatbots misst sich an seiner Fähigkeit, die Historie abzurufen und Bezüge zu vergangenen Interaktionen herzustellen, um so ein Ökosystem sinnvoller und kohärenter Konversationen zu schaffen. [PubNub's fetch\_messages](https://www.pubnub.com/docs/chat/sdks/messages/message-history) ermöglicht es Chatbots, den Kontext jeder Interaktion durch Abrufen des Chatverlaufs zu ermitteln. Diese Funktion ermöglicht personalisierte, kohärente Unterhaltungen, bei denen sich die Nutzer wertgeschätzt und verstanden fühlen.

PubNub's [ChatGPT](https://www.pubnub.com/integrations/openai/) Integration von PubNub wird die Benutzererfahrung weiter verbessern. ChatGPT ist ein KI-basiertes Sprachmodell mit maschinellem Lernen, das einen Deep-Learning-Algorithmus verwendet, um Antworten zu generieren, indem es den Kontext von Anfragen versteht. Die Integration von ChatGPT in das Echtzeit-Framework von PubNub gewährleistet eine prompte Reaktion und sorgt für einen natürlichen Gesprächsfluss.

Sowohl Django als auch PubNub zeichnen sich durch die Fähigkeit aus, hohen Traffic zu bewältigen und gleichzeitig einen steigenden Prozentsatz an Nutzern aufzunehmen. Die Zusammenarbeit des Django-Frameworks und der PubNub-Infrastruktur ermöglicht Personalisierung, domänenspezifisches Sprachverständnis und präzise Antwortgenerierung. Regelmäßige Aktualisierungen und Änderungen der ChatGPT-Antworten ermöglichen es den Chatbots, ein Verständnis für die domänenspezifische Sprache zu erlangen und die Präferenzen der Benutzer mit klarer Präzision zu erfüllen.

PubNub Webhooks-Integration in Django-Tutorial
----------------------------------------------

Wir stellen Ihnen nun eine Vorlage zur Verfügung, mit der Sie PubNub-Webhooks in Ihre Django-Anwendung integrieren können.

### Einrichten der Umgebung

Bevor wir in die technische Ausführung eintauchen, sollten wir sicherstellen, dass die Entwicklungsumgebung korrekt eingerichtet ist.

**Installation der erforderlichen Abhängigkeiten:** Der erste Schritt ist die Installation der notwendigen Software und Bibliotheken. Python und Django sind für das Backend obligatorisch, ebenso wie alle zusätzlichen Pakete oder Plugins, die für das jeweilige Projekt benötigt werden. Das Erstellen einer virtuellen Umgebung hilft bei der Verwaltung der Abhängigkeiten. PubNub ist plattformübergreifend und unterstützt andere SDKs von Java über React und REST-APIs bis hin zu JavaScript / Node.js, aber dieses Tutorial wird Python verwenden.

**Erstellen Sie ein Django-Projekt:** Sobald alle erforderlichen Pakete installiert sind, erstellen Sie ein neues Django-Projekt. Dies wird die Grundlage für Ihre Chatbot-App sein.

**API-Schlüssel beschaffen:** API-Schlüssel werden für die Interaktion mit peripheren Diensten wie PubNub und ChatGPT benötigt. Melden Sie sich bei diesen Plattformen an und erstellen Sie Konten, um die notwendigen Schlüssel für die Authentifizierung Ihrer Anfragen zu erhalten.

### Erstellen Sie einen Django-Webhook-Endpunkt

Definieren Sie einen Webhook-Endpunkt, der PubNub-Ereignisse in Ihrem Django-Projekt empfangen soll. Dieser Endpunkt sollte so konfiguriert sein, dass er HTTP-POST-Anfragen verarbeitet und die eingehenden Event-Payloads verarbeitet.

### Konfigurieren Sie PubNub Webhooks

Konfigurieren Sie in Ihrem PubNub-Konto die Webhook-Einstellungen, um relevante Ereignisse an die URL Ihres Django-Webhook-Endpunkts zu senden. Geben Sie die Ereignisse an, die Sie erfassen möchten, z. B. neue Nachrichten, die in einem Kanal veröffentlicht werden.

### Verarbeiten Sie eingehende Ereignisse

Extrahieren Sie in der Ansicht Ihres Django-Webhook-Endpunkts die erforderlichen Informationen aus der empfangenen Ereignis-Nutzlast. Dazu gehören das Parsen des Nachrichteninhalts, alle zugehörigen Metadaten und jeder zusätzliche Kontext, der für die Verarbeitung mit ChatGPT erforderlich ist.

```js
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status

      
 class PubNubOpenAIView(APIView):


def post(self, request):
        try:
            payload = request.data
            question = payload["event"]["eventPayload"]["message"]
            sender = payload["event"]["senderId"]
            channel = payload["event"]["channel"]

            pubnub_history = get_pubnub_history(channel)
            history_messages = [message.message for message in history.result.channels[channel]]  
            openai_response = get_openai_response(message, history_messages)
            pubnub_response = publish_message(
                channel, openai_response
            )

            if pubnub_response.status.status_code == status.HTTP_200_OK:
                return Response({"status": "success"}, status=status.HTTP_200_OK)
            else:
                return Response(
                    data={"error": "Error while sending back to pubnub"},
                    status=pubnub_response,
                )

        except Exception as pubnub_open_ai_error:
            return Response(
                {"message": pubnub_open_ai_error.args[0]},
                status=status.HTTP_400_BAD_REQUEST,
            )
```

### Implementieren von kontextbezogenen Konversationen

PubNub bietet eine leistungsstarke Funktion namens fetch\_messages, mit der Sie den Chatverlauf für einen bestimmten Kanal abrufen können. Diese Funktion spielt eine entscheidende Rolle bei der Erstellung sinnvoller und ansprechender Interaktionen, da sie die Fähigkeit des Chatbots zeigt, sich an den Verlauf zu erinnern und Unterhaltungen durch Bezugnahme auf frühere Kommunikation zu personalisieren.

Der Chatverlauf spielt eine entscheidende Rolle bei der Schaffung einer sinnvollen und ansprechenden Interaktion. Er zeigt die Fähigkeit des Chatbots, sich an die Vergangenheit zu erinnern, und festigt so sein Erinnerungsvermögen. Außerdem ist er in der Lage, die Konversationen zu personalisieren, indem er sich auf frühere Kommunikationen bezieht. Dieser dynamische Ansatz führt dazu, dass der Nutzer den Eindruck hat, ein natürliches Gespräch zu führen.

Dieser Schritt ist ein wichtiger Teil des Implementierungsprozesses, um eine sinnvolle Kommunikation in der gesamten Chatbot-Umgebung zu gewährleisten.

Hier finden Sie ein Python-Tutorial, wie Sie kontextbezogene Konversationen mit fetch\_messages implementieren können.

```js
from pubnub.pnconfiguration import PNConfiguration
from pubnub.pubnub import PubNub


pnconfig = PNConfiguration()

pnconfig.subscribe_key = os.environ["PUBNUB_SUBSCRIBE_KEY"]
pnconfig.publish_key = os.environ["PUBNUB_PUBLISH_KEY"]
pubnub = PubNub(pnconfig)
history_count = 5         
    
 def get_pubnub_history(channel):
    envelope = pubnub.fetch_messages() \
        .channels([channel]) \
        .count(int(history_count)) \
        .include_meta(True) \
        .sync()
    return envelope
```

### Nutzen Sie ChatGPT für die Antwortgenerierung

Übergeben Sie den extrahierten Nachrichteninhalt an das ChatGPT-Modell zur Generierung von Antworten. Nutzen Sie die Leistungsfähigkeit von ChatGPT, um kohärente und kontextabhängige Antworten auf der Grundlage der Eingaben zu generieren.

```js
import openai


def get_openai_response(message: str, history: list):
 """
 This function connects to the OpenAI API and fetches a response for the given user request.
 """
 try:
     messages = []
     messages.extend(history) # adding previous context
     messages.append({"role": "system", "content": message})
     response = openai.ChatCompletion.create(
         model="gpt-3.5-turbo", messages=messages
     )
     return response["choices"][0].message.content

 except Exception as e:
     raise Exception(e)
```

### Senden Sie die Antwort über PubNub

Sobald die Antwort generiert ist, verwenden Sie PubNub, um die Antwort an die gewünschten Kanäle oder Empfänger zurückzusenden und so eine Zustellung in Echtzeit zu gewährleisten.

```js
from pubnub.pnconfiguration import PNConfiguration
from pubnub.pubnub import PubNub


pnconfig = PNConfiguration()

pnconfig.subscribe_key = os.environ["PUBNUB_SUBSCRIBE_KEY"]
pnconfig.publish_key = os.environ["PUBNUB_PUBLISH_KEY"]
pubnub = PubNub(pnconfig)
         
            
 def publish_message(channel, message):
    """
        This function is used to send a message to PubNub.
        channel: Channel name where the message needs to be sent
        message: message that is to be sent back to user
    """
    response = pubnub.publish().\
        channel(channel).\
        message(message).\
        meta({'from': 'chatbot'}).\
        sync()
    return response
```

Web-Entwicklung: Wenn Sie die Antwort erhalten, sollten Sie etwas Frontend-HTML/CSS erstellen, um das von Ihrem PubNub-Abonnement-Aufruf zurückgegebene JSON zu parsen.

### Domänenspezifische Aufforderungen bereitstellen

Die Personalisierung von Unterhaltungen mit domänenspezifischen Aufforderungen verbessert die Fähigkeiten des Chatbots. Mit Hilfe von ChatGPT können wir die Antworten mit Hilfe von domänenspezifischen Prompts strategisch ausrichten. Dadurch wird auch die Abhängigkeit von benutzergenerierten Nachrichten verringert. Das folgende Tutorial kann Ihnen bei der Integration von domänenbasierten Prompts und der anschließenden ChatGPT-Ausführung helfen:

#### Dem Prompt vorangestellt

Anstatt Benutzernachrichten direkt an ChatGPT zu senden, sollten Sie den Kontext herstellen, indem Sie domänenspezifische Prompts hinzufügen, die zu Antworten führen, die auf die gewünschten Ergebnisse ausgerichtet sind. Dies hilft dabei, ein tiefes Verständnis für ChatGPT zu entwickeln, um Antworten auf der Grundlage von domänenspezifischen Aufforderungen zu strukturieren und gezielte Antworten zu liefern. Sehen wir uns ein paar Beispiele an:

-   Für einen Chatbot zur Reservierung eines Tisches: "Gastgeberin: \[Nachricht des Benutzers\]"
    
-   In einem Kundensupport-Szenario: "Support-Agent: \[Nachricht des Benutzers\]".
    
-   Für einen Hotelbuchungsassistenten: "Hotelexperte: \[Nachricht des Benutzers\]".
    

#### Benutzerdefinierte Antwortgenerierung

Durch die Einbindung einer domänenbasierten Eingabeaufforderung können Sie ChatGPT anweisen, Antworten zu generieren, die perfekt auf Ihr gewünschtes Ergebnis abgestimmt sind. Diese Methode schafft ein kohärentes Ökosystem, das eine immersive Kommunikation ermöglicht und es dem Chatbot erlaubt, maßgeschneiderte Lösungen anzubieten.

Hier sind ein paar Beispiele:

-   Ein Chatbot für die Versicherungsberatung könnte Nachrichten mit "Insurance Advisor: \[Nachricht des Nutzers\]" vorangestellt werden, um die Antworten auf versicherungsbezogene Anfragen relevant zu halten.
    
-   Ein Ernährungscoach-Chatbot kann "Coach: \[Nachricht des Benutzers\]" verwenden, um personalisierte Ernährungsempfehlungen und -pläne anzubieten.
    

#### Prompt-Variation und Experimentieren

Die Verwendung domänenspezifischer Eingabeaufforderungen stellt nicht nur den Kontext her, sondern ermöglicht auch das Lernen und Experimentieren. Sie können die Abfragen mit verschiedenen Eingabeaufforderungen wiederholen, um die ChatGPT-Antworten zu optimieren. Hier ist eine Möglichkeit zu experimentieren:

-   Passen Sie den Tonfall an: Für einen formellen Rahmen verwenden Sie "Grüße, ich bin hier, um Ihnen zu helfen: \[Nachricht des Benutzers\]", während Sie für einen informellen Ton "Hey there! Lassen Sie uns reden: \[Nachricht des Benutzers\]".
    
-   Fachwissen hervorheben: Für einen Chatbot zur medizinischen Beratung können Sie, je nach dem Notfall, den die Branche behandelt, Aufforderungen mit "Doktor: \[Nachricht des Nutzers\]" einleiten, um die Kompetenz der Antworten zu unterstreichen.
    

Durch die Integration bereichsbezogener Prompts kann Ihr Chatbot effizient mit den Nutzern interagieren und gezielte Unterstützung bieten, die ein natürliches Erlebnis darstellt.

Fazit
-----

Die Kombination aus Django, PubNub-Webhooks und ChatGPT von OpenAI bietet ein unübertroffenes Toolkit für die Erstellung intelligenter, vollständig interaktiver Chatbot-Anwendungen. Entwickler können die Kluft zwischen der digitalen und der realen Welt überbrücken und die Abhängigkeit von der Automatisierung der Kommunikation festigen.

Django bringt ein robustes Webanwendungs-Framework mit sich, das eine solide Grundlage für skalierbare Chatbot-Erlebnisse mit mehreren Funktionen bietet, die sinnvoll sind. In der Zwischenzeit sorgt die Echtzeit-Reaktionsfähigkeit von PubNub dafür, dass die Konversationen flüssig bleiben und zu einer Kontinuität führen, die den Nutzern ein natürliches und echtes Erlebnis bietet. Darüber hinaus ermöglicht ChatGPT kontextbezogene Antworten, durch die sich die Nutzer zutiefst verstanden fühlen.

Mit der vollständigen Implementierung des Potenzials von Django, der Echtzeit-Reaktionsfähigkeit von PubNub und der Nutzung der Sprachkenntnisse von ChatGPT können die Entwickler erstaunliche Ergebnisse in Form von einzigartigen und innovativen Chatbot-Anwendungen liefern. Diese digitalen Schnittstellen werden die Interaktionen rationalisieren, ob es sich nun um Hilfe, Unterstützung oder Aufforderungen handelt. Alle drei zusammen verändern die Art und Weise, wie Nutzer mit KI-gesteuerten Chatbots interagieren.

Erfahren Sie mehr über die vielfältigen Möglichkeiten, die PubNub in [Echtzeit](https://www.pubnub.com/solutions/data-streaming/) bietet, und über seine Bedeutung für die Skalierbarkeit von Apps.

#### Inhalt

[Die wachsende Bedeutung von ChatbotsDas](#h-0)[Django-Framework und](#h-1)[PubNub-WebhooksPubNub-Webhooks-Integration in Django-TutorialEinrichten](#h-2)[der UmgebungErstellen](#h-3)[eines Django-Webhook-EndpunktsKonfigurieren von](#h-4)[PubNub-WebhooksVerarbeiten](#h-5)[eingehender EreignisseImplementieren](#h-6)[kontextbezogener KonversationenNutzen von](#h-7)[ChatGPT für die Generierung von AntwortenSenden von](#h-8)[Antworten über PubNubBereitstellen](#h-9)[domänenspezifischer PromptsVorbereiten](#h-10)[des PromptsBenutzerdefinierte](#h-11)[Generierung von](#h-12)[AntwortenPrompt-Variationen und](#h-13)[ExperimenteAbschluss](#h-14)

Wie kann PubNub Ihnen helfen?
=============================

Dieser Artikel wurde ursprünglich auf [PubNub.com](https://www.pubnub.com/blog/implementing-chatgpt-with-pubnub-in-django/) veröffentlicht.

Unsere Plattform unterstützt Entwickler bei der Erstellung, Bereitstellung und Verwaltung von Echtzeit-Interaktivität für Webanwendungen, mobile Anwendungen und IoT-Geräte.

Die Grundlage unserer Plattform ist das größte und am besten skalierbare Echtzeit-Edge-Messaging-Netzwerk der Branche. Mit über 15 Points-of-Presence weltweit, die 800 Millionen monatlich aktive Nutzer unterstützen, und einer Zuverlässigkeit von 99,999 % müssen Sie sich keine Sorgen über Ausfälle, Gleichzeitigkeitsgrenzen oder Latenzprobleme aufgrund von Verkehrsspitzen machen.

PubNub erleben
--------------

Sehen Sie sich die [Live Tour](https://www.pubnub.com/tour/introduction/) an, um in weniger als 5 Minuten die grundlegenden Konzepte hinter jeder PubNub-gestützten App zu verstehen

Einrichten
----------

Melden Sie sich für einen [PubNub-Account](https://admin.pubnub.com/signup/) an und erhalten Sie sofort kostenlosen Zugang zu den PubNub-Schlüsseln

Beginnen Sie
------------

Mit den [PubNub-Dokumenten](https://www.pubnub.com/docs) können Sie sofort loslegen, unabhängig von Ihrem Anwendungsfall oder [SDK](https://www.pubnub.com/docs)