Sentiment-Analyse mit PubNub-Funktionen und HuggingFace
Published: 2024-04-04 19:04:00

Da die Nutzung von KI in Ihrer eigenen Anwendung oder in Ihrem Unternehmen ständig zunimmt, ist es wichtig, sich mit dem Einsatz von KI bei der Entwicklung von Echtzeitsystemen zu befassen. Viele Anwendungsfälle fallen unter diese Kategorie, ob Sie nun einen [In-App-Chat](https://www.pubnub.com/solutions/chat/), [IoT](https://www.pubnub.com/solutions/iot-device-control/)oder [Live-Veranstaltungen](https://www.pubnub.com/solutions/live-audience-engagement/) Lösung; es gibt fast immer eine Möglichkeit, KI auf Ihre Lösung anzuwenden, um sie zu verbessern.

In diesem Blog erfahren Sie, wie Sie Ihren Live-Chat mithilfe der Stimmungsanalyse auf "positives" oder "negatives" Verhalten überwachen können. Für diese Anwendung gibt es eine Reihe von Anwendungsfällen, z. B. die Überwachung eines Support-Chats auf einen unangemessenen Kunden oder die Überwachung eines Live-Event-Chats, um zu sehen, ob Ihre Kunden die Veranstaltung, die sie sich ansehen, genießen. In jedem Fall kommen viele Anwendungen für den Einsatz von KI in Frage, insbesondere bei der Erstellung von Echtzeitsystemen.

Hier kommt PubNub ins Spiel. [PubNub](https://www.pubnub.com/) bietet eine hochverfügbare Echtzeit-Kommunikations [Plattform](https://www.pubnub.com/products/pubnub-platform/). Sie können damit bauen [Chat](https://www.pubnub.com/solutions/chat/), [IoT-Geräte-Steuerungssysteme](https://www.pubnub.com/solutions/iot-device-control/), [Geolocation-Apps](https://www.pubnub.com/solutions/geolocation/)und viele andere Kommunikationssysteme. Um mehr darüber zu erfahren, wozu PubNub fähig ist, besuchen Sie unsere [docs](https://www.pubnub.com/docs) oder [Preisgestaltung](https://www.pubnub.com/pricing/) Seite, um loszulegen.

Was sind PubNub-Integrationen?
------------------------------

Zunächst, für diejenigen, die nicht wissen, was [PubNub-Funktionen](https://www.pubnub.com/docs/serverless/functions/overview)PubNub-Funktionen ermöglichen es Ihnen, Ereignisse innerhalb Ihrer PubNub-Instanz zu erfassen. So können Sie Code schreiben, um bestehende Integrationen zu nutzen oder Ihre Daten umzuwandeln, umzuleiten, zu erweitern, zu filtern und sogar zu aggregieren. Was bedeutet das nun genau? Nehmen wir an, Sie senden eine Nachricht, ein Signal, eine Datei usw. (Daten) über PubNub. In diesem Fall können Sie entweder vor oder nach dem Empfang durch den Client Code schreiben, um die gesendeten Daten zu blockieren, zu verändern oder sogar an ein anderes System eines Drittanbieters weiterzuleiten.

[PubNub-Integrationen](https://www.pubnub.com/integrations/) ist eine Erweiterung von PubNub Functions, die es Ihnen ermöglicht, schnell eine PubNub Function einzurichten und sie mit einigen Drittanbieterdiensten wie AWS, Giphy, Google Cloud usw. zu integrieren. Es handelt sich im Wesentlichen um vorgefertigten Code, mit dem Sie Ihr Echtzeitsystem mit beliebigen Systemen von Drittanbietern in unserem Funktionskatalog verbinden können. Diesen Katalog finden Sie auf dem PubNub-Portal oder auf der Registerkarte "Home".

Klicken Sie auf "Discover & Integrate", um die vorgefertigten Funktionen von PubNub zu durchsuchen (siehe Abbildung unten).

![](https://www.pubnub.com/cdn/3prze68gbwl1/4MMaTasjLUbSmmJIAkfgEc/d181be4a7a3b4626341e7fcdafec6035/Screenshot_2024-04-03_at_9.32.46_PM.png)

Erste Schritte mit HuggingFace
------------------------------

Zu diesem Zeitpunkt hat wahrscheinlich jeder schon von OpenAI, GPT-4, Claude oder einem der populären Large Language Models (LLMs) gehört. Die Verwendung dieser LLMs in einer Produktionsumgebung kann jedoch teuer sein oder zu unbestimmten Ergebnissen führen. Ich denke, das ist der Nachteil, wenn man in allem gut ist; man könnte in einer bestimmten Aufgabe besser sein. Hier kommt HuggingFace zum Einsatz.[HuggingFace](https://huggingface.co/) bietet quelloffene KI- und maschinelle Lernmodelle, die einfach auf HuggingFace selbst oder auf Systemen von Drittanbietern wie [Amazon SageMaker](https://aws.amazon.com/sagemaker/) oder [Azure ML](https://azure.microsoft.com/)Sie können über eine API auf diese Bereitstellungen zugreifen und die Skalierung dieser Modelle steuern, was sie perfekt für Produktionsumgebungen geeignet macht. Diese Modelle variieren in ihrer Größe, sind aber in der Regel kleine KI-Modelle, die eine bestimmte Aufgabe gut erledigen können. Durch die Möglichkeit der Feinabstimmung dieser Modelle oder der Verwendung eines vorab trainierten Modells für bestimmte Aufgaben wird die Einbettung in verschiedene Anwendungen effizienter, was die Automatisierung und Leistung verbessert. Durch die Kombination dieser Modelle können neue und komplexe KI-Anwendungen geschaffen werden. In diesem Fall wäre man durch die Verwendung von HuggingFace-Modellen nicht auf eine Produktionsanwendung eines Drittanbieters wie [OpenAI](https://openai.com/) oder [Google](https://gemini.google.com/)Dies ermöglicht einen gezielteren und anpassungsfähigeren Ansatz für den Einsatz von Deep-Learning-Lösungen in Ihrem Unternehmen.

Im folgenden Screenshot sehen Sie, wie viele verschiedene KI-Modelle HuggingFace bietet.

![](https://www.pubnub.com/cdn/3prze68gbwl1/59ab7LYEGEFRK4ypXiEh1x/b2fa83f8e8de8af87ba990b98429af5d/Screenshot_2024-04-03_at_10.09.09_PM.png)

Was ist Sentiment-Analyse?
--------------------------

[Stimmungsanalyse](https://en.wikipedia.org/wiki/Sentiment_analysis) (auch als Opinion Mining oder Emotion AI bezeichnet) ist die Verwendung von natürlicher Sprachverarbeitung und Textanalyse, um festzustellen, ob die Emotion oder der Ton einer Nachricht positiv, negativ oder neutral ist. Heutzutage verfügen Unternehmen über riesige Mengen an textbasierten Daten wie E-Mails, Kundensupportnachrichten, Kommentare in sozialen Medien, Bewertungen usw. Mit der Stimmungsanalyse können diese Texte gescannt werden, um die Einstellung des Autors zu einem Thema zu ermitteln. Unternehmen können diese Daten dann nutzen, um den Kundenservice oder das Markenimage zu verbessern.

### Anwendungsfälle der Stimmungsanalyse

**Moderation**: Mithilfe der Stimmungsanalyse können Sie Ihre Live-Events, den Support oder den In-App-Chat überwachen, um festzustellen, ob sich Kunden daneben benehmen, und deren Nachrichten schnell sperren und löschen. Dies würde eine gesunde Umgebung auf Ihrer Plattform ermöglichen.

**Datenanalyse**: Unternehmen möchten manchmal Tausende von E-Mails oder Texten durchsuchen, um zu sehen, wie die Kunden auf die Veranstaltung oder die Unternehmensmarke reagieren. Anhand dieser Daten können sie herausfinden, was sie je nach Verhalten richtig oder falsch machen, und bessere Entscheidungen über das weitere Vorgehen treffen.

### Implementierung der Sentiment-Analyse in einer PubNub-Funktion

Mit Hilfe der HuggingFace PubNub Integration können wir die Sentiment-Analyse direkt in PubNub-Funktionen implementieren. Gehen Sie zunächst auf das PubNub-Portal und öffnen Sie den Funktionskatalog auf der Startseite. Im Funktionskatalog klicken Sie auf die "HuggingFace Serverless API".

![](https://www.pubnub.com/cdn/3prze68gbwl1/1V2CWr9MvssSvP5DJYrulk/b344b52bb22fff541e29d0692e6f48cf/Screenshot_2024-04-03_at_10.25.01_PM.png)

Nachdem Sie die PubNub-Integration ausgewählt haben, folgen Sie den Schritten, indem Sie das Keyset und die App auswählen, für die Sie Ihre PubNub-Funktion konfigurieren möchten. Nachdem Sie zum Schritt "Variablen" gelangt sind, müssen Sie Ihren API-Schlüssel von HuggingFace abrufen. Gehen Sie zu Ihren Profileinstellungen in Huggingface und wählen Sie [Zugangs-Token](https://huggingface.co/settings/tokens)aus, da wir diese zu den PubNub-Funktionsgeheimnissen hinzufügen müssen. Dann klicken Sie auf "Erstellen", und wir werden Ihre PubNub-Instanz offiziell in HuggingFace integrieren. Sie sollten nun eine PubNub-Funktion mit dem folgenden Codebeispiel sehen.

```js
//
// **                                             **
// ** Add your API Key to MY SECRETS (Left Panel) **
// **                                             **
// **             HUGGINGFACE_API_KEY             **
// **                                             **
//
const FunctionConfig = {
    "HUGGINGFACE_API_KEY": "HuggingFace"
};
//
// Import Modules
//
const http = require('xhr');
const vault = require('vault');
//
// Main
//
export default async (request) => {
    let message = request.message.text;
    console.log('Sentiment:');
    let model = 'distilbert-base-uncased-finetuned-sst-2-english';
    let response = await query(message, model);
    console.log(response);
    console.log('GPT2:');
    model = 'gpt2';
    response = await query(message, model);
    console.log(response);
    console.log('Google\'s Gemma:');
    model = 'google/gemma-7b-it';
    response = await query(`<start_of_turn>user\n${message}\n<start_of_turn>model`, model);
    console.log(response);
    console.log('Capture:');
    model = 'dbmdz/bert-large-cased-finetuned-conll03-english';
    response = await query(message, model);
    console.log(response);
    return request.ok()
};
//
// HuggingFace API Call
//
async function query(text, model='distilbert-base-uncased-finetuned-sst-2-english') {
    const apikey = await vault.get(FunctionConfig.HUGGINGFACE_API_KEY);
    const response = await http.fetch( `https://api-inference.huggingface.co/models/${model}`, {
        headers: { Authorization: `Bearer ${apikey}`, 'Content-Type': 'application/json' },
        method: "POST",
        body: JSON.stringify({inputs:text}),
    });
    return await response.json();
}
```

Wir werden uns auf das erste Modell konzentrieren, das in dieser PubNub-Funktion verwendet wird, nämlich "distilbert-base-uncased-finetuned-sst-2-english". Um mehr über diese Funktion zu erfahren, navigieren Sie zu [distilbert-base-uncased-finetuned-sst-2-english](https://huggingface.co/distilbert/distilbert-base-uncased-finetuned-sst-2-english) oder das Modell, auf dem sie basiert, nämlich [distilbert/distilbert-base-uncased](https://huggingface.co/distilbert/distilbert-base-uncased). Sie können sich das Modell auch auf [github](https://github.com/aws-neuron/aws-neuron-sdk/blob/master/src/benchmark/pytorch/distilbert-base-uncased-finetuned-sst-2-english_compile.py). Dieses Modell wird die ganze Arbeit für uns erledigen und die Stimmungsanalyse einer PubNub-Nachricht bestimmen, wenn sie durch das Netzwerk gesendet wird.

Ich habe meine aktuelle Funktion so umgestaltet, dass sie wie folgt aussieht:

```js
//
// **                                             **
// ** Add your API Key to MY SECRETS (Left Panel) **
// **                                             **
// **             HUGGINGFACE_API_KEY             **
// **                                             **
//
const FunctionConfig = {
    "HUGGINGFACE_API_KEY": "HuggingFace"
};
//
// Import Modules
//
const http = require('xhr');
const vault = require('vault');
//
// Main
//
export default async (request) => {
    let message = request.message.text;
    console.log('Sentiment:');
    let model = 'distilbert-base-uncased-finetuned-sst-2-english';
    let response = await query(message, model);
    // Get the negative score
    if(response[0][0].label == "NEGATIVE"){
        request.message.score = response[0][0].score;
    }
    else{
        request.message.score = response[0][1].score;
    }
    console.log(request.message.score);
    return request.ok()
};
//
// HuggingFace API Call
//
async function query(text, model='distilbert-base-uncased-finetuned-sst-2-english') {
    const apikey = await vault.get(FunctionConfig.HUGGINGFACE_API_KEY);
    const response = await http.fetch( `https://api-inference.huggingface.co/models/${model}`, {
        headers: { Authorization: `Bearer ${apikey}`, 'Content-Type': 'application/json' },
        method: "POST",
        body: JSON.stringify({inputs:text}),
    });
    return await response.json();
}
```

Dieser Code ruft nun das Sentiment Analysis HuggingFace Modell auf und fügt es der Nachricht unter `score` zu. Beim Testen stellte sich heraus, dass ich eine Nachricht wie die folgende hochlade:

```js
{
    "text": "That was not cool"
}
```

Wir erhalten eine negative Bewertung von `0,9997703433036804,` was eine hohe negative Bewertung ist, und diese Nachricht kann gekennzeichnet werden. Es ist wichtig zu beachten, dass der Bereich dieses Modells zwischen `0 und 1` liegt, wobei 0 eine sehr niedrige Punktzahl und 1 die höchste ist. Wenn wir andererseits eine Nachricht senden wie:

```js
{
    "text": "Thats so Cool!"
}
```

Wir werden eine negative Bewertung von `0.00014850986190140247` erhalten `,` was eine sehr niedrige negative Bewertung ist, was bedeutet, dass die Nachricht einen positiven Ton hat.

Erste Schritte mit PubNub
-------------------------

Mit nur wenigen Schritten haben wir die Sentiment-Analyse in das PubNub-Netzwerk implementiert, indem wir PubNub-Integrationen nutzen. Wenn Sie wissen möchten, was Sie mit KI und PubNub noch alles machen können, lesen Sie unsere anderen Blogs, z.B:

[Einen Chatbot mit PubNub und ChatGPT / OpenAI erstellen](https://www.pubnub.com/blog/build-a-chatbot-with-pubnub-and-chatgpt-openai/): Wir führen Sie durch die Einrichtung Ihres eigenen Chatbots mit einer OpenAI-Integration und PubNub.

[Erstellen Sie einen LLM Chatbot mit einer benutzerdefinierten Wissensdatenbank](https://www.pubnub.com/blog/build-chatbot-with-custom-knowledge-base/): Hier erfahren Sie, wie Sie Ihren eigenen LLM-Chatbot mit einer benutzerdefinierten Wissensdatenbank unter Verwendung von PubNub-Funktionen erstellen können. Das heißt, Sie können Fragen zu Ihren eigenen Unternehmensdaten beantworten.

[Eine Anleitung für Entwickler zu Prompt Engineering und LLMs](https://www.pubnub.com/blog/developers-guide-to-prompt-engineering/): Ein Leitfaden für Prompt Engineering und wie Sie die gewünschten Antworten von diesen Large Language Models erhalten.

[Geolocation Tutorial integriert mit ChatGPT](https://www.pubnub.com/tutorials/geolocation-tracker/): In diesem Tutorial erfahren Sie, wie Sie eine Geolocation-Tracking-App erstellen, die es Benutzern ermöglicht, Standorte zu teilen und Nachrichten in Echtzeit zu senden, und die in ChatGPT integriert ist, um Informationen über Ihren Standort zu liefern.

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

Dieser Artikel wurde ursprünglich auf [PubNub.com](https://www.pubnub.com/blog/sentiment-analysis-with-pubnub-functions-and-huggingface/) 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)