On a tous plus ou moins aujourd’hui des outils sympathiques pour générer du contenu grâce à l’intelligence artificielle.
Je ne vais donc pas vous partager ma façon de faire ici, mais la technique que j’utilise pour trouver le champ sémantique et quelques idées de mots clés à optimiser pour le SEO.
Pré-requis:
- NodeJs
- Librairie Openai
- Une clé API OpenAI
- Un peu d’huile de coude
C’est un script très simple qui peut largement être amélioré. Pour tout dire, c’est l’extrait d’une grosse machine autonome de génération de contenu automatisée pour alimenter rapidement tout un tas de blogs.
Pour commencer, ouvrez votre logiciel NodeJs préféré (j’utilise Vscode) et installez la librairie OpenAi
npm install openai
Récupérez ensuite votre clé API dans votre compte (attention, copiez votre clé rapidement. Vous ne pourrez plus la revoir ensuite)
Dans votre soft favori, créez un petit dossier avec le nom d’oiseau que vous voulez. /kws_finder par exemple.
A l’interieur de ce dossier, un sous-dossier /results
Crééz alors un fichier app.js (court, c’est pas mal pour le lancer rapidement… sauf quand vous voulez faire 50 fichiers app dans le même dossier).
Mettez-y ce code:
const { Configuration, OpenAIApi } = require("openai");
const fs = require("fs");
const { get } = require("https");
const configuration = new Configuration({
apiKey: "VOTRE-CLE-API",
});
const openai = new OpenAIApi(configuration);
async function gpt3_completion(prompt) {
try {
const completion = await openai.createCompletion({
model: "text-davinci-003",
prompt: prompt,
max_tokens: 256,
temperature: 0.85,
frequency_penalty: 1.4,
presence_penalty: 1.2,
});
//console.log(completion.data.choices[0]);
//console.log(completion.data.choices[0].text);
return completion.data.choices[0].text;
} catch (error) {
if (error.response) {
console.log(error.response.status);
console.log(error.response.data);
} else {
console.log(error.message);
}
}
}
//definition de fichier
var date = new Date();
const currentDay = new Date().toISOString().slice(0, 10);
// enregistrement dans le repertoire /results
const filename = `./results/${currentDay}.txt`;
let titles = `titre 1,titre 2,titre 3,titre 4`;
let subjects = titles.split(",").map((title) => {
return title.trim();
});
console.log(`SUJETS: \n${subjects}\n------------------\n`);
for(let i=0; i<subjects.length; i++) {
let subject = subjects[i];
let findKwPrompt = `Je dois trouver le champ sémantique idéal pour le sujet suivant et séparer les termes par des virgules.
SUJET: ${subject}
Voici les mots clés du champ sémantique séparés par des virgules:
`;
gpt3_completion(findKwPrompt).then((keywords) => {
console.log(`KEYWORDS: \n${keywords}\n------------------\n`);
//on enregistre au fur et à mesure en cas de coupure
fs.appendFileSync(filename, `${subject}|${keywords.trim()}\n`);
});
}
Ligne 35: ajoutez vos titres, séparés par des virgules.
CTRL+S pour enregistrer tout ça!
On lance le script en ouvrant le terminal:
node app.js
Un fichier txt du nom de la date va s’enregistrer dans votre dossier /results.
A l’intérieur, vos titres et leurs mots clés sous cette forme:
Titre1|kw1,kw2,kw3
Titre2|kw1,kw2,kw3
Titre3|kw1,kw2,kw3
Titre4|kw1,kw2,kw3
Etc...
C’est facilement modifiable pour enregistrer comme vous le souhaitez. Vous pouvez mettre des points virgules, enregistrer en json (ou même Json Line pour du gros traitement). On pourrait même charger les titres depuis un bête fichier .txt/.csv
Et voilà!
Comme je le disais, c’est facile, rapide et efficace. Libre à vous de tenter de modifier le « prompt » pour obtenir un meilleur résultat.
A partir de là, il est très facile d’imaginer un script qui fonctionne dans le sens inverse: On lui fournit une liste de mots clés pour récupérer des titres sympathiques en sortie.
Mieux, pourquoi ne pas partir d’une liste de mots clés => générer des titres => et redemander le champ sémantique distinct pour chaque titre => enregistrer le tout au format souhaité!
Si le code final vous intéresse, passez faire un tour sur le forum