Vous en avez assez de copier-coller vos documents dans un logiciel de traduction simplement pour communiquer avec vos clients internationaux ? Ou peut-être automatisez-vous la collaboration sur un article de recherche avec un partenaire qui parle une autre langue. Quel que soit votre cas, nous avons une excellente nouvelle pour vous ! Grâce à l’intégration de Google Docs et OpenAI, et avec l’aide de Latenode.com, nous sommes fiers de proposer un workflow fluide qui vous permet de fournir un lien vers votre document Google et de le traduire dans la langue souhaitée. Ne perdez plus de temps avec les traductions manuelles : laissez la technologie travailler pour vous !
Préparation
Tout d’abord, comme toujours, assurez-vous de disposer de tout ce dont vous avez besoin pour créer une chaîne : un compte ChatGPT et sa clé personnelle, ainsi qu’un compte Google et le jeton correspondant ;
Latenode a récemment ajouté des intégrations avec de nombreux services. Les documents spécifiques ne sont pas encore disponibles, mais cela devrait bientôt être le cas. Pour l’instant, nous allons donc obtenir le jeton selon les instructions de notre article. Dans la liste, choisissez uniquement le périmètre « Google Docs API v... » : « https://www.googleapis.com/auth/documents » ;
Vous pouvez consulter ou créer votre clé personnelle dans ChatGPT via les paramètres de votre profil :
![]()
Création d’une chaîne dans Latenode
La première étape consiste, comme toujours, à créer un nœud : « + Add Node » => « Http » => « Webhook » ;
Copions immédiatement son adresse ;
![]()
Enregistrez les modifications ;
Nous allons également préparer une requête préliminaire pour le client REST (Postman, Insomnia) :
REQUÊTE pour le client REST :
curl --request POST
--url https://webhook.latenode.com/69/dev/8b8b0b68-df1f-45ab-b1a3-94baf3a0626d
--header 'Content-Type: application/x-www-form-urlencoded'
--data 'personalTokenChatGPT=Your ChatGPT token'
--data 'googleDocToken=Your google token'
--data 'docID=ID of desired google document'
--data 'language=german'
Remplacez le lien Webhook par le vôtre ;
Ensuite, renseignez votre clé ChatGPT dans personalTokenChatGPT ;
Ajoutez ensuite votre jeton Google Doc dans googleDocToken ;
Remplacez docID par l’identifiant du document souhaité, que vous pouvez récupérer dans la barre d’adresse ;
![]()
Si nécessaire, vous pouvez modifier la langue de traduction dans le paramètre language ;
![]()
Ajoutez ensuite le nœud « HTTP request » pour récupérer le contenu du document : « + Add Node » => « Http » => « HTTP request » ;
Enregistrez ;
Reliez les nœuds entre eux ;
Lancez et appelez la chaîne afin de transférer les données entre les nœuds ;
Configurons le champ « Url » : commencez par l’adresse « https://docs.googleapis.com/v1/documents/ », suivie du paramètre body.docID du nœud « Webhook » ;
Vérifiez que la méthode par défaut est bien « GET » ;
Dans Headers, ajoutez deux éléments :
- Content-Type avec la valeur : application/json
- Authorization : saisissez Bearer comme valeur, puis sélectionnez le paramètre du nœud « Webhook » nommé body.googleDocToken
Enregistrez les modifications ;
![]()
Reliez les nœuds entre eux ;
Lancez et appelez la chaîne afin de transférer les données entre les nœuds ;
Ajoutez ensuite un nœud « JavaScript » pour récupérer le contenu du document : « + Add Node » => « Code » => « JavaScript » ;
Insérez-y le contenu du bloc ci-dessous :
const responseResult = JSON.parse(data["{{2.body.body.content}}"]);
let docText = "";
function parseResponse(response) {
const tempArray = [];
if (typeof response !== String) {
tempArray.push(...response);
} else {
tempArray.push(JSON.parse(...response));
}
Array.isArray(response)
? response.forEach(
(arrayItem) => {
if (arrayItem.paragraph) {
arrayItem.paragraph.elements.forEach(paragraphItem => {
docText += `${paragraphItem.textRun.content}`;
});
}
}
)
: Object.fromEntries(
Object.entries(response)
.map(([objectItemKey, objectItemValue]) => [objectItemKey, parseResponse(objectItemValue, s)]));
}
parseResponse(responseResult);
const resultRawJSON = JSON.stringify({
"model":"text-davinci-003",
"prompt":`Write a brief retelling of the main point of the text on ${data["{{1.body.language}}"]}: ${docText}`,
"temperature":0,
"max_tokens":1400
});
return {
resultRawJSON
}
Enregistrez ;
Reliez les nœuds entre eux ;
Lancez et appelez la chaîne afin de transférer les données entre les nœuds ;
Ouvrez à nouveau les paramètres du nœud « JavaScript » ;
Vérifiez, dans toutes les constructions telles que « data["{{2.body.body.content}}"] » et « data["{{2.body.body.content}}"] », que les numéros des nœuds correspondent à ceux depuis lesquels vous recevez les données. Dans le cas contraire, remplacez-les par les numéros nécessaires. Pour rappel, 1 correspond au numéro du nœud indiqué directement sous son nom, au-dessus du type de nœud. S’il s’agit d’une requête, sélectionnez ensuite le champ d’objet correspondant au type de données envoyées ou reçues : body pour les formulaires ou query pour les paramètres de requête ;
![]()
![]()
S’il y a eu des modifications, enregistrez-les ;
Ajoutez maintenant une autre requête « Http request » : « + Add node » => « Http » => « HTTP request » ;
Enregistrez ;
Reliez les nœuds entre eux ;
Lancez et appelez la chaîne afin de transférer les données entre les nœuds ;
Configurons le champ « Url » : placez l’adresse « https://api.openai.com/v1/completions » au début ;
Remplacez la méthode de requête par « POST » ;
Dans le corps de la requête, dans « raw », insérez la variable resultRawJSON du nœud « JavaScript » précédent ;
Dans Headers, ajoutez deux éléments :
- Content-Type avec la valeur : application/json
- Authorization avec la valeur : Bearer, puis sélectionnez le paramètre du nœud « Webhook » nommé body.personalTokenChatGPT
Enregistrez les modifications ;
![]()
Enfin, pour renvoyer le texte reçu de ChatGPT, ajoutez le nœud « Webhook response » : « + Add Node » => « Http » => « Webhook response » ;
Enregistrez ;
Reliez les nœuds entre eux ;
Exécutez et appelez la chaîne afin de transférer les données entre les nœuds ;
Renseignez la réponse avec la variante prête à l’emploi si la requête précédente a renvoyé une réponse réussie : body.choices.[0].text :
![]()
Exécutons la chaîne complète et appelons-la ;
La réponse devrait ensuite renvoyer une brève reformulation du document en anglais ;
![]()
Voici à quoi ressemblera la chaîne terminée ;
![]()
Merci de votre attention, à bientôt dans de nouveaux articles ! 😉
Liens :
Essentiels :


