Con ansias de aprender y experimentar, decidí probar la API que ofrece OPENAI para añadir un toque de inteligencia adicional a nuestro producto. De hecho, todo este artículo está siendo redactado con la ayuda de ChatGPT.
ChatGPT nos deja su mensaje
Antes de comenzar, le pedí a ChatGPT que nos deje un mensaje:
¡Hola a todos los lectores de este artículo! Como modelo de lenguaje de inteligencia artificial, me complace ser parte de su experiencia de lectura y espero que haya sido informativo e interesante para ustedes. Recuerden siempre tener curiosidad y sed de conocimiento, y aprovechen las herramientas que están a su disposición para aprender y crecer. ¡Gracias por leer!
Primero lo importante: La plata
Para comenzar un proyecto con una tecnología desconocida, tenemos que hacernos dos preguntas: ¿Cuánto cuesta? y ¿Es difícil de utilizar?
El costo lo podemos obtener de la siguiente página: https://openai.com/pricing
Nos vamos a enfocar en los siguientes modelos:
A día de hoy (Marzo de 2023), estos son los precios.
Chat es el conocido como ChatGPT, mientras que InstructGPT son IAs de distintos precios y niveles, entrenadas para desenvolverse bajo ciertos contextos.
Lo importante es que tenemos una capa gratuita de 3 meses para hacer pruebas.
La documentación, por otro lado, esta muy bien explicada.
Documentación de ChatGPT:
https://platform.openai.com/docs/guides/chat
Documentación de InstructGPT:
https://platform.openai.com/docs/api-reference/completions
Segundo: Obtener las api keys
Crear una cuenta en OpenAI: Antes de comenzar, vas a necesitar crear una cuenta en OpenAI. Si ya tenes una, podes saltar al siguiente paso. Para registrarte, entra a https://www.openai.com/signup/ y seguí las instrucciones para completar el proceso de registro.
Acceder al panel de desarrollador: Una vez que hayas iniciado sesión en tu cuenta de OpenAI, accedé al panel de desarrollador en https://platform.openai.com/signup/.
Habilitar la API de ChatGPT: Si aún no habilitaste la API de ChatGPT, debes hacerlo. En la sección de "APIs" de tu panel de desarrollador, busca la opción de "ChatGPT API" y activala. Es posible que tengas que proporcionar información adicional o aceptar términos de servicio.
Generar las credenciales de la API: Anda a la sección de "API Keys" en tu panel de desarrollador. Ahí podes ver tus claves de API existentes y generar nuevas. Hacé clic en el botón "Create API Key" para generar una nueva clave de API. Asegurate de guardar esta clave en un lugar seguro, ya que será necesaria para autenticarte en tus llamadas a la API.
Tercero: Al código!
Vamos a ver un ejemplo con Node.JS y Typescript:
Iniciemos el proyecto
npm init
Instalamos las dependencias necesarias:
npm install openai axios
npm install --save-dev typescript @types/node
Creamos nuestro archivo
tsconfig.json
para compilar TypeScript a JavaScript:
{
"compilerOptions": {
"module": "commonjs",
"esModuleInterop": true,
"target": "es6",
"noImplicitAny": true,
"moduleResolution": "node",
"sourceMap": true,
"outDir": "dist",
"strict": true,
"baseUrl": ".",
"paths": {
"*": ["node_modules/*"]
},
"allowSyntheticDefaultImports": true,
"resolveJsonModule": true
},
"include": ["src/**/*"]
}
Creamos un archivo
src/chatgpt.ts
para implementar la función que llama a la API de ChatGPT:
import * as openai from 'openai';
// Reemplaza 'tu_clave_de_api' con tu clave de API real
openai.apiKey = 'tu_clave_de_api';
export async function chatGPT(prompt: string): Promise<string> {
try {
const response = await openai.Completion.create({
engine: 'text-davinci-002',
prompt: prompt,
max_tokens: 50,
stop: null,
temperature: 0.5,
});
return response.choices[0].text.trim();
} catch (error) {
console.error('Error al llamar a ChatGPT:', error);
throw error;
}
}
Creamos un archivo
src/index.ts
para utilizar la función chatGPT:
// src/index.ts
import { chatGPT } from './chatgpt';
async function main() {
const prompt = 'Ejemplo de pregunta para ChatGPT';
const respuesta = await chatGPT(prompt);
console.log(`Pregunta: ${prompt}`);
console.log(`Respuesta: ${respuesta}`);
}
main();
Compila y ejecuta el código TypeScript:
npx tsc
node dist/index.js
Lo que hacemos dentro del archivo src/chatgpt.ts
es usar los completion (InstructGPT) que mencioné arriba, el motor en este caso usamos text-davinci-002, podemos cambiarlo al que nos guste, aunque estuve haciendo pruebas y los mas básicos (y baratos) no funcionan para charlas básicas.
Si queres ver la lista de engines, es esta: https://platform.openai.com/docs/models/gpt-3
ó