Les prompts pour automatiser son SEO [Partie 2]
Dans cette 2e partie on va voir les prompts utilisés dans notre automatisation pour générer nos articles SEO.
Si tu es nouveau ici, sache que nous construisons un SaaS de type Landing Page Builder de 0 à 1M€ en 1 an.
Et que je partage chaque semaine les coulisses du projet et des astuces marketing et stratégiques pour développer un logiciel SaaS 😉
Quand j'ai commencé le golf j'avais du mal à croire qu'on puisse continuer à jouer l'hivers.
Et puis finalement, ça reste très agréable 😍.
Point sur l’avancement :
✅ L’architecture du projet est faite et permettra d’avoir un outil 100% temps réel
✅ Le moteur de génération des pages est fait
Je suis en train de travailler sur l’interface de l’éditeur
✅ Les maquettes sont faites
Je suis en train de développer l’interface
Bienvenue dans cette partie 2 de l’automatisation qui va nous permettre de mettre en marche notre stratégie SEO et générer les articles.
Pour rappel, ce sujet est divisé en 3 parties.
Aujourd’hui nous sommes sur la partie 2 : Les prompts IA pour générer les contenus de notre automatisation.
Voici les liens vers les différentes parties :
Les prompts IA pour générer les contenus (article actuel)
Encore une fois, si l’automatisation complète t’intéresse n’hésite pas à me le dire (par mail ou commentaire) et je te l’enverrai volontiers ! (Oui, même si les 3 parties ne sont pas encore disponibles 😉).
Voici un aperçu de ce que ça donne une fois terminée 😁
N’hésite pas à aller voir ou revoir la partie 1 pour comprendre en détail l’automatisation.
Comment fonctionne l’API de ChatGPT ?
Tu fais peut-être partie (comme moi) de ceux qui ont souscrit à l’abonnement mensuel de ChatGPT et qui profitent en presque illimité de discussions avec l’IA.
Même si ce n’est pas parfait, il faut reconnaître que l’IA est devenue très forte sur beaucoup de sujets et il est très plaisant de voir à quel point elle comprend ce qu’on lui demande.
Mieux que ça, c’est très plaisant de pouvoir avoir une vraie conversation avec elle, dans laquelle elle retient ce qu’on lui a déjà dit.
Bon, du coup, ça va être génial de l’utiliser pour notre automatisation 🤩.
Oui, mais non… En fait ce n’est pas si simple que ça 😅.
Quand on utilise l’interface de discussion de ChatGPT, on a des tonnes de choses pour nous faciliter la tâche.
Mais lorsqu’on utilise l’API, on revient aux bases 😅.
Il faut savoir que ChatGPT (et c’est sûrement le cas de la majorité des autres IA) est stateless.
En informatique, quand on parle de stateless, on fait référence au fait que le serveur avec lequel on discute (ChatGPT), ne conserve pas d’état.
Ça veut dire qu’en pratique, ChatGPT n’a aucune notion d’historique de conversation ou de discussion.
Mais alors comment on fait pour lui demander d’approfondir une de ses réponses ?
Eh bien on doit renvoyer l’intégrité de la conversation à chaque fois.
Par exemple, si je veux connaître la capitale de la France je vais lui envoyer ceci :
Envoi API :
Moi : Quelle est la capitale de la France ?
Réponse ChatGPT :
ChatGPT : C’est Paris.
Maintenant, si je veux lui demander ce qu’on y trouve, voici ce qu’il faut que je lui envoie :
Envoi API :
Moi : Quelle est la capitale de la France ?
ChatGPT : C’est Paris.
Moi : Qu’est-ce qu’on y trouve ?
Réponse ChatGPT :
ChatGPT : Des monuments connus comme le Louvre et Notre-Dame.
Enfin, si je veux approfondir à nouveau voici ce qu’il faut que je lui envoie :
Envoi API :
Moi : Quelle est la capitale de la France ?
ChatGPT : C’est Paris.
Moi : Qu’est-ce qu’on y trouve ?
ChatGPT : Des monuments connus comme le Louvre et Notre-Dame.
Moi : Et qu’est-ce qu’ils ont de particulier ?
C’est un exemple relativement basique, mais il est facile d’imaginer que ces “discussions” peuvent devenir très lourdes très rapidement.
Et quel est le problème ?
Eh bien c’est qu’en plus des temps de latence qui augmenteront au fur et à mesure de la conversation, l’API de ChatGPT se paie à l’usage et non en abonnement mensuel comme ce qu’on a déjà l’habitude.
On paie par millions de tokens envoyés et reçus, le tout en fonction du modèle utilisé (si j’utilise un modèle “mini”, moins performant, je paierai moins cher).
Voici un bout de leur page de tarification :
Et à quoi ça correspond 1 token ?
OpenAI nous dit que ça correspond à peu près à 4 lettres.
Ils nous fournissent un outil pour calculer le nombre de tokens d’un texte.
Avec ces coûts en tête, on sait qu’on va vouloir optimiser un maximum le nombre de tokens qu’on envoie dans nos requêtes. Et ça implique d’éviter les conversations trop longues qui demandent à chaque fois à renvoyer tout l’historique. Augmentant ainsi le nombre de tokens.
Voyons maintenant comment utiliser l’API dans notre automatisation.
Les prompts de notre automatisation
Classification des résultats de recherche
Comme on l’a vu dans la partie 1, on peut avoir dans nos résultats de recherche, d’autres types de contenus que des articles.
J’avais donc un module ChatGPT qui me permettait de classifier les résultats afin, ensuite, de ne garder que les articles.
Voici le prompt utilisé :
Système :
Je vais t'envoyer le titre et l'URL d'une page web.
Je veux que grâce à ces 2 éléments tu me classifies ce contenu de la page web selon les catégories suivantes :
- "landing_page": landing page
- "community": communautaire (forum, fil de discussion, réseau social, chat, etc...)
- "work": annonce de recrutement
- "article": article de blog
- "other": autre type de page
Ta réponse ne doit contenir que le nom de la catégorie
Utilisateur :
{{5.title}}
{{5.link}}
Un message “Système” permet de donner du contexte et des instructions.
Un message “Utilisateur” permet de donner le contenu.
Ainsi, je lui donne l’instruction de me classifier un contenu en fonction de son titre et de son URL.
Je lui donne aussi les catégories à utiliser.
Et je lui demande de ne me répondre qu’avec le nom de la catégorie (ce qui me permet ensuite de filtrer les articles).
Avec le message Utilisateur je lui envoie le titre et le l’URL.
Pour ce prompt j’utilise le modèle gpt-4o-mini qui est moins cher et suffisant pour ce type de tâche.
Et ça marche :
La génération de l’article
Le prompt de génération de l’article m’a donné du fil à retordre car au départ je voulais faire un prompt en plusieurs étapes :
📐 Lui demander de me proposer une structure
📚 Pour chaque section, m’en générer le contenu
Mais idéalement il aurait fallu que je le fasse sous forme de conversation, ce qui aurait été bien trop lourd si on compte qu’une structure comprend en moyenne 10 sections et qu’il aurait fallu que je renvoie tout ce qui a déjà été généré à chaque fois.
Je pensais aussi envoyer le contenu complet de chacun des 4 premiers articles sur Google pour ce mot-clé, mais j’ai été confronté à un autre problème : la limite d’utilisation.
OpenAI te restreint plus ou moins en fonction de l’argent que tu as déjà dépensé chez eux.
Or, comme je viens de créer mon compte API, je ne suis qu’en Tier 1 avec ces limites :
Comme on peut le voir, si j’utilise le modèle gpt-4o, je suis limité à 30 000 tokens par minute (requête et réponse comprises).
Or, le contenu d’un article fait dans les alentours de 10 000 tokens.
Ce qui me fait dépasser rapidement cette limite 😱.
C’est pour ça que dans la partie 1 tu as pu voir que je n’envoyais que le contenu du premier article :
Je me suis donc décidé à tout faire en un seul prompt et à n’envoyer le contenu complet que du 1er article (Tout en envoyant le titre et la structure des 4 articles).
Voici le prompt que j’utilise :
Système :
Tu es un expert en rédaction d'articles SEO de qualité.
Tu dois générer un article pour le mot-clé : {{1.keyword}}.
Voici les premiers résultats de recherche Google pour ce mot-clé :
{{22.text}}
Tu dois t'inspirer de ces articles, de leur titre et de leur structure pour générer un nouvel article unique et apportant plus de valeur.
Pour générer l'article tu dois aussi respecter le branding de mon projet.
Voici quelques informations à ce sujet :
{{41.value}}
Le branding te donne des indications sur le ton à utiliser dans l'article mais l'article doit apporter de la valeur sans chercher à vendre quoi que ce soit.
Soit précis dans tes explications.
Va dans le détail le plus possible.
Dans chaque section, donne énormément de valeur.
Rédige un texte aéré, n'hésite pas à faire des phrases courtes et à faire un nouveau paragraphe à chaque fois.
Tu dois rédiger l'article le plus qualitatif et apportant le plus de valeur possible pour les lecteurs.
L'article doit être long (> 1500 mots).
Voici les règles à respecter :
* Je voudrais que tu me génères un l'article en HTML qui contient entre 1500 et 3000 mots (un article plus long que la moyenne). N'oublie pas que tu dois vouvoyer le lecteur.
* Trouve-moi un titre pertinent et contenant une bonne accroche pour cet article. Il doit être en accord avec l'intention de recherche (appuie-toi sur les exemples de titres des articles en première place de Google que je t'ai envoyés plus haut), il doit indiquer clairement ce dont on va parler dans l'article, et il doit contenir le mot-clé "{{1.keyword}}"
* Je voudrais que tu me génères un texte d'aperçu à utiliser en description de l'article dans les moteurs de recherche (max 160 caractères).
* Transforme le titre en slug qui sera utilisé pour l'URL de l'article et simplifie-le en retirant les mots inutiles.
* Sélectionne la catégorie (son ID) qui te semble la plus adaptée parmi les suivantes :
{{31.text}}
Ta réponse doit être au format JSON avec les clés suivantes :
- "article": le contenu de l'article en HTML
- "title": le titre de l'article
- "category": l'ID de la catégorie de l'article
- "summary": le résumé pour Google
- "slug": le slug pour l'URL de l'article
J’utilise le modèle gpt-4o pour ce prompt.
La variable {{22.text}}
correspond au détail des articles comme on l’a vu juste avant.
La variable {{41.value}}
contient des informations sur mon branding :
1. La mission de mon projet
Rendre le marketing plus fun/accessible.
Afin d'avoir des résultats sans perte de temps ni prise de tête.
Les choses ne devraient pas être complexes et prendre du temps...
Elles devraient être simples et fun !
2. La vision de mon projet
Être le meilleur outil de création de landing pages. En étant fun, accessible et efficace.
3. Les valeurs de mon projet
Transparence, Accessibilité, Autonomie, Accomplissement
4. La cible de mon projet
Les entreprises qui n'ont pas de temps à perdre à créer des pages de vente (mais qui doivent le faire quand même). Et encore moins à analyser la data pour chercher à les optimiser.
5. La différenciation de mon projet
Notre logiciel aide les entreprises qui n'ont pas de temps à perdre à créer des pages qui convertissent.
Contrairement aux outils complexes, nous guidons l'utilisateur pour une meilleure expérience, plus rapide, plus fun et sans prise de tête.
Sans faire de compromis sur la qualité.
6. La personnalité de mon branding
À 70% un Caregiver : Il nous tient à coeur d'aider nos clients à se développer. Nous les prenons sous notre aile.
À 30% un Hero : Nos clients veulent rendre le monde meilleur. Montrer qu'ils en sont capable. Nous les aidons dans cette mission.
On aime rendre les choses fun, simples et rapides parce qu'on veut faciliter le marketing des entreprises.
On déteste la complexité inutile car elle crée un élitisme et fait croire que pour être performant, un outil doit faire des compromis sur l'accessibilité.
7. Le ton de mon branding
Je suis cool et j'aborde le sujet avec légèreté, mais je reste professionnel.
Je suis enthousiaste mais ne vends pas du rêve.
On a un ton un peu provocateur mais pas méchant.
Nous ne sommes pas condescendants.
Nous voulons aider et apporter de la valeur.
8. Quelques slogans de mon branding
- Oui, créer des pages de vente c'est chiant. Il était temps qu'on arrive !
- Des pages de vente qui convertissent, sans prise de tête.
- Vends mieux, plus vite, plus fun.
J'utilise le vouvoiement quand je parle à ma cible (il faudra donc que tu utilises le vouvoiement aussi).
Et la variable {{31.text}}
correspond aux catégories de mon blog comme on l’a vu partie 1. Ce qui donne quelque chose comme ça :
À la fin, je lui demande de me générer sa réponse au format JSON pour que je puisse l’interprêter facilement par la suite :
📝 Un champ “article” qui contient l’article
📰 Un champ “title” qui contient le titre
📂 Un champ “category” qui contient l’identifiant de la catégorie à utiliser
✍️ Un champ “summary” qui contient un résumé de l’article pour Google
🔗 Un champ “slug” qui contient le texte à utiliser dans l’URL qui mènera à l’article
Voici ce que ça donne une fois le JSON parsé :
La génération de l’image
Enfin, nous allons générer une image d’illustration de l’article en 1792x1024 en utilisant Dall-E 3.
Voici le prompt que j’utilise :
Je viens d'écrire un article sur mon blog.
J'ai besoin d'une image pour l'illustrer.
Le sujet de l'article en question est : "{{1.keyword}}".
Son titre est : "{{32.title}}"
Voici son résumé :
"""
{{32.summary}}
"""
Pour le style de l'image voici les règles à respecter par rapport à mon branding :
- Couleurs à utiliser : #BC07F8 #0DFC93, #FFD006 (nuances plus claires ou foncées autorisées)
- Style cartoon
- Fun
- Facile à comprendre
- Pas de texte
- Pas d'étalonnage de couleurs
- Ambiance un peu super-héros
Génère-moi une image qui respecte ces consignes pour mon article
Ici, rien de bien compliqué, on lui donne un peu de contexte et notre style et le tour est joué 😇.
Qu’est-ce que ça donne ?
Voici le résultat avec le mot-clé ui/ux
.
C’est un peu “léger”. Il ne semble pas vouloir respecter la taille de l’article que je lui ai demandée.
Pourtant j’ai mis 8000 tokens possible en génération, ce qui est bien plus que suffisant pour un article de 3000 mots.
Mais sinon, le contenu en lui-même est correct et sera une bonne base pour que je puisse l’améliorer rapidement.
Je verrai pour ajouter quelques illustrations (j’aime bien mettre des gifs de Giphy de temps en temps dans mes articles) et approfondir et aérer un peu certaines parties à la main.
J’améliorerai sûrement le prompt de génération au fur et à mesure mais je vais partir sur cette base pour commencer.
Par rapport à l’image, j’aime bien le style, moins le contenu 😅.
J’imagine que je lui ferai générer d’autres images de temps en temps.
Peut-être qu’il n’avait pas d’inspiration sur le thème uix/ux
😂.
Et maintenant ?
90% du travail est fait, maintenant il ne reste plus qu’à gérer et automatiser un maximum notre stratégie de mots-clés.
C’est ce qu’on verra dans la partie 3 avec quelques ajouts à l’automatisation et un nouveau prompt IA 😁.
À très vite ! 😉