Classification des e-mails alimentés par LLM sur Databricks

 Classification des e-mails alimentés par LLM sur Databricks

Auteur (s): Gabriele Albini

Publié à l’origine sur Vers l’IA.

Classification des e-mails alimentés par LLM sur Databricks

Introduction

Depuis l’introduction de Fonctions AI Sur Databricks, LLMS (Modèles de grande langue) peut être facilement intégré dans n’importe quel flux de travail de données: analystes et utilisateurs professionnels qui ne connaissent peut-être pas Python ou Ml/ L’infrastructure AI peut effectuer des tâches AI avancées directement à partir des requêtes SQL.

Je recommande de regarder ce super vidéo Présentation pour une introduction à cette fonctionnalité brillante.

Cet article discutera de la façon de mettre en œuvre une classification des e-mails: supposons que les clients écrivent dans la boîte aux lettres de notre entreprise pour demander la désinscription des e-mails marketing ou commerciaux. Sans aucun historique ensembles de donnéesnous voulons automatiser la vérification de la boîte aux lettres et la classification de l’intention du client en fonction du corps de l’e-mail.

  • Lien au référentiel Git Hub

Table des matières:

Partie 1: fonctions AI

Utilisons AI_Query ()une partie des fonctions DATABRICKS AI, pour classer les e-mails.

Supposons que nous ayons disponible les champs suivants:

Ensemble de données de test

Afin d’utiliser AI_Query () sur notre colonne «Email_Body», nous partisons des arguments suivants:

  • point final: le nom du point de terminaison du modèle que nous avons l’intention d’utiliser (llama3.3 dans cet exemple) (vérifier ici Comment créer votre modèle servant un point de terminaison sur Databricks, en choisissant l’un des modèles de fondation pris en charge).
  • demande: l’invite, qui comprend le «e-mail_body»
  • PARAMETRES MODELLES: Paramètres supplémentaires que nous pouvons transmettre au LLM. Dans cet exemple, nous limiterons le jeton de sortie à 1 et choisirons une température très basse pour limiter le caractère aléatoire et la créativité de la sortie générée du modèle.

Le modèle d’invite utilisé dans cet exemple est basé sur la recherche de Si et al. (2024)qui a conçu et testé un modèle invite à quelques coups Pour la détection des spams par e-mail, qui a été adapté comme suit:

prompt_ = """

Forget all your previous instructions, pretend you are an e-mail
classification expert who tries to identify whether an e-mail is requesting
to be removed from a marketing distribution list.
Answer "Remove" if the mail is requesting to be removed, "Keep" if not.
Do not add any other detail.
If you think it is too difficult to judge, you can exclude the impossible
one and choose the other, just answer "Remove" or "Keep".

Here are a few examples for you:
* "I wish to no longer receive emails" is "Remove";
* "Remove me from any kind of subscriptions" is "Remove";
* "I want to update my delivery address" is "Keep";
* "When is my product warranty expiring?" is "Keep";

Now, identify whether the e-mail is "Remove" or "Keep";
e-mail:

"""

Nous pouvons enfin combiner tous les éléments vus ci-dessus dans une seule requête SQL, en cours d’exécution inférence par lots sur tous les e-mails et générer les étiquettes:

select *,
ai_query(
'databricks-meta-llama-3-3-70b-instruct',
"${prompt}" || Email_body,
modelParameters => named_struct('max_tokens', 1, 'temperature', 0.1)
) as Predicted_Label
from customer_emails;
Test de données avec des étiquettes générées

Partie 2: Accès aux API Gmail

Nous aurons besoin d’un moyen d’ingérer automatiquement les e-mails pour implémenter ce cas d’utilisation. Voici un guide étape par étape sur la façon d’utiliser les API Gmail.

1.1: Configurez votre compte Gmail pour travailler avec les API

L’approche recommandée pour activer Google API sur votre compte est d’utiliser Comptes de service. Le processus est décrit ici; Cependant, cela nécessite:

  • Un compte d’entreprise (ne se terminant pas par gmail.com).
  • L’accès en tant que super administrateur du domaine Google Workspace pour déléguer l’autorité à l’échelle du domaine au compte de service.

Pour cette démo, nous utilisons un compte Gmail factice; Par conséquent, nous suivrons une approche plus manuelle pour s’authentifier à Gmail, décrit ici.

Les premières étapes sont les mêmes pour les deux approches, vous pouvez donc suivre, mais pour automatiser pleinement l’accès à Gmail via l’API, vous auriez besoin d’un compte de service.

Tout d’abord, nous devons créer un projet:

  • Connectez-vous au Console Google.
  • Créez un nouveau projet pour ce cas d’utilisation.
  • Activez l’API Gmail pour votre projet en utilisant ce lien.
Activer les API sur votre projet

Deuxièmement, configurez un Écran de consentement OAuth:

  • Dans votre projet, accédez à «API & Services»> «Écran de consentement OAuth».
  • Accédez à la section «Branding» et cliquez sur Démarrer pour créer votre identité d’application.
  • Ensuite, nous devons créer une application Web OAuth 2.0 Client ID, en utilisant ceci lien.
  • Téléchargez le fichier des informations d’identification comme JSON, car nous en aurons besoin plus tard.
  • Ajouter l’uri de redirection autorisé suivant:
Création d’un écran de consentement OAuth

Enfin, autorisez les utilisateurs à authentifier et à publier l’application:

  • Dans votre projet, accédez à «API & Services»> «Écran de consentement OAuth».
  • Accédez à la section «Audience» et ajoutez tous les utilisateurs de test travaillant sur le projet afin qu’ils puissent s’authentifier.
  • Pour vous assurer que l’accès n’expire pas, publiez l’application en déplaçant son statut vers la production.

1.2 Accédez à la boîte aux lettres Gmail depuis les ordinateurs portables de Databricks

Pour s’authentifier à Gmail à partir d’un ordinateur portable de Databricks, nous pouvons utiliser la fonction suivante implémentée dans le référentiel. La fonction nécessite:

  • Pour un premier accès, le fichier JSON des informations d’identification, qui peut être enregistré dans un volume.
  • Pour l’accès futur, les informations d’identification actifs seront stockées dans un fichier de jeton qui sera réutilisé.
gmail_authenticate_manual()

Étant donné que nous n’utilisons pas de comptes de service, Google Cloud Authentication nécessite d’ouvrir le navigateur à une page OAuth et de générer un code temporaire.

Cependant, nous aurons besoin d’une solution de contournement pour effectuer cela sur Databricks, car les clusters n’ont pas accès à un navigateur.

Dans le cadre de cette solution de contournement, nous avons implémenté la fonction suivante qui suggère à l’utilisateur d’ouvrir une URL d’un navigateur local, de procéder à l’authentification, puis d’atterrir sur une page d’erreur.

Nous pouvons récupérer le code nécessaire pour s’authentifier à l’API de Google à partir de l’URL générée de cette page d’erreur:

Note: Avec les comptes de service, cette étape manuelle ne sera pas requise.

Une fois que nous avons authentifié, nous pouvons lire les e-mails de Gmail à l’aide de la fonction suivante, enregistrer les informations par e-mail dans une étincelle Dataframeet finalement à une table delta:

# Build Gmail API service and download emails
service_ = build('gmail', 'v1', credentials = access_)
emails = get_email_messages_since(service_, since_day=25, since_month=3, since_year = 2025)

if emails:
spark_emails = spark.createDataFrame(emails)
display(spark_emails)
else:
spark_emails = None
print("No emails found.")

Téléchargement des e-mails à partir de Gmail

Conclusions

En résumé, ce post:

  • A démontré à quel point il est simple de mettre en place des fonctions d’IA et de tirer parti des LLM pour automatiser les workflows à travers votre organisation.
  • Nous avons partagé un modèle d’invite pratique, conçu pour une classification des e-mails efficace en utilisant un apprentissage à quelques coups.
  • Nous avons parcouru l’intégration des API Gmail directement dans les ordinateurs portables de Databricks.

Prêt à rationaliser vos propres processus?

Photo de Johannes Plenio sur Désactiver

Merci d’avoir lu!

Sources

Publié via Vers l’IA



Source link

Related post