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és 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.
1. Prérequis
Vous aurez besoin, avant de commencer, des éléments suivants :
- un accès à Google Sheets
- l'autorisation d'utiliser Apps Script (il faut être propriétaire de la feuille)
- un compte OpenAI Platform (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. Création d'une clé API OpenAI
Avant toute chose, il faut récupérer une clé API sur la page platform.openai.com/api-keys. Cliquez sur la section éponyme et créez une nouvelle clé. Dans notre cas, il n'est pas besoin d'en 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.
4. Définition du script d'appel Google Sheets
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. Dans ce script, il est possible de configurer à travers un prompt la fonction à réaliser et le format du résultat attendu.
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
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));
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 envoie une requête au format JSON à ChatGPT et renvoie le résultat. Le code comporte plusieurs paramètres qui peuvent être modifiés :
- La clé d'API : elle est indispensable pour l'authentification. Vous pouvez la stocker dans un autre fichier Apps Script si vous préférez. Pensez à bien remplacer la valeur de la clé utilisée dans le script, sinon il échouera.
- 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 : il varie entre 0 et 1 et permet de configurer le type de réponse attendu. Une valeur proche de 0 sera plus déterministe, une valeur proche de 1 plus créative.
- Les valeurs donneesColonne et texteColonne : il s'agit des colonnes utilisées pour nos valeurs de référence. Pensez à les remplacer par celles qui correspondent à votre cas. Pour trois colonnes qui vont jusqu'à la ligne 123, ce sera getRange("A1:C123").
5. Enregistrement du script dans Google Sheets
Une fois le script configuré, il faut l'enregistrer dans Google Sheets. Pour cela, allez dans Extensions > Apps Script.
Note : il faut pour cela être 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 Apps Script ouvert, copiez la fonction de la section précédente, enregistrez-la et revenez à l'onglet de votre feuille Google Sheets.
6. Utilisation de la nouvelle fonction dans Google Sheets
On appelle le script comme n'importe quelle autre formule Google Sheets. Le résultat est formaté en JSON, comme demandé. Il suffit ensuite d'extraire les données qui nous intéressent, avec REGEXEXTRACT par exemple.
7. Quelques mots sur les résultats
Sur notre exemple, on obtient 40 correspondances trouvées 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 l'optimiser 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. Cela coûte de l'argent, et les résultats peuvent changer d'une fois à l'autre.
À retenir
- Un script Apps Script permet d’appeler ChatGPT directement depuis une formule Google Sheets.
- Cas testé : rattacher automatiquement des lignes de relevé bancaire à des comptes de référence.
- Résultat : 73 % de propositions, dont 85 % justes, soit 62 % d’automatisation globale.
- La clé API OpenAI doit être conservée de façon sécurisée pour éviter un usage frauduleux.
- Limite : Google Sheets recalcule à des moments imprévisibles, d’où des coûts et des résultats variables.



