En el presente tutorial implementaremos a nivel local un Sistema ChatGPT en nodejs, no conectaremos a la API de ChatGPT desarrollada por OpenAI, a través de consola podremos formularle preguntas directamente a ChatGPT y desde consola directamente recibiremos respuesta.
Puedes descargar directamente el código de la aplicación en el siguiente enlace:
Registo de Usuario con OpenAI
OpenAI es la empresa más conocida del mundo en Inteligencia Artificial y con ChatGPT ha revolucionado la tecnología en un antes y después, para tener el API de ChatGPT y empezar el proceso debes darte de alta en el siguiente enlace:
https://chat.openai.com/auth/login
Posterior a esto puedes generar un nuevo Token de acceso al API en el siguiente enlace:
https://platform.openai.com/account/api-keys
Puesta a punto del Sistema ChatGPT con nodejs en un servidor Local
Esta aplicación puede funcionar en cualquier servidor que pueda ejecutar nodejs, incluso si es un hosting compartido con una consola de acceso ssh sin embargo en el presente tutorial solo lo vamos a instalar a nivel local y la aplicación quedará funcional desde el terminal, que para el ejemplo es GitBash desde Visual Studio Code.
Instalación de aplicaciones necesarias para el aprovisionamiento del Sistema ChatGPT con nodejs
Instalación de Visual Studio Code
El editor de código que recomiendo para llevar a cabo el proceso es Visual Studio Code, ya que permite trabajar desde la terminal directamente y editar el código al mismo tiempo.
El siguiente es el enlace de descarga de Visual Studio Code:
https://code.visualstudio.com/
Instalación de node.js
Se debe instalar node.js para poder instalar un servidor local que interactue con la API de ChatGPT, te recomiendo instalar node.js incluso si ya lo tienes instalado, para que lo actualices a la versión homologada más cercana, en el siguiente enlace puedes descargar node.js:
Instalación de Git
Git es un gestor de repositorios que en Windows instala Git Bash que va a ser la consola con la que vamos a trabajar, la única recomendación adicional es añadir Git a la PATH de Windows, esta opción sale disponible en el proceso de instalación. En el siguiente enlace puedes descargar Git
Instalación de las dependencias
Desde consola en Visual Studio Code, creas la carpeta del proyecto donde vas a instalar el sistema, después pulsas en ver, luego en terminal, eliges la opción de Git Bash y desde ahí en adelante empieza la lista de comandos. con el sigiente comando incializas node para instalar sus dependencias:
npm init -y
Dentro de la carpeta de tu proyecto se creará un documento llamado package.json este documento organiza las depedencias de tu proyecto.
Creación del archivo .env
En adición creas un archivo .env, en este archivo se va a guardar la llave del API de ChatGPT3, luego con una librería llamada dotenv aplicaremos la lógica para acceder de manera segura a la API KEY.
dotenv sirve para cargar variables de entorno en un documento de extensión .env a process.env. El paquete dotenv permite mantener las claves de API, contraseñas o cualquier variable confidencial fuera de tu código.
Dentro del archivo .env pongo lo siguiente y en vez de donde dice tu api key, ponemos la llave del API que nos provee OpenAI
API_KEY=tu api key
Para crear la dependencia dotenv desde consola ejecuto el siguiente comando:
npm i dotenv openai
Creación del documento script.js
En este documento es donde estará la lógica del software, será el archivo al que hacé referencia cuando cree el comando cweb en el apartado scripts del packaje.json
A continuación se muestra el archivo script.js
// lee la llave de la API desde el archivo .env
// y crea una instancia de la API de OpenAI
import { config } from "dotenv"
// importa la configuración de dotenv
config()
// importa la clase OpenAIApi y Configuration
import { Configuration, OpenAIApi } from "openai"
// importa la clase readline para leer la entrada del usuario en consola
import readline from "readline"
// crea una instancia de la API de OpenAI
const openai = new OpenAIApi(new Configuration({ apiKey: process.env.API_KEY }))
// crea una interfaz para leer la entrada del usuario
const userInterface = readline.createInterface({
input: process.stdin,
output: process.stdout
})
// muestra un mensaje de bienvenida
userInterface.prompt()
// lee la entrada del usuario y la envía a la API de OpenAI
userInterface.on("line", async input => {
const res = await openai.createChatCompletion({
model: "gpt-3.5-turbo",
messages:[{role:"user", content: input }],
})
// muestra la respuesta de la API de OpenAI
console.log(res.data.choices[0].message.content)
userInterface.prompt()
})
El siguiente es el archivo package.json se debe modificar el parámetro type por la opción module, el archivo quedaría de la siguiente forma:
{
"name": "chatgpt-nodejs",
"version": "1.0.0",
"description": "",
"type":"module",
"main": "index.js",
"scripts": {
"cweb": "node script.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"dotenv": "^16.0.3",
"openai": "^3.2.1"
}
}
Archivos ChatGPT con nodejs
Así se ven los archivos de tu proyecto, si realizas el paso a paso tal como este tutorial
Cualquier duda que tengas en el proceso te puedes contactar conmigo, te puedo ayudar con cualquier desarrollo a medida que requieras, igual te recomiendo que recorras mi blog, tanto en mis aplicaciones gratuitas, aplicaciones de pago o mis tutoriales, mayormente de PHP, Node.js, Python.