Analyse des sentiments avec les fonctions PubNub et HuggingFace
Published: 2024-04-04 19:09:01

L'IA étant en constante progression en termes d'utilisation au sein de votre application ou de votre entreprise, il est essentiel de couvrir la manière dont elle peut être utilisée lors de la création de systèmes en temps réel. De nombreux cas d'utilisation entrent dans cette catégorie, qu'il s'agisse d'un [chat in-app](https://www.pubnub.com/solutions/chat/), [IoT](https://www.pubnub.com/solutions/iot-device-control/)ou [événements en direct](https://www.pubnub.com/solutions/live-audience-engagement/) Il y a presque toujours un moyen d'appliquer l'IA à votre solution pour la rendre encore meilleure.

Ce blog vous apprendra comment surveiller votre chat en direct pour les comportements "positifs" ou "négatifs" en utilisant l'analyse des sentiments. Cette application a plusieurs cas d'utilisation, comme la surveillance d'un chat d'assistance pour un client inapproprié ou, d'un autre côté, la surveillance d'un chat d'événements en direct pour voir si vos clients apprécient l'événement qu'ils sont en train de regarder. Quoi qu'il en soit, de nombreuses applications peuvent être considérées comme utilisant l'IA, en particulier lorsqu'il s'agit de créer des systèmes en temps réel.

C'est là que PubNub entre en jeu. [PubNub](https://www.pubnub.com/) fournit une plate-forme de communication en temps réel hautement disponible [de communication en temps réel hautement disponible](https://www.pubnub.com/products/pubnub-platform/). Vous pouvez l'utiliser pour construire des [chat](https://www.pubnub.com/solutions/chat/), [systèmes de contrôle des appareils IoT](https://www.pubnub.com/solutions/iot-device-control/), [applications de géolocalisation](https://www.pubnub.com/solutions/geolocation/)et bien d'autres systèmes de communication. Pour en savoir plus sur ce que PubNub est capable de faire, visitez nos [docs](https://www.pubnub.com/docs) ou [prix](https://www.pubnub.com/pricing/) pour commencer.

Que sont les intégrations PubNub ?
----------------------------------

Tout d'abord, pour ceux qui ne connaissent pas les [Fonctions PubNub](https://www.pubnub.com/docs/serverless/functions/overview)Les fonctions PubNub vous permettent de capturer les événements qui se produisent dans votre instance PubNub. Cela vous permet d'écrire du code pour exploiter les intégrations existantes ou transformer, réacheminer, augmenter, filtrer et même agréger vos données. Qu'est-ce que cela signifie exactement ? En gros, supposons que vous envoyiez un message, un signal, un fichier, etc. (données) à travers PubNub. Dans ce cas, vous pouvez écrire du code avant qu'il ne soit reçu par le client ou après pour bloquer les données envoyées, les modifier ou même les acheminer vers un autre système tiers.

[PubNub Integrations](https://www.pubnub.com/integrations/) est une extension de PubNub Functions qui vous permet de configurer rapidement une fonction PubNub et de l'intégrer à des services tiers tels que AWS, Giphy, Google Cloud, etc. Il s'agit essentiellement de code pré-écrit pour connecter votre système en temps réel à tout système tiers dans notre catalogue de fonctions. Ce catalogue se trouve sur le portail PubNub ou dans l'onglet "Home".

Référez-vous à l'image ci-dessous et cliquez sur "Discover & Integrate" pour parcourir les fonctions préfabriquées de PubNub.

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

Démarrer avec HuggingFace
-------------------------

À ce stade, tout le monde a probablement entendu parler d'OpenAI, de GPT-4, de Claude ou de n'importe lequel des grands modèles de langage (LLM) populaires. Cependant, l'utilisation de ces LLM dans un environnement de production peut être coûteuse ou non déterministe en ce qui concerne les résultats. Je suppose que c'est l'inconvénient d'être bon dans tous les domaines ; vous pourriez être meilleur dans l'exécution d'une tâche spécifique. C'est là que HuggingFace peut être utilisé.[HuggingFace](https://huggingface.co/) fournit des modèles d'IA et d'apprentissage automatique open-source qui peuvent être facilement déployés sur HuggingFace lui-même ou sur des systèmes tiers tels que [Amazon SageMaker](https://aws.amazon.com/sagemaker/) ou [Azure ML](https://azure.microsoft.com/)Vous pouvez vous interfacer avec ces déploiements par le biais d'une API et contrôler la mise à l'échelle de ces modèles, ce qui les rend parfaitement adaptés aux environnements de production. Ces modèles sont de taille variable, mais il s'agit généralement de petits modèles d'IA capables d'effectuer une tâche spécifique. Grâce à la possibilité d'affiner ces modèles ou d'utiliser un modèle pré-entraîné pour des tâches spécifiques, l'intégration de ces modèles dans diverses applications devient plus efficace, ce qui améliore l'automatisation et les performances. La combinaison de ces modèles permet de créer des applications d'IA nouvelles et complexes. Dans ce cas, en utilisant les modèles HuggingFace, vous n'auriez pas à dépendre d'une application de production d'un fournisseur tiers tel que [OpenAI](https://openai.com/) ou [Google](https://gemini.google.com/)Ce qui garantit une approche plus ciblée et personnalisable du déploiement de solutions d'apprentissage profond dans vos opérations.

Reportez-vous à la capture d'écran ci-dessous pour voir combien de modèles d'IA différents HuggingFace fournit.

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

Qu'est-ce que l'analyse des sentiments ?
----------------------------------------

[L'analyse des sentiments](https://en.wikipedia.org/wiki/Sentiment_analysis) (également appelée opinion mining ou emotion AI) est l'utilisation du traitement du langage naturel et de l'analyse de texte pour déterminer si l'émotion ou le ton du message est positif, négatif ou neutre. Aujourd'hui, les entreprises disposent d'énormes volumes de données textuelles, telles que des courriels, des messages d'assistance à la clientèle, des commentaires sur les médias sociaux, des critiques, etc. L'analyse des sentiments peut analyser ces textes pour déterminer l'attitude de l'auteur à l'égard d'un sujet. Les entreprises peuvent ensuite utiliser ces données pour améliorer le service à la clientèle ou la réputation de la marque.

### Cas d'utilisation de l'analyse des sentiments

**Modération**: Vous pouvez utiliser l'analyse des sentiments pour surveiller vos événements en direct, votre assistance ou votre chat In-App afin de voir si des clients se comportent mal et de bannir et supprimer rapidement leurs messages. Cela permettrait de créer un environnement sain sur votre plateforme.

**Analyse des données**: Les entreprises souhaitent parfois analyser des milliers d'e-mails ou de textes pour voir comment les clients réagissent à l'événement ou à la marque de l'entreprise. Elles peuvent utiliser ces données pour cibler ce qu'elles font de bien ou de mal en fonction de leurs actions et prendre de meilleures décisions sur ce qu'il convient de faire ensuite.

### Implémentation de l'analyse de sentiments dans une fonction PubNub

En utilisant l'intégration HuggingFace PubNub, nous allons implémenter l'analyse de sentiment directement dans les fonctions PubNub. Tout d'abord, rendez-vous sur le portail PubNub et ouvrez le catalogue de fonctions sur la page d'accueil. Une fois dans le catalogue de fonctions, cliquez sur "HuggingFace Serverless API".

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

Après avoir sélectionné l'intégration PubNub, suivez les étapes en choisissant le jeu de clés et l'application pour lesquels vous souhaitez configurer votre fonction PubNub. Après avoir atteint l'étape des variables, nous aurons besoin d'obtenir votre clé API de HuggingFace. Allez dans les paramètres de votre profil dans Huggingface et sélectionnez [Jetons d'accès](https://huggingface.co/settings/tokens)car nous aurons besoin de l'ajouter aux secrets de vos fonctions PubNub. Cliquez ensuite sur create, et nous intégrerons officiellement votre instance PubNub à HuggingFace. Vous devriez maintenant voir une fonction PubNub avec l'exemple de code suivant.

```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();
}
```

Nous allons nous concentrer sur le premier modèle utilisé dans cette fonction PubNub, qui est "distilbert-base-uncased-finetuned-sst-2-english". Pour en savoir plus sur cette fonction, naviguez vers [distilbert-base-uncased-finetuned-sst-2-english](https://huggingface.co/distilbert/distilbert-base-uncased-finetuned-sst-2-english) ou le modèle sur lequel elle est basée, à savoir [distilbert/distilbert-base-uncased](https://huggingface.co/distilbert/distilbert-base-uncased). Vous pouvez également consulter le modèle sur [github](https://github.com/aws-neuron/aws-neuron-sdk/blob/master/src/benchmark/pytorch/distilbert-base-uncased-finetuned-sst-2-english_compile.py). Ce modèle fera tout le travail pour nous et déterminera l'analyse du sentiment d'un message PubNub lorsqu'il est envoyé à travers le réseau.

J'ai remanié ma fonction actuelle pour qu'elle ressemble à ceci :

```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();
}
```

Ce code appelle maintenant le modèle Sentiment Analysis HuggingFace et l'attache à la charge utile du message en cours de `notation`. Lors des tests, si je télécharge un message tel que :

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

Nous obtiendrons un score négatif de `0.9997703433036804,` ce qui est un score négatif élevé, et ce message peut être signalé. Il est important de noter que le résultat de ce modèle est compris entre 0 `et 1`, 0 étant un score très faible et 1 le score le plus élevé. En revanche, si nous envoyons un message du type : "Nous obtiendrons un score négatif de 0,", ce message peut être signalé :

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

Nous recevrons un score négatif de `0.00014850986190140247,` ce qui est un score négatif très bas, ce qui signifie que le message a une tonalité positive.

Démarrer avec PubNub
--------------------

En quelques étapes seulement, nous avons implémenté l'analyse des sentiments dans le réseau PubNub en utilisant les intégrations PubNub. Si vous souhaitez en savoir plus sur les possibilités offertes par l'IA et PubNub, consultez nos autres blogs, tels que :

[Construire un Chatbot avec PubNub et ChatGPT / OpenAI](https://www.pubnub.com/blog/build-a-chatbot-with-pubnub-and-chatgpt-openai/): Nous vous guiderons dans la mise en place de votre propre Chatbot en utilisant une intégration OpenAI et PubNub.

[Construire un Chatbot LLM avec une base de connaissance personnalisée](https://www.pubnub.com/blog/build-chatbot-with-custom-knowledge-base/): Ici, nous allons voir comment construire votre propre Chatbot LLM avec une base de connaissance personnalisée en utilisant les fonctions PubNub. Cela signifie que vous pouvez répondre à des questions sur les données de votre propre entreprise.

[Un guide pour les développeurs de Prompt Engineering et LLMs](https://www.pubnub.com/blog/developers-guide-to-prompt-engineering/): Suivez un guide sur l'ingénierie des messages et sur la manière d'obtenir les réponses que vous souhaitez à partir de ces grands modèles de langage.

[Tutoriel de géolocalisation intégré à ChatGPT](https://www.pubnub.com/tutorials/geolocation-tracker/): Dans ce tutoriel, vous découvrirez comment construire une application de suivi de géolocalisation qui permet aux utilisateurs de partager des emplacements et d'envoyer des messages en temps réel, ainsi que d'intégrer ChatGPT pour fournir des informations sur votre emplacement.

Comment PubNub peut-il vous aider ?
===================================

Cet article a été publié à l'origine sur [PubNub.com](https://www.pubnub.com/blog/sentiment-analysis-with-pubnub-functions-and-huggingface/)

Notre plateforme aide les développeurs à construire, fournir et gérer l'interactivité en temps réel pour les applications web, les applications mobiles et les appareils IoT.

La base de notre plateforme est le réseau de messagerie en temps réel le plus grand et le plus évolutif de l'industrie. Avec plus de 15 points de présence dans le monde, 800 millions d'utilisateurs actifs mensuels et une fiabilité de 99,999 %, vous n'aurez jamais à vous soucier des pannes, des limites de concurrence ou des problèmes de latence causés par les pics de trafic.

Découvrez PubNub
----------------

Découvrez le [Live Tour](https://www.pubnub.com/tour/introduction/) pour comprendre les concepts essentiels de chaque application alimentée par PubNub en moins de 5 minutes.

S'installer
-----------

Créez un [compte PubNub](https://admin.pubnub.com/signup/) pour un accès immédiat et gratuit aux clés PubNub.

Commencer
---------

La [documentation PubNub](https://www.pubnub.com/docs) vous permettra de démarrer, quel que soit votre cas d'utilisation ou votre [SDK](https://www.pubnub.com/docs).