Cómo generar contenido y publicar en WordPress automáticamente con Chat GPT

En este artículo, exploraremos cómo utilizar el poder de la inteligencia artificial y la API de OpenAI para generar contenido de manera automática y publicarlo en un sitio web de WordPress. Utilizaremos un script Python para realizar esta tarea y algo de ingeniería de prompt. Descubre cómo crear contenido fascinante en pocos pasos.

Paso 1: Configuración del entorno y clave de API

Antes de comenzar, es importante asegurarse de tener correctamente configurado el entorno de desarrollo y la clave de API de OpenAI. La clave de API es necesaria para conectarse y hacer uso de los servicios de OpenAI. Asegúrate de haber creado una cuenta en OpenAI y obtener tu clave de API correspondiente.

importaremos la librería «openai» e importamos «os» para poder traernos las claves API desde un archivo que tendremos en el mismo directorio con el nombre «.env» dentro de este archivo pondremos exactamente:

OPENAI_API_KEY: «tu clave» y lo guardamos. Esta es la manera más segura de hacer un llamado a la API de Chat GPT.

Lo mismo haremos para las credenciales de WordPress.

import openai
import os

# Cargar las variables de entorno desde el archivo .env
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())

# Configurar la clave de API de OpenAI
openai.api_key = os.getenv('OPENAI_API_KEY')

Paso 2: Preparación de los datos

En este paso, prepararemos los datos necesarios para generar el contenido. Utilizaremos un archivo CSV que contiene las preguntas relacionadas con nuestro tema. El script leerá el archivo CSV y extraerá las preguntas para utilizarlas posteriormente en la generación del contenido.

#truco: En scripts puedes encontrar un script muy util para extraer las preguntas principales de los usuarios directamente desde la SERP.

Paso 3: Generación de contenido con OpenAI

Aquí es donde entra en acción la magia de la inteligencia artificial. Utilizaremos la API de OpenAI para generar el contenido de manera automática. En este paso, el script realizará una solicitud a la API de OpenAI utilizando las preguntas como base. OpenAI generará un texto basado en las preguntas y proporcionará la respuesta correspondiente.

Este es un ejemplo de un blog de nicho basado en la historia del tomate en el que estuve trabajando:

# Leemos el archivo CSV que subimos al directorio

#df = pd.read_csv('nombre_de_tu_archivo.csv', encoding='utf-8')

# Iteramos sobre las preguntas que se deben responder
questions=[]
for i, row in df.iterrows():
  questions.append(row["title"])
question =', '.join(questions)

IMPORTANTE: la columna que contiene las preguntas debe titularse "title" y debe ser una sola columna(lo ideal es tener bloques de máximo 5 preguntas con coherencia semántica)


consulta= f"""Eres historiador, especializado en la historia del tomate en España.\
Responde con un articulo de 700 palabras las siguientes preguntas: {question}.\
Hazlo de manera divertida, dinámica, que llame a ser leído por todo el público amante del tomate.\
El articulo debe contener una estructura HTML con subtitulos en H2.\
Respalda la información con datos históricos, estadísticos o relevantes.\
Incluye información de wikipedia con links a los articulos\
No des conclusiones, solo datos objetivos\
"""

#Llamamos al modelo de texto v1 text-davinci-003 y definimos la temperatura de creatividad(cuanto mas alta mas creativo pero mas divagante)

try:
  response = openai.Completion.create(
    engine="text-davinci-003",
    prompt=consulta,
    max_tokens=3800,
    temperature=0.3,
  )
except Exception as e:
  print("Error al realizar la solicitud a la API de OpenAI:", str(e))
  exit()

Actualización

Haciendo pruebas puedo verificar que los contenidos generados por un modelo de chat son mejores que los que genera el modelo presentado en el codigo anterior: text-davinci-003 y se limitan la cantidad de tokens a 4800 con lo cual el desarrollo es menor al que puede desarrollarse con, por ejemplo, el modelo de chat-gpt3.5-turbo-16k

Aquí esta la adaptación del código necesarias para trabajar con este modelo de chat:

prompt= f""" Responde con un articulo de 2500 palabras las siguientes preguntas: {question}.\
Hazlo de manera divertida, dinámica, que llame a ser leído por todo el público amante del tomate.\
El articulo debe contener una estructura HTML con subtitulos en H2.\
No inventes la información. Respalda con datos históricos, estadísticos o relevantes citando la fuente de información.\
No des conclusiones, solo datos objetivos\
"""
try:
  response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo-16k",
    messages=[
    { "role": "system", "content": "Eres historiador experto en la historia del tomate en España" },
    { "role": "user", "content": prompt} ],
    max_tokens=5000,
    temperature=0,
  )
except Exception as e:
  print("Error al realizar la solicitud a la API de OpenAI:", str(e))
  exit()

Para que no de error debemos pasarle correctamente los parametros esperados por este modelo cuando llamamos a definir el cuerpo de la solicitud:

'content': response['choices'][0]['message']['content'],

Adicionalmente tenemos la posibilidad de modificar los parametros de System y Role para mejorar la calidad de nuestras instrucciones.

Paso 4: Conexión con WordPress

Utilizaremos la API de WordPress para realizar una solicitud POST y crear una nueva publicación con el contenido generado. El script se encargará de realizar la solicitud, autenticarse en el sitio de WordPress y crear la publicación en modo de borrador.

import base64
import requests
import pandas as pd
from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc.methods.posts import GetPosts, NewPost

# RELLENAR: Añade tu usuario de wordpress y en el password la clave que se genera en tu usuario de WP, desde la sección perfil en "Contraseñas de aplicación" pones el nombre que quieras y pegas la contraseña que te genera

login = os.getenv('WORDPRESS_LOGIN')
password = os.getenv('WORDPRESS_PASSWORD')

# RELLENAR: Establecer la URL de la API de WordPress y los encabezados de autorización

url = 'https://tusitioweb.com/wp-json/wp/v2/posts'
headers = {
    'Authorization': 'Basic ' + base64.b64encode(f"{login}:{password}".encode()).decode()
}

# Establecer el cuerpo de la solicitud con el título y el estado del post(en este caso lo verás en "draft" pero puedes cambiarlo si lo prefieres a "publish" para su publicación automática)

data = {
    'title': "El viaje del tomate: Origen, nombre científico y personajes clave",
    'content': response["choices"][0]["text"],
    'status': 'draft'
}

# Realizar la solicitud POST
response = requests.post(url, headers=headers, json=data)

# Verificar el estado de la respuesta
if response.status_code == 201:
    print('Post creado correctamente')
else:
    print('Error al crear el post')

Conclusiones

En este artículo, hemos explorado cómo utilizar la API de OpenAI para generar contenido automáticamente y publicarlo en un sitio de WordPress. El script que hemos utilizado nos ha permitido realizar todo el proceso, desde la generación del contenido hasta la publicación en WordPress, de manera automatizada. En mi Github lo puedes encontrar completo.

Este enfoque puede ser útil para ahorrar tiempo y esfuerzo al crear contenido para un blog o sitio web. La combinación de la inteligencia artificial y las herramientas de automatización nos brinda nuevas posibilidades en el campo de la generación de contenido.

¡Esperamos que este artículo te haya resultado interesante y útil! No dudes en experimentar con diferentes configuraciones y ajustes para adaptarlo a tus necesidades específicas.

Deja un comentario

Scroll al inicio