El conocimiento es el nuevo dinero.
Aprender es la nueva manera en la que inviertes
Acceso Cursos

Aumenta tu productividad con Node.js y ChatGPT

En el articulo de hoy hablaremos un poco acerca de cómo crear un asistente de redacción de correos electrónicos y ahorrar tiempo. Una rápida introducción sobre cómo utilizar la API de OpenAI en beneficio propio

· 5 min de lectura
Aumenta tu productividad con Node.js y ChatGPT

ChatGPT ha sido un tema candente últimamente, y con razón, después de todo, está haciendo un gran trabajo cumpliendo todas nuestras peticiones.

Y aunque no es la herramienta de generación de código perfecta como hemos explicado antes, definitivamente hace un trabajo fantástico si le pides que escriba algunas palabras en inglés sencillo.

Sin embargo, en este artículo voy a mostrarte cómo aprovechar su API para crear un asistente de redacción de correos electrónicos. Esencialmente, le darás un par de detalles importantes, y esta herramienta te dará un correo electrónico completamente escrito para que lo envíes.

¡Veamos cómo hacerlo!

Unas palabras sobre la API


OpenAI, la empresa que está detrás de ChatGPT, proporciona una API muy sencilla para que podamos utilizarla. De hecho, también podemos utilizar Dall-E a través de ella, pero de momento nos centraremos en ChatGPT.

Por supuesto, a diferencia de su interfaz pública, no podemos enviar peticiones ilimitadas a esta API, el nivel FREE es bastante limitado, pero para nuestro ejemplo nos servirá.

Si vas a usarla para algo más, te recomiendo que introduzcas tu tarjeta de crédito, definitivamente no es cara a no ser que crees una API de uso masivo (es el clásico modelo pay-as-you-go, así que cuanto más uses la API más pagas).

Además, escribiré todos mis ejemplos usando JavaScript, pero puedes portarlos fácilmente al lenguaje de tu elección, como vas a ver, la API no es compleja.

Construyendo nuestro asistente


Para este artículo, vamos a construir una simple herramienta de línea de comandos que te preguntará para quién es el correo electrónico, y para que introduzcas una pequeña descripción de lo que el correo electrónico debe decir.

Eso es todo, como salida, obtendrás un correo electrónico completamente escrito desde ChatGPT.

En el proceso, aprenderás un poco sobre algunos de los parámetros que rigen este modelo y cómo ajustarlo según sus propias preferencias.

¿Qué necesitaremos?


La forma en que funciona la API, es proporcionando una solicitud, al igual que lo hace con la interfaz de usuario pública de ChatGPT.

Por lo tanto, si queremos que escriba un correo electrónico para nosotros, le pediremos exactamente eso y, además, le proporcionaremos algunos datos más.

En concreto, le pediremos el nombre de la persona para la que es el email, el tema del email y, por último, tu propio nombre.

El resultado final debería ser el siguiente:

Esto es lo que necesitamos:

  • Node.js (¡por supuesto!)
  • El paquete NPM openai.
  • El paquete NPM dotenv.
  • Una clave API.
  • Y ya está. 🙌

Ponerlo todo en marcha


Lo primero que tienes que hacer es conseguir tu clave API, para ello tendrás que registrarte para obtener una cuenta en el sitio web de OpenAI.

Una vez que tengas tu cuenta, que debería ser más reciente de 3 meses (de lo contrario tu crédito gratuito habría caducado), visita la sección Claves API de tu perfil.

Tiene este aspecto:

Haz clic en el botón "Crear nueva clave secreta", y asegúrate de copiar la clave que se te muestra justo después, porque no podrás volver a obtenerla.

Una vez que tengas la clave, guárdala dentro de un archivo .env en una variable llamada OPENAI_API_KEY . La usaremos en un minuto.

Con la clave guardada, instala ambos paquetes con npm install openai dotenv . Eso te dará todas las herramientas extra que necesitas.

Luego procede a escribir este código:

const { Configuration, OpenAIApi } = require("openai");
require('dotenv').config()


const readline = require('node:readline/promises').createInterface({
    input: process.stdin,
    output: process.stdout
  });

const configuration = new Configuration({
  apiKey: process.env.OPENAI_API_KEY
});
const openai = new OpenAIApi(configuration);

async function writeEmail(name, topic, destination) {
    const response = await openai.createCompletion({
        model: "text-davinci-003",
        prompt: `Write an email for ${destination}, ${topic}, my name is ${name}`,
        max_tokens: 200,
        temperature: 0.7,
    });

    console.log(response.data.choices[0].text)
}

(async () => {
    let destination = await readline.question('Who is the email for? (let us know if this person knows you) ')
    let name = await readline.question("What's your name? ")
    let topic = await readline.question('What is the email about? ')

    await writeEmail(name, topic, destination)
  
    readline.close();
})()

También estamos usando el paquete readline que viene con Node. Ese paquete simplifica el proceso de pedir la entrada del usuario en la terminal, así que lo usaremos en las líneas 27 a 29 con el método question.

Estamos creando el cliente OpenAI en la línea 13 con el objeto de configuración, que en nuestro caso, sólo contiene la clave API de antes (gracias a la línea 2 donde usamos el paquete dotenv).

Por último, dentro de la función writeEmail utilizaremos el cliente OpenAI para solicitar una finalización de texto. Aquí es donde le das a la IA un prompt y te devuelve algo de texto.

En nuestro caso, el prompt se encuentra en la línea 18, donde creo una cadena usando los tres parámetros que solicito al usuario.

Puedes cambiar esa plantilla a lo que quieras, pero he encontrado buenos resultados pidiéndole que escriba un email como ese.

Podrías usar variaciones como:

`Write an informal email to ${destination}, ${topic}, my name is ${name}`
`Write an email to ${destination}, ${topic}, make sure they understand it's important and that my name is ${name}`
`Write a corporate-sounding email to ${destination}, ${topic}, my name is ${name}`
`Write a formal email to my boss, ${destination}, about ${topic}, and sign it as ${name}`

Los otros parámetros son:

  • El modelo ML a utilizar: En este caso estamos usando el modelo Davinci, que es el más complejo (también el más caro de usar si estás pagando por él).
  • El número máximo de tokens, que indica cuánto puede durar la respuesta. Los tokens son una unidad de medida que OpenAI utiliza para controlar cuánto puedes utilizar la API. Los tokens se traducen a dinero, y para una cuenta nueva, tendrás 18 USD gratis. Es difícil medir mentalmente cuántos tokens has usado, así que asegúrate de visitar la sección Uso de tu perfil a menudo, te mostrará cuánto te queda. Si quieres correos más largos, aumenta este número.
  • La temperatura: Es un número entre 0 y 1. Cuanto más alto sea, más "interesante" será la respuesta. Si lo mantienes en 0, obtendrás una respuesta algo estándar. Por supuesto, cuanto más alto sea el número, más loco puede ser el resultado, así que tenlo en cuenta.

Hay más atributos opcionales que puedes usar, incluyendo pedir múltiples respuestas para que elijas o si quieres que la respuesta sea transmitida o dada toda junta una vez que esté lista.

Asegurate de leer la documentación para saber qué más puede hacer con este punto final.

Comprender la respuesta


La respuesta que obtenga de la llamada a la API contendrá mucha información innecesaria, ya que contiene todos los datos relacionados con HTTP. Sin embargo, si te limitas y te centras en el atributo data, obtendrás toda la información que necesitas.

Por eso aquí se obtiene directamente la primera opción de la propiedad data, y de ella se adquiere el atributo text Asegúrate de examinar la respuesta si quieres obtener información extra.

Y eso es todo.

La "magia" ha desaparecido, lo sé, ocurre cuando se muestran las interioridades de este tipo de herramientas. Pero los resultados son geniales, ahora puedes obtener rápidamente un correo electrónico bien escrito en pocos segundos, especialmente útil para esos días en los que no te sientes inspirado.

¿Has utilizado la API OpenAI antes? ¿Qué has construido con ella?

Fuente

Plataforma de cursos gratis sobre programación