Este node.js cli e API oferece a capacidade de gerar conteúdo (postagem do blog, páginas de destino, ...) com um LLM (OpenAI, ...). Ele pode gerar texto em todos os idiomas suportados pelo LLMS disponível.
Este projeto está usando Langchain JS
Modos diferentes para gerar conteúdo: automático, interativo ou com um modelo de conteúdo.
? LLMS suportado: OpenAI (estável), Mistral (Experimental), Claude (próximo lançamento), Groq (próximo lançamento).
? Todos os idiomas suportados pelo LLMS disponível.
SEO Amigável: Gere título de postagem, descrição e slug.
✍️ Promotos padrão ou personalizados.
Ajuste fino com parâmetros de conclusão.
Publique conteúdo no WordPress.
API.
Próximos recursos: gerações de imagens, RAG, publique no NextJs.
Este componente pode ser usado em diferentes modos:
No modo interativo , a CLI solicitará alguns parâmetros (tópico/título, idioma, intenção, público etc.).
No modo automático , você precisa fornecer todos os parâmetros necessários para a linha de comando. Esse modo de operação permite criar uma infinidade de conteúdos em série (por exemplo, em um script de shell).
Ambos os modos usarão diferentes prompts predefinidos para gerar o conteúdo:
O resultado final está em Markdown e HTML.
Um modelo contém uma estrutura de documentos dentro de uma série de avisos. Cada prompt será executado em uma ordem específico e será substituído pela resposta fornecida pela IA. É possível usar formatos diferentes: Markdown, HTML, JSON, etc.
A principal vantagem do uso do modelo é a personalização da saída. Você pode usar seus próprios prompts. Os modelos também são interessantes se você deseja produzir conteúdos diferentes com base na mesma estrutura (páginas de produtos, páginas de destino etc.).
Um dos problemas da geração de conteúdo de IA é a repetição das principais palavras -chave. Esse script também usa parâmetros de temperature , frequency_penalty e presence_penalty para tentar minimizar isso. Consulte a documentação da API OpenAI para obter mais detalhes.
Ao gerar, a CLI oferece a capacidade de publicar o conteúdo no seu blog WordPress. Outros CMs serão apoiados no futuro. Precisamos suportar alguns CMs sem cabeça.
Este é um projeto experimental. Você pode sugerir melhorias, como outros avisos e outros valores para os parâmetros. O custo das chamadas da API não está incluído no preço da CLI. Você precisa ter uma chave de API do OpenAI para usar esta CLI. Em todos os casos, você deve revisar a saída final. AI pode fornecer informações incorretas.
Camping-Cars Écologiques? 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-contentResultado de marcação: 5 razões para usar a IA para gerar conteúdo
julius template-post -f ./dobermann -t ./template.md -i breed=dobermann -dModelo: template.md
RESULTADO DE RECENDO: DOBERMANN.MD
julius template-post -f ./dobermann -t ./template.html -i breed=dobermann -dModelo: template.html
Resultado HTML: Dobermann.html
A CLI e a API estão disponíveis como um pacote NPM.
# for the API
npm install julius-gpt -S
# for the CLI
npm install -g julius-gptA CLI tem 4 grupos de comandos:
~ 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
Você precisa ter uma chave de API do OpenAI para usar esta CLI . Você pode especificar sua tecla API OpenAI com a opção -k ou com a variável de ambiente OPENAI_API_KEY .
Consulte a CLI ajuda a obter a lista das diferentes opções.
~ julius post -h ~ julius post -tp " 5 reasons to use AI for generating content "Use os outros parâmetros para personalizar ainda mais o conteúdo.
Um comando mais avançado
~ 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 -dEste comando gerará um post em francês com uma pena de frequência de 1,5 para o público do país: Bélgica. O tópico (TP Arg) está escrito em francês.
~ julius post -iNão é necessário usar os outros parâmetros. A CLI fará algumas perguntas sobre o tópico, linguagem, ...
O arquivo de modelo pode estar no formato Markdown ou HTML. A extensão do modelo será usada para determinar a saída final.
~ julius template-post -t < file > .[md | html]A CLI executará todas as solicitações mencionadas no arquivo de modelo. Cada código curto prompt será substituído pela saída fornecida pela IA.
Estrutura de modelo
Aqui está um exemplo simples para o arquivo de modelo:
{{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."}}
Prompt "s" é o prompt do sistema prompt com "c" é um prompt de conteúdo. Eles serão substituídos pela saída fornecida pela IA.
Como em Langchain, você pode fornecer algumas variáveis de entrada no modelo como este:
{{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 ? "}}
Agora, você pode executar este modelo com o seguinte comando:
~ julius template-post -t < template-file > .md -i language=frenchEste é um recurso experimental e a sintaxe do modelo será modificada em um próximo lançamento.
Por padrão, a CLI está usando o mais recente modelo de IA aberto. Estamos trabalhando no apoio dos seguintes:
| Provedor | Modelos | Status | .ENV Chave da API variável |
|---|---|---|---|
| Openai | GPT-4, GPT-4-Turbo-Preview | Estável | OpenAi_API_KEY |
| Mistral | Mistral-Muml-Latest, Mistral-Medestium-Latest, Mistral Large-Latest | Experimental | MISTRAL_API_KEY |
| Antrópico | Claude | Próximo lançamento | N / D |
| Groq | Mistral, Llama | Próximo lançamento | N / D |
Todos os modelos requerem uma chave da API. Você pode fornecê-lo no arquivo .env ou com o parâmetro da CLI '-k'
Você pode escolher seu modelo com o parâmetro -m:
~ julius post -m mistral-large-latest ....Use a ajuda para ter a lista dos modelos
~ julius post -h ou
~ julius template-post -h Por que solicitações personalizadas?
Julius usa um conjunto de instruções para geração de conteúdo que pode ser personalizada criando uma nova versão em um diretório separado. Cada prompt é armazenado em um arquivo diferente.
| Nome do arquivo | Descrição | Entradas |
|---|---|---|
| System.txt | Pode ser usado como um resumo editorial ou para adicionar informações importantes, como personas, estilo editorial, objetivos, ... | Nenhum |
| Audiência-intent.txt | Use para gerar o público e a intenção com base no assunto do artigo. | {idioma} {tópico} |
| esboço.txt | Use para gerar a estrutura do artigo. | {idioma} {tópico} {country} {Audiente} {intenção} |
| introdução.txt | Use para gerar a introdução do artigo. | {idioma} {tópico} |
| conclusão.txt | Use para gerar a conclusão do artigo. | {idioma} {tópico} |
| cabeçalho.txt | Use para gerar o conteúdo de cada título. | {Language} {HeadingTitle} {Keywords} |
1. Faça uma cópia dos prompts padrão
~ julius prompt create [name] [folder]por exemplo. :
~ julius prompt create discover ./my-promptsEste comando copiará os avisos padrão na pasta: ./my-prompts/discover
2. Modifique os prompts
Agora, você pode modificar e/ou traduzir os avisos nesta pasta
3. Use seus avisos na CLI
No modo automático, a CLI pedirá o caminho de prompt personalizado
~ julius -i Você também pode usar um parâmetro CLI "PF" para especificar o caminho da pasta
~ julius -pf ./my-prompts/discover ...Este comando exibe a lista de todos os sites WordPress registrados no arquivo local ~/.julius/wordpress.json.
O nome de domínio ou o ID do site podem ser usados para os seguintes comandos.
~ julius wp lsEste comando adiciona um novo site WordPress ao arquivo local ~/.julius/wordpress.json.
~ julius wp add www.domain.com:username:passwordEste comando exibe a lista de todos os sites WordPress registrados no arquivo local ~/.julius/wordpress.json.
~ julius wp info www.domain.com | idEste comando remove um site do WordPress do arquivo local ~/.julius/wordpress.json.
~ julius wp rm www.domain.com | idEste comando exporta a lista de todos os sites WordPress registrados no arquivo local ~/.julius/wordpress.json.
~ julius wp export wordpress_sites.jsonEste comando importa a lista de todos os sites WordPress registrados no arquivo local ~/.julius/wordpress.json.
~ julius wp import wordpress_sites.jsonEste comando exibe a lista de todas as categorias de um site WordPress.
~ julius wp categories www.domain.com | idEste comando cria uma nova postagem em um site do WordPress. O arquivo JSON deve ter a seguinte estrutura:
{
"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 " ,
} Este arquivo JSON pode ser gerado com o comando julius post ou com a API.
Por padrão, a API REST WordPress não permite atualizar o título e a descrição do SEO. Esta informação é gerenciada por diferentes plugins, como o Yoast SEO. Você pode codificar um plug -in para isso.
Um exemplo de plug-in para Yoast pode ser encontrado neste diretório: Julius-WP-PLUGIN Você pode criar um zip e instalá-lo no painel do WordPress.
Você pode codificar algo semelhante para outros plugins de SEO.
~ julius wp post www.domain.com | id categoryId post.jsonjulius wp categories www.domain.com|idEste comando atualiza uma postagem em um site WordPress (título, conteúdo, título de SEO e descrição do SEO). O arquivo JSON deve ter a seguinte estrutura:
{
"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 " ,
} Este arquivo JSON pode ser gerado com o comando julius post ou com a API.
~ julius wp update www.domain.com | id slug post.json [-d, --update-date] Veja os testes de unidade: testes/test-api.spec.ts