Intégrez google sheet et chatgpt en 10 minutes

On vous montre dans cet article comment Chatgpt peut enrichir facilement nos outils du quotidien (ici Google Sheets) et nous faire gagner en productivité.

Dans notre exemple, on cherche à classifier des extraits de compte bancaire à l’aide de l’IA d’OpenAI (ChatGPT). On dispose d’un fichier issu d’un relevé bancaire avec pour chaque ligne le libellé de la transaction financière. On a par ailleurs un fichier historique des paiements que l’on a déjà classifié manuellement, avec 2 attributs – un compte et une catégorie -.

Le but est d’utiliser ChatGPT pour déterminer automatiquement à quel compte on peut rattacher une ligne bancaire.

 
 
 
 
 
 
google sheet chatgpt boost

1. Prérequis

Vous aurez besoin avant de commencer des éléments suivants : 

  • un accès à Google Sheets
  • l’autorisation d’utiliser Apps Scripts (il faut être propriétaire de la feuille)
  • un compte OpenAI platform (https://platform.openai.com/)
 
 
 
 

2. principe de fonctionnement

On dispose d’un relevé bancaire et  on souhaite que ChatGPT associe chaque ligne à la référence la plus pertinente parmi une liste de valeurs possibles. On n’utilise pas ici les rapprochements manuels réalisés par le passé (ce sera l’objet d’un prochain billet).

Exemples d’association : 

  • Carte X1234 01/01 Resto → Resto
  • Frais 1234 Banque; fin de mois → Banque
  • VIR EUROPEEN EMIS ;REF: 123456;REMISE: Salaire janvier 2024;VIR987654 → Salaire
 
 
 

3. creation d'une clef api openai

Avant toute chose, il faut récupérer une clef API sur la page https://platform.openai.com/api-keys. Cliquez sur la section éponyme et créez une nouvelle clé. Dans notre cas, il n’est pas besoin de de configurer les détails.

ATTENTION Conservez la clé générée de façon sécurisée car si une personne malintentionnée parvient à s’en emparer, elle pourrait utiliser ChatGPT à votre place et générer un surcoût.

 
 
 
 
 
chatgpt platform

4. definition du script d'appel de google sheet

Un script d’appel – écrit dans le langage Google Apps Script – est nécessaire pour appeler ChatGPT directement depuis Google Sheets et lui fournir en entrée des données issues d’autres cellules des feuilles Google Sheet. Dans ce script il est possible de configurer à travers un prompt la fonction à réaliser et le format du résultat attendu par ChatGPT. 

Il n’est pas nécessaire d’avoir une grande connaissance du développement pour utiliser le script et nous vous fournissons un exemple simple à configurer.

function fetchData(systemContent) {
try {
const headers = {
« Content-Type »: « application/json »,
« Authorization »: `Bearer ${CHAT_GPT_API_KEY}`
};

var feuille = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(« CompteCategorie »);
var donneesColonne = feuille.getRange(« A1:A250 »).getValues(); // Lire les x premières cellules de la colonne C
var texteColonne = donneesColonne.map(function(row) { return row[0]; }).join(« ; « );

const options = {
headers,
method: « GET »,
muteHttpExceptions: true,
payload: JSON.stringify({
« model »: « gpt-4 »,
« messages »: [{
« role »: « system »,
« content »: « Voici une valeur :  » + systemContent + « . Trouve le compte correspondant parmi les comptes de référence et renvoie isreference à 1. Si tu ne trouves pas de correspondance, crée un nouveau compte et mets un isreference à 0. Renvoie un json avec les clefs compte et isreference. Voici les comptes de référence :  » + texteColonne,
},
{
« role »: « user »,
« content »: « user »
},
],
« temperature »: 0.3
})
};

const response = JSON.parse(UrlFetchApp.fetch(BASE_URL, options));
//console.log(response);
//console.log(response.choices[0].message.content)
return response.choices[0].message.content;
} catch (e) {
console.log(e)
SpreadsheetApp.getActiveSpreadsheet().toast(« Some Error Occured Please check your formula or try again later. »);
return « Some Error Occured Please check your formula or try again later. »;
}
}

 
 
 
 
 
 
 
 
 
 
 
 
 

Dans le détail, la fonction va envoyer une requête au format JSON à ChatGPT et renvoyer le résultat. Le code comporte plusieurs paramètres qui peuvent être modifiés :

  • La clé d’API dans le paramétrage. Elle est indispensable pour l’authentification. Vous pouvez la stocker dans un autre fichier de Apps Script si vous préférez. Pensez à bien remplacer la valeur de la clé utilisée dans le script qui va sinon échouer.
  • Le modèle de ChatGPT : gpt-3.5-turbo est celui par défaut, mais d’autres sont possibles, comme gpt-4.
  • Le paramètre température dans le script varie entre 0 et 1 et permet de configurer le type de réponse attendu : une valeur plus proche de 0 sera plus déterministe, une valeur plus proche de 1 sera plus créative.
  • Les valeurs donneesColonne et texteColonne : il s’agit des colonnes utilisées pour nos valeurs de référence. Pensez à bien remplacer par les valeurs qui correspondent à votre cas. Pour trois colonnes qui vont jusqu’à la ligne 123, ce sera getRange(« A1:C123 »).
 

5. enregistrement du script dans google sheet

Une fois le script configuré, il faut l’enregistrer dans Google Sheets. Pour cela, allez dans Extensions > Apps Script.

Note : il faut pour que cela soit possible, être le propriétaire de la feuille ou avoir l’autorisation de l’administrateur. Quelle que soit la version du script utilisée, la façon de le saisir est la même.

 

Une fois l’onglet AppScripts ouvert, copiez la fonction de la section précédente, enregistrez la et revenez à  l’onglet précédent de votre feuille Google Sheet.

 

6. UTILISATION DE LA NOUVELLE FONCTION DANS GOOGLE SHEETS

Pour appeler le script on vient appeler la fonction comme n’importe quelle autre formule Google Sheet. On voit sur cette capture que nous avons un résultat et que celui-ci est formaté en JSON comme demandé . Il suffit d’extraire ensuite les données de résultat qui nous intéressent avec REGEXEXTRACT par exemple.

7. quelques mots sur les resultats

Sur notre exemple, on obtient 40 matching trouvés sur 55 références soit 73 % de propositions. Sur les 40 résultats proposés,  6 sont faux soit 85% de bonnes propositions. 

Un très bon résultat avec 62% d’automatisation globale, d’autant qu’on peut optimiser ce résultat en utilisant les données historiques en notre possession.  Ce sera l’objet d’un prochain post. 

LIMITE IMPORTANTE : Google Sheets actualise les données à des fréquences perçues comme aléatoires → 1-cela coûte de l’argent et 2- les résultats peuvent changer d’une fois à l’autre.

 
 
 
 
 
 
No Comments

Sorry, the comment form is closed at this time.

en_USEnglish