Cet CLI et API Node.js vous donnent la possibilité de générer du contenu (article de blog, pages de destination, ...) avec un LLM (Openai, ...). Il peut générer du texte dans toutes les langues pris en charge par les LLM disponibles.
Ce projet utilise Langchain JS
Différents modes pour générer du contenu: automatique, interactif ou avec un modèle de contenu.
? LLMS pris en charge: Openai (stable), Mistral (expérimental), Claude (version à venir), Groq (version à venir).
? Toutes les langues prises en charge par les LLM disponibles.
SEO Friendly: Générer le titre du post, la description et la limace.
✍️ Les invites par défaut ou personnalisées.
Réglage fin avec paramètres d'achèvement.
Publier du contenu sur WordPress.
API.
Fonctionnalités à venir: Générations d'images, Rag, publier sur NextJS.
Ce composant peut être utilisé dans différents modes:
En mode interactif , la CLI vous demandera certains paramètres (sujet / titre, langue, intention, public, etc.).
En mode automatique , vous devez fournir tous les paramètres nécessaires à la ligne de commande. Ce mode de fonctionnement vous permet de créer une multitude de contenus en série (par exemple, dans un script shell).
Les deux modes utiliseront différentes invites prédéfinies pour générer le contenu:
Le résultat final est dans Markdown et HTML.
Un modèle contient une structure de document dans une série d'invites. Chaque invite sera exécutée dans une commande spécifique et sera remplacée par la réponse fournie par l'IA. Il est possible d'utiliser différents formats: Markdown, HTML, JSON, etc.
Le principal avantage de l'utilisation du modèle est la personnalisation de la sortie. Vous pouvez utiliser vos propres invites. Les modèles sont également intéressants si vous souhaitez produire des contenus différents en fonction de la même structure (pages de produits, pages de destination, etc.).
L'un des problèmes de la génération de contenu d'IA est la répétition des principaux mots clés. Ce script utilise également des paramètres temperature , frequency_penalty et presence_penalty pour essayer de minimiser cela. Voir la documentation de l'API OpenAI pour plus de détails.
Lors de la génération, la CLI vous donne la possibilité de publier le contenu sur votre blog WordPress. D'autres CMS seront pris en charge à l'avenir. Nous devons prendre en charge certains CM sans tête.
Il s'agit d'un projet expérimental. Vous êtes invités à suggérer des améliorations, comme les autres invites et autres valeurs pour les paramètres. Le coût des appels d'API n'est pas inclus dans le prix de la CLI. Vous devez avoir une clé API OpenAI pour utiliser ce CLI. Dans tous les cas, vous devez revoir la sortie finale. L'IA peut fournir des informations incorrectes.
Écologiques de voitures de camping? Utopie ou réalité en 2024?
julius post -fp 1.5 -g -tp " 5 reasons to use AI for generating content " -f ./reasons-to-use-ai-contentRésultat de la marque: 5 raisons d'utiliser l'IA pour générer du contenu
julius template-post -f ./dobermann -t ./template.md -i breed=dobermann -dModèle: modèle.md
Résultat de Markdown: Dobermann.md
julius template-post -f ./dobermann -t ./template.html -i breed=dobermann -dModèle: modèle.html
Résultat HTML: Dobermann.html
La CLI et l'API sont disponibles en tant que package NPM.
# for the API
npm install julius-gpt -S
# for the CLI
npm install -g julius-gptLa CLI a 4 groupes de commandes:
~ julius -h
Usage: julius [options] [command]
Generate and publish your content from the command line ?
Options:
-V, --version output the version number
-h, --help display help for command
Commands:
prompt Prompt related commands
post [options] Generate a post in interactive or automatic mode
template-post [options] Generate a post based on a content template
wp Wordpress related commands. The
Vous devez avoir une clé API OpenAI pour utiliser ce CLI . Vous pouvez spécifier votre touche API OpenAI avec l'option -k ou avec la variable d'environnement OPENAI_API_KEY .
Voir la CLI Aide à obtenir la liste des différentes options.
~ julius post -h ~ julius post -tp " 5 reasons to use AI for generating content "Utilisez les autres paramètres pour personnaliser encore plus le contenu.
Une commande plus avancée
~ julius post -fp 1.5 -g -l french -tp " Emprunter avec un revenu de retraite : quelles sont les options ? " -f ./emprunter-argent-revenu-retraite -c Belgique -dCette commande générera un poste en français avec une pénalité de fréquence de 1,5 pour le public du pays: la Belgique. Le sujet (TP Arg) est écrit en français.
~ julius post -iIl n'est pas nécessaire d'utiliser les autres paramètres. La CLI vous posera quelques questions sur le sujet, la langue, ...
Le fichier de modèle peut être dans le format Markdown ou HTML. L'extension du modèle sera utilisée pour déterminer la sortie finale.
~ julius template-post -t < file > .[md | html]La CLI exécutera toutes les invites mentionnées dans le fichier de modèle. Chaque code court rapide sera remplacé par la sortie fournie par l'IA.
Structure de modèle
Voici un exemple simple pour le fichier de modèle:
{{s:Your are an prompt tester. You have to write your answers in a makrdown block code.}}
{{c:your answer has to be "Content of prompt 1."}}
# Heading 1
{{c:your answer has to be "Content of prompt 2."}}
L'invite "S" est l'invite du système avec "C" sont une invite de contenu. Ils seront remplacés par la sortie fournie par l'IA.
Comme dans Langchain, vous pouvez fournir des variables d'entrée dans le modèle comme celle-ci:
{{s:Your are an prompt tester. You have to write your answers in a makrdown block code in language : {language}.}}
{{c:Quelle est la capitale de la France ?"}}
# Heading 1
{{c: Quelle est la capitale de la Belgique ? "}}
Maintenant, vous pouvez exécuter ce modèle avec la commande suivante:
~ julius template-post -t < template-file > .md -i language=frenchIl s'agit d'une fonctionnalité expérimentale et la syntaxe du modèle sera modifiée dans une version à venir.
Par défaut, la CLI utilise le dernier modèle d'IA ouvert. Nous travaillons sur le soutien des suivants:
| Fournisseur | Modèles | Statut | .Env Clé API variable |
|---|---|---|---|
| Openai | GPT-4, GPT-4-TURBO-PREVIEW | Écurie | Openai_api_key |
| Mistral | Mistral-Small-Latest, Mistral-Medium-Latest, Mistral-Grest-Latest | Expérimental | Mistral_API_KEY |
| Anthropique | Claude | Prochaine version | N / A |
| Grêle | Mistral, lama | Prochaine version | N / A |
Tous les modèles nécessitent une clé API. Vous pouvez le fournir soit dans le fichier .env, soit avec le paramètre CLI '-K'
Vous pouvez choisir votre modèle avec le paramètre -M:
~ julius post -m mistral-large-latest ....Utilisez l'aide pour avoir la liste des modèles
~ julius post -h ou
~ julius template-post -h Pourquoi des invites personnalisées?
Julius utilise un ensemble d'invites pour la génération de contenu qui peuvent être personnalisées en créant une nouvelle version dans un répertoire séparé. Chaque invite est stockée dans un fichier différent.
| Nom de fichier | Description | Entrées |
|---|---|---|
| System.txt | Peut être utilisé comme mémoire éditorial ou pour ajouter des informations importantes telles que les personnages, le style éditorial, les objectifs, ... | Aucun |
| public-intention.txt | Utilisez pour générer le public et l'intention en fonction du sujet de l'article. | {langue} {thème} |
| txt.txt | Utiliser pour générer une structure d'article. | {langage} {Topic} {country} {public} {Intent} |
| introduction.txt | Utilisez pour générer l'introduction de l'article. | {langue} {thème} |
| conclusion.txt | Utilisez pour générer la conclusion de l'article. | {langue} {thème} |
| en-tête.txt | Utilisez pour générer le contenu de chaque rubrique. | {langage} {HeadingTitle} {Mots-clés} |
1. Faire une copie des invites par défaut
~ julius prompt create [name] [folder]par exemple, par exemple :
~ julius prompt create discover ./my-promptsCette commande copiera les invites par défaut dans le dossier: ./my-prompts/discover
2. Modifier les invites
Maintenant, vous pouvez modifier et / ou traduire les invites dans ce dossier
3. Utilisez vos invites dans la CLI
En mode automatique, la CLI vous demandera le chemin d'invite personnalisé
~ julius -i Vous pouvez également utiliser un paramètre CLI "PF" pour spécifier le chemin du dossier
~ julius -pf ./my-prompts/discover ...Cette commande affiche la liste de tous les sites WordPress enregistrés dans le fichier local ~ / .julius / wordpress.json.
Le nom de domaine ou l'ID du site peut être utilisé pour les commandes suivantes.
~ julius wp lsCette commande ajoute un nouveau site WordPress au fichier local ~ / .julius / wordpress.json.
~ julius wp add www.domain.com:username:passwordCette commande affiche la liste de tous les sites WordPress enregistrés dans le fichier local ~ / .julius / wordpress.json.
~ julius wp info www.domain.com | idCette commande supprime un site WordPress du fichier local ~ / .julius / wordpress.json.
~ julius wp rm www.domain.com | idCette commande exporte la liste de tous les sites WordPress enregistrés dans le fichier local ~ / .julius / wordpress.json.
~ julius wp export wordpress_sites.jsonCette commande importe la liste de tous les sites WordPress enregistrés dans le fichier local ~ / .julius / wordpress.json.
~ julius wp import wordpress_sites.jsonCette commande affiche la liste de toutes les catégories d'un site WordPress.
~ julius wp categories www.domain.com | idCette commande crée un nouveau message sur un site WordPress. Le fichier JSON doit avoir la structure suivante:
{
"title" : " The title of the post " ,
"slug" : " the-slug-of-the-post " ,
"content" : " The content of the post " ,
"seoTitle" : " The SEO title of the post " ,
"seoDescription" : " The SEO description of the post " ,
} Ce fichier JSON peut être généré avec la commande julius post ou avec l'API.
Par défaut, l'API WordPress REST ne vous permet pas de mettre à jour le titre et la description du référencement. Ces informations sont gérées par différents plugins, tels que Yoast SEO. Vous pouvez coder un plugin pour cela.
Un exemple de plugin pour Yoast peut être trouvé dans ce répertoire: Julius-WP-Plugin Vous pouvez créer un zip et l'installer à partir du tableau de bord WordPress.
Vous pouvez coder quelque chose de similaire pour les autres plugins SEO.
~ julius wp post www.domain.com | id categoryId post.jsonjulius wp categories www.domain.com|idCette commande met à jour un article sur un site WordPress (titre, contenu, titre de référencement et description du référencement). Le fichier JSON doit avoir la structure suivante:
{
"title" : " The title of the post " ,
"slug" : " the-slug-of-the-post " ,
"content" : " The content of the post " ,
"seoTitle" : " The SEO title of the post " ,
"seoDescription" : " The SEO description of the post " ,
} Ce fichier JSON peut être généré avec la commande julius post ou avec l'API.
~ julius wp update www.domain.com | id slug post.json [-d, --update-date] Voir les tests unitaires: tests / test-api.spe.ts