Artículo
· 19 jun, 2023 Lectura de 9 min

Integración Open AI con IRIS

 

 

Como todos ya conocéis, el mundo de la inteligencia artificial ya está aquí y todos quieren usarlo para su beneficio.

Hay muchas plataformas que ofertan servicios de inteligencia artificial de forma gratuita, por suscripción o privadas, pero la que mas “ruido” ha hecho en el mundo de la informática es Open AI, sobre todo por sus más famosos servicios: ChatGPT y DALL-E

<--break->¿Qué es Open AI?

Open AI es un laboratorio de investigación de inteligencia artificial sin ánimo de lucro fundada en 2015 por Sam Altman, Ilya Sutskever, Greg Brockman, Wojciech Zaremba, Elon Musk, John Schulman y Andrej Karpathy con el objetivo de promocionar y desarrollar inteligencia artificial amigable y que beneficie a la humanidad en su conjunto.

Desde su fundación, se han ido liberando algunos productos que, si se usan con buenos fines, son una herramienta muy potente. Pero como toda nueva tecnología, existen miedos por que pueden ser usados para delinquir o hacer el mal.

Decidí probar el servicio ChatGPT y le pregunté cuál era la definición de inteligencia artificial. La respuesta que recibí fue un cúmulo de nociones encontradas en Internet y resumidas de tal forma que un humano respondería

En resumen, una IA solo puede responder utilizando la información utilizada para entrenarla. Empleando sus algoritmos internos y los datos que se le alimentan durante el entrenamiento, podría componer artículos, poemas o incluso fragmentos de código informático.

La inteligencia artificial tendrá un impacto considerable en la industria y, en última instancia, lo revolucionará todo... Quizás se están exagerando las expectativas de cómo afectará la inteligencia artificial a nuestro futuro, por lo que debemos comenzar a utilizarla correctamente para el bien común.

Estamos cansados de escuchar que esta nueva tecnología lo cambiará todo y que ChatGPT es la herramienta que pondrá nuestro mundo patas arriba, tal como lo hizo su hermano GPT-4. Estas herramientas tampoco dejarán a la gente sin trabajo, ni van a gobernar el mundo (como Skynet). Lo que estamos tratando de analizar aquí es la tendencia. Empezamos por mirar dónde estábamos antes para entender lo que hemos conseguido hasta ahora y así anticipar dónde nos encontraremos en el futuro.

En 2020, el psicólogo y científico cognitivo Gary Marcus publicó un artículo analizando cómo funcionaba GPT-2. Realizó un estudio metódico de su funcionamiento que reveló que ese tipo de herramienta en realidad no lograba comprender qué estaba escribiendo ni qué órdenes recibía.

"He aquí el problema: Tras una inspección cuidadosa, se hace evidente que el sistema no tiene idea de lo que está hablando: no puede seguir una secuencia simple de eventos ni tener una idea confiable de lo que podría suceder a continuación."

Puedes ver el artículo entero en el siguiente enlace: https://thegradient.pub/gpt2-and-the-nature-of-intelligence/

¡Puedes presenciar claramente la evolución aquí! GPT-3 (2020) tuvo que ser entrenado usando suficientes entradas que indicaran lo que quería lograr, mientras que la versión actual de GPT-4 puede usar un lenguaje natural que hace posible dar esas entradas de una manera más fácil. Ahora "parece" entendernos además de saber de qué está hablando.

Ahora, cuando usamos el mismo ejemplo diseñado por Gary Marcus en 2020 para GPT-2, obtenemos el resultado esperado:

 

OpenAI actualmente puede brindarnos un conjunto de herramientas que han evolucionado mucho de manera sorprendentemente rápida y que, si se combinan adecuadamente, nos facilitarán mucho obtener un resultado más eficiente en comparación con el pasado.

¿Qué productos ofrece OpenAI?

Voy a hablar de los dos más conocidos, como son DALL-E y Chat-GPT. No obstante, también cuentan con otros servicios, como Whisper, que transcribe el audio a texto e incluso lo traduce a otro idioma, o Embeddings, que nos permite medir la relación de las cadenas de texto para búsquedas, recomendaciones, agrupaciones, etc…

¿Qué necesito para usar estos servicios?

Deberá crear una cuenta de OpenAI, que es muy fácil de hacer, y en ese momento estará listo para usar sus servicios directamente a través de su sitio web.

Chat: https://chat.openai.com

DALL-E: https://labs.openai.com

Queremos integrar estos servicios de IRIS, por lo que debemos usar su API para acceder a ellos. Primero, debemos crear una cuenta y proporcionar un método de pago para poder usar la API. El costo es relativamente pequeño y depende del uso que le quieras dar. Cuantos más tokens consumas, más tendrás que pagar 😉

¿Qué es un token?

Es una forma que utilizan los modelos para comprender y procesar los textos. Los tokens pueden ser palabras o simplemente fragmentos de caracteres. Por ejemplo, la palabra "hamburguesa" se divide en los mosaicos "ham", "bur", "gue” y ”sa", mientras que una palabra común corta como "pera" es un solo mosaico. Muchos tokens comienzan con un espacio en blanco, por ejemplo, " hola" y " adiós".

¿Es complicado utilizar la API?

No, en absoluto. Siguiendo estos pasos, no tendrás ningún problema:

Paso 1: Crear una API Key

Seleccionar la opción "View API Key" dentro del menú de tu usuario

 

Paso 2: crea una nueva clave secreta

Presione el botón en la parte inferior de la sección Claves API

 

MUY IMPORTANTE: Una vez creada la clave secreta, no se puede recuperar en ningún momento, así que recuerda guardar esa información en un lugar seguro.

Paso 3: Defina el nombre de su organización

La definición de su organización no es obligatoria pero sí recomendable. Es una parte del encabezado de las llamadas a la API. También debe copiar el código de su organización para su uso posterior.

 Puedes modificarlo tantas veces como quieras.

Paso 4: prepare la llamada a la API utilizando la clave secreta y el ID de la organización

Como parte de la llamada a la API, debe usar un encabezado de autenticación de token de portador e indicar la clave secreta.

También debe indicarse como un parámetro de encabezado junto al ID de la organización.

Parámetro de cabecera Valor
api-key sk-MyPersonalSecretKey12345
OpenAI-Organization org-123ABCFakeId

Este sería un ejemplo de una invocación.

POST https://api.openai.com/v1/images/create
header 'Authorization: Bearer sk-MyPersonalSecretKey12345'
header 'api-key: sk-MyPersonalSecretKey12345'
header 'OpenAI-Organization: org-123ABCFakeId '
header 'Content-Type: application/json'

Esta configuración es común para todos los puntos finales, así que veamos cómo funcionan algunos de sus métodos más conocidos.

Models

Endpoint: GET https://api.openai.com/v1/models

Puedes descargar todos los modelos que OpenAI ha definido para ser utilizados. Sin embargo, cada uno de esos modelos tiene características diferentes. El modelo más reciente y actualizado para usar en Chat es "gpt-4". Tenga en cuenta que todos los ID de modelos están en minúsculas.

Si no se proporciona el nombre del modelo, devolverá todos los modelos existentes.

Puede ver sus características y dónde puede usarlo en la página de documentación de OpenAI https://platform.openai.com/docs/models/overview

Chat

Endpoint: POST https://api.openai.com/v1/chat/completions

Te permite crear una conversación con el modelo indicado o a través de un aviso. Puedes indicar cuántos tokens quieres usar como máximo y cuándo debes detener la conversación.

Los parámetros de entrada serán los siguientes:

  • model: Requriedo. Este es el ID del modelo a utilizar. Puede usar la API de ListModels para ver todos los modelos disponibles o consultar nuestra descripción general del modelo para ver su descripción.
  • messages: Requerido. Contiene el tipo de mensaje que indica qué papel se va a utilizar. Puede definir un formulario de diálogo indicando si es el usuario o el asistente.
    • role: Es el papel de la persona del mensaje.
    • content: Es el contenido del mensaje.
  • temperature: Opcional. Describe la temperatura demostrada con un valor entre 0 y 2. Si se da un número muy alto, el resultado es más aleatorio. Si se elige un dígito bajo, la respuesta será más enfocada y determinista. Si no está definido, el valor predeterminado es 1.
  • stop: Opcional. Está relacionado con secuencias donde la API deja de generar más tokens. Si se indica "none", los tokens se generarán infinitamente.
  • max_tokens: Opcional. Describe el número máximo de tokens para generar el contenido y está limitado al número máximo de tokens permitido por el modelo.

Consulte el siguiente enlace para ver la documentación que describe este método: https://platform.openai.com/docs/api-reference/chat/create

Image

Endpoint: POST https://api.openai.com/v1/images/generations

Le permite crear una imagen como lo indica el parámetro de solicitud. Además, podemos definir el tamaño y la forma en que queremos que se devuelva el resultado, ya sea a través de un enlace o contenido en Base64.

Los parámetros de entrada serían como se menciona a continuación:

  • message: Requerido. Está relacionado con un texto que describe la imagen que queremos generar.
  • n: Opcional. Está relacionado con el número máximo de imágenes a generar. Este valor debe estar entre 1 y 10. Si no se indica, el valor por defecto es 1.
  • size: Opcional. Está relacionado con el tamaño de la imagen generada. El valor debe ser "256x256", "512x512" o "1024x1024". si no se indica, el valor por defecto es "1024x1024"
  • response_format: Opcional. Está relacionado con el formato de cómo desea que se devuelvan las imágenes generadas. Los valores deben ser "url" o "b64_json". Si no se indica, el valor por defecto es "url"

Consulte el siguiente enlace para ver la documentación que describe este método: https://platform.openai.com/docs/api-reference/images/create

¿Qué ofrece iris-openai?

Link: https://openexchange.intersystems.com/package/iris-openai

Este marco está diseñado para utilizar mensajes de solicitud y respuesta con las propiedades necesarias para conectarse con OpenAi y usar métodos como Chat, Modelos e Imágenes.

Puede configurar su producción de manera que le permita usar las clases de mensajería para llamar a una operación comercial que se conecta a la API de OpenAI.

Recuerde que debe configurar la producción para indicar los valores de Secret Key y Organization ID como se indicó anteriormente.

 

Si desea crear una imagen, debe producir una instancia de clase "St.OpenAi.Msg.Images.ImagesRequest" y completar los valores de las opciones para crear una nueva imagen.

Ejemplo:

Set image=##class(St.OpenAi.Msg.Images.ImagesRequest).%New()
Set image.Operation = "generations"
Set image.Prompt = "Dos gatos con sombrero leyendo un comic"
Set image.NumOfImages = 2

Cuando termine, llama a la Business Operation "St.OpenAi.BO.Api.Connect"

 

Nota: En este caso, recuperará el enlace de dos imágenes creadas.

{
    "created": 1683482604,
    "data": [
        {
            "url": "https://link_of_image_01.png”
        },
        {
            "url": "https://link_of_image_02.png”
        }
    ]
}

Si se ha indicado que queremos operar un Base64 en lugar de un enlace, recuperará el siguiente mensaje:

{
    "created": 1683482604,
    "data": [
        {
            "b64_json": "iVBORw0KGgoAAAANSUhEUgAABAAAAAQACAIAAADwf7zUAAAAaGVYSWZNTQAqAAAACAACknwAAgAAACkAAAAmkoYAAgAAABgAAABQAAAAAE9wZW5BSS0tZjM5NTgwMmMzNTZiZjNkMDFjMzczOGM2OTAxYWJiNzUAAE1hZGUgd2l0aCBPcGVuQUkgREFMTC1FAAjcEcwAAQAASURBVHgBAAuE9HsBs74g/wHtAAL7AAP6AP8E+/z/BQYAAQH++vz+CQcH+fn+AgMBAwQAAPr++///AwD+BgYGAAIC/fz9//3+AAL7AwEF/wL+9/j9DQ0O/vz/+ff0CQUJAQQF/f/89fj4BwcD/wEAAfv//f4BAQQDAQH9AgIA/f3+AAABAgAA/wH8Af/9AQMGAQIBAvv+/////v/+/wEA/wEAAgMA//sCBAYCAQ”
        },
        {
            "b64_json": "D99vf7BwcI/v0A/vz9/wH8CQcI+vz8AQL9/vv+CAcF+wH/AwMA9/f8BwUEAwEB9fT+BAcKBAIB//7//gX5//v8/P7+DgkO+fr6/wD8AP8B/wAC/f4CAwD+/wT+Av79BwcE/Pz7+/sBAAD+AAQE//8BAP79AgIE///+AQABAv8BAwYA+vkB/v7/AwQE//7+/Pr6BAYCBgkE/f0B/Pr6AQP+BAED/gMC/fr+AwEC/v/+//7+CQcH+fz5BAYB9vf9BgQD+/n+BwYK/wD////9/gD5AwIDAAQE+/j6BAUD//rwAC/fr6+wYEBAQAA/4B//v6+/8AAAUDB/L49woGAQMDCfr7+wMCAQMHBPvy+AQJBQD+/wEEAfr3+gIGBgP/Af3++gUFAvz9//4A/wP/AQIGBPz+/QD7/wEDAgkGCPX29wMCAP4FBwX/+23"
        }
    ]
}

¿Qué hay a continuación?

Después del lanzamiento de este artículo, el contenido de iris-openai se ampliará para que sea posible utilizarlo para métodos Wisper y modificación de imágenes.

Otro artículo explicará cómo usar estos métodos y cómo incluir nuestras imágenes o hacer transcripciones del contenido de audio.

Comentarios (1)1
Inicie sesión o regístrese para continuar