Hello la commu’ ,
Je pense que ce post mérite son propre sujet.
Y’a peut-être d’autres méthodes plus simple, mais dans le doute car je n’ai pas vu, je pense que ça pourrait en intéresser certain :
Je suis en train de faire un Apps Script qui appelle directement GPT 4o (en script ou formule) pour appliquer des traitements.
(Je pense notamment aussi au cas de @Tpercher dans ce sujet)
Voici un exemple de traitement effectué (composé via différents scripts + Open AI) :
Et y a aussi la possibilité de faire une formule directement pour se référer à des cellules et obtenir une réponse dans une cellule.
Voici le script pour faire cela (à appeler en formule ou utiliser dans un script plus complexe)
La formule :
=OpenAI("Regarde la cellule " & D64 & " et dis-moi si c'est un post de C-level ou pas")
Le script :
/************************************************************************
* 1) Clé API et fonction OpenAI
* Remplace la valeur de OPENAI_API_KEY par ta propre clé.
************************************************************************/
const OPENAI_API_KEY = 'VOTRE CLE OPEN AI ICI';
/**
* Fonction interne qui contacte l'API OpenAI en utilisant le modèle "gpt-4o".
* Cette fonction n'est pas destinée à être appelée directement dans les cellules Sheets,
* mais plutôt via la fonction publique OpenAI(prompt).
*
* @param {string} prompt - Le prompt (texte complet) envoyé au modèle gpt-4o-mini.
* @return {string} - Le texte de réponse généré par le modèle, ou un message d'erreur.
*/
function callOpenAI_(prompt) {
// URL officielle pour les Chat Completions avec le modèle "gpt-4o"
const apiUrl = 'https://api.openai.com/v1/chat/completions';
// Configuration des en-têtes pour l’appel à l’API
const headers = {
'Authorization': 'Bearer ' + OPENAI_API_KEY,
'Content-Type': 'application/json'
};
// Construction du payload avec le modèle "gpt-4o" et une température définie
const payload = {
'model': 'gpt-4o',
'messages': [
{
'role': 'user',
'content': prompt
}
],
'temperature': 0.7
};
// Options pour UrlFetchApp.fetch
const options = {
'method': 'post',
'headers': headers,
'payload': JSON.stringify(payload),
'muteHttpExceptions': true
};
try {
// Envoi de la requête à l'API OpenAI
const response = UrlFetchApp.fetch(apiUrl, options);
const json = JSON.parse(response.getContentText());
// Gestion d'erreur retournée par l'API
if (json.error) {
return "Erreur API : " + (json.error.message || JSON.stringify(json.error));
}
// Extraction et retour du contenu généré par le modèle
return json.choices[0].message.content.trim();
} catch (e) {
// Gestion d'une erreur lors de l'appel à l'API
return "Erreur lors de l'appel de l'API OpenAI : " + e.toString();
}
}
/************************************************************************
* 2) Fonction publique OpenAI
* Cette fonction est destinée à être appelée directement depuis
* une cellule dans Google Sheets.
*
* Exemple d'utilisation dans Sheets :
* =OpenAI("Ton prompt ici")
************************************************************************/
function OpenAI(prompt) {
if (!prompt || prompt.trim().length === 0) {
return "Erreur : prompt vide.";
}
return callOpenAI_(prompt);
}
Certainement possible de l’améliorer pour faire des plus gros batchs pour ne pas trop repayer des token pour le prompt d’instruction, le cache, etc.
Possible aussi de faire appel à gpt-4o-mini.
N’hésitez pas à partager une amélioration si vous en faîtes une ou d’autres Apps Script intéressants
PS : Attention à bien copier et coller vos valeurs en brut et ne pas laisser le formules telle quelle, sinon vous allez refaire des calls API payant à chaque ouverture du Sheets. Peut-être qu’ajouter un système de cache serait l’idéal.