Logotipo de Zephyrnet

API OpenAI para principiantes: su guía de inicio fácil de seguir – KDnuggets

Fecha:

API OpenAI para principiantes: su guía inicial fácil de seguir
Imagen del autor
 

En este tutorial, aprenderemos cómo configurar y utilizar la API OpenAI para varios casos de uso. El tutorial está diseñado para que sea fácil de seguir, incluso para aquellos con conocimientos limitados de programación Python. Exploraremos cómo cualquiera puede generar respuestas y acceder a modelos de lenguaje grandes de alta calidad.

El API OpenAI permite a los desarrolladores acceder fácilmente a una amplia gama de modelos de IA desarrollados por OpenAI. Proporciona una interfaz fácil de usar que permite a los desarrolladores incorporar funciones inteligentes impulsadas por modelos OpenAI de última generación en sus aplicaciones. La API se puede utilizar para diversos fines, incluida la generación de texto, chat de varios turnos, incrustaciones, transcripción, traducción, conversión de texto a voz, comprensión de imágenes y generación de imágenes. Además, la API es compatible con curl, Python y Node.js. 

Para comenzar con la API OpenAI, primero debe crear una cuenta en openai.com. Anteriormente, a cada usuario se le otorgaba crédito gratuito, pero ahora los nuevos usuarios deben comprar crédito. 

Para comprar crédito, vaya a "Configuración", luego a "Facturación" y finalmente a "Agregar detalles de pago". Ingrese la información de su tarjeta de débito o crédito y asegúrese de desactivar la recarga automática. Una vez que hayas cargado 10 USD, podrás usarlo durante un año.

 

API OpenAI para principiantes: su guía inicial fácil de seguir
 

Creemos la clave API navegando a "Claves API" y seleccionando "Crear nueva clave secreta". Asígnale un nombre y haz clic en "Crear clave secreta".

 

API OpenAI para principiantes: su guía inicial fácil de seguir
 

Copie la API y cree una variable de entorno en la máquina local.

 

API OpenAI para principiantes: su guía inicial fácil de seguir
 

Utilizo Deepnote como mi IDE. Es fácil crear variables de entorno. Simplemente vaya a "Integración", seleccione "crear variable de entorno", proporcione un nombre y valor para la clave y cree la integración.

 

API OpenAI para principiantes: su guía inicial fácil de seguir
 

A continuación, instalaremos el paquete OpenAI Python usando pip. 

%pip install --upgrade openai

Ahora crearemos un cliente que pueda acceder a varios tipos de modelos a nivel global.

Si ha configurado su variable de entorno con el nombre "OPENAI_API_KEY", no necesita proporcionar al cliente OpenAI una clave API.

from openai import OpenAI

client = OpenAI()

Tenga en cuenta que solo debe proporcionar una clave API si el nombre de su variable de entorno es diferente del predeterminado.

import os
from openai import OpenAI

client = OpenAI(
  api_key=os.environ.get("SECRET_KEY"),
 )

Usaremos una función heredada para generar la respuesta. La función de finalización requiere el nombre del modelo, el mensaje y otros argumentos para generar la respuesta.

completion = client.completions.create(
    model="gpt-3.5-turbo-instruct",
    prompt="Write a short story about Elon Musk being the biggest troll.",
    max_tokens=300,
    temperature=0.7,
)
print(completion.choices[0].text)

 

El modelo GPT3.5 ha generado una historia sorprendente sobre Elon Musk. 

 

API OpenAI para principiantes: su guía inicial fácil de seguir
 

También podemos transmitir nuestra respuesta proporcionando un argumento adicional "flujo". 

En lugar de esperar la respuesta completa, la función de transmisión permite el procesamiento de la salida tan pronto como se genera. Este enfoque ayuda a reducir la latencia percibida al devolver el resultado del modelo de lenguaje token por token en lugar de hacerlo todo a la vez.

stream = client.completions.create(
    model="gpt-3.5-turbo-instruct",
    prompt="Write a Python code for accessing the REST API securely.",
    max_tokens=300,
    temperature=0.7,
    stream = True
)
for chunk in stream:
        print(chunk.choices[0].text, end="")

 

API OpenAI para principiantes: su guía inicial fácil de seguir

El modelo utilizó la finalización de chat API. Antes de generar la respuesta, exploremos los modelos disponibles.   

Puede ver la lista de todos los modelos disponibles o leer el fexibles página en la documentación oficial. 

print(client.models.list())

API OpenAI para principiantes: su guía inicial fácil de seguir
 

Usaremos la última versión de GPT-3.5 y le proporcionaremos una lista de un diccionario para indicaciones del sistema y mensajes de usuario. Asegúrese de seguir el mismo patrón de mensajes.

completion = client.chat.completions.create(
    model="gpt-3.5-turbo-1106",
    messages=[
        {
            "role": "system",
            "content": "You are an experienced data scientist, adept at presenting complex data concepts with creativity.",
        },
        {
            "role": "user",
            "content": "What is Feature Engineering, and what are some common methods?",
        },
    ],
)

print(completion.choices[0].message.content)

 

Como podemos ver, hemos generado un resultado similar al de la API heredada. Entonces, ¿por qué utilizar esta API? A continuación, aprenderemos por qué la API de finalización de chat es más flexible y fácil de usar.

Feature engineering is the process of selecting, creating, or transforming features (variables) in a dataset to improve the performance of machine learning models. It involves identifying the most relevant and informative features and preparing them for model training. Effective feature engineering can significantly enhance the predictive power of a model and its ability to generalize to new data.

Some common methods of feature engineering include:

1. Imputation: Handling missing values in features by filling them in with meaningful values such as the mean, median, or mode of the feature.

2. One-Hot Encoding: Converting categorical variables into binary vectors to represent different categories as individual features.

3. Normalization/Standardization: Scaling numerical features to bring t.........

 

Ahora aprenderemos cómo tener una conversación de varios turnos con nuestro modelo de IA. Para ello, agregaremos la respuesta del asistente a la conversación anterior y también incluiremos el nuevo mensaje en el mismo formato de mensaje. Después de eso, proporcionaremos una lista de diccionarios a la función de finalización del chat.

chat=[
    {"role": "system", "content": "You are an experienced data scientist, adept at presenting complex data concepts with creativity."},
    {"role": "user", "content": "What is Feature Engineering, and what are some common methods?"}
  ]
chat.append({"role": "assistant", "content": str(completion.choices[0].message.content)})
chat.append({"role": "user", "content": "Can you summarize it, please?"})

completion = client.chat.completions.create(
  model="gpt-3.5-turbo-1106",
  messages=chat
)

print(completion.choices[0].message.content)

 

El modelo entendió el contexto y nos resumió la ingeniería de características.

Feature engineering involves selecting, creating, or transforming features in a dataset to enhance the performance of machine learning models. Common methods include handling missing values, converting categorical variables, scaling numerical features, creating new features using interactions and polynomials, selecting important features, extracting time-series and textual features, aggregating information, and reducing feature dimensionality. These techniques aim to improve the model's predictive power by refining and enriching the input features.

Para desarrollar aplicaciones avanzadas, necesitamos convertir texto en incrustaciones. Estas incrustaciones se utilizan para búsqueda de similitudes, búsqueda semántica y motores de recomendación. Podemos generar incrustaciones proporcionando el texto de la API y el nombre del modelo. Es así de simple. 

text = "Data Engineering is a rapidly growing field that focuses on the collection, storage, processing, and analysis of large volumes of structured and unstructured data. It involves various tasks such as data extraction, transformation, loading (ETL), data modeling, database design, and optimization to ensure that data is accessible, accurate, and relevant for decision-making purposes."

DE_embeddings = client.embeddings.create(input=text, model="text-embedding-3-small")
print(chat_embeddings.data[0].embedding)

 

[0.0016297283582389355, 0.0013418874004855752, 0.04802832752466202, -0.041273657232522964, 0.02150309458374977, 0.004967313259840012,.......]

Ahora podemos convertir texto a voz, voz a texto y también traducirlo usando la API de audio. 

Transcripciones

Usaremos el Wi-Fi 7 lo cambiará todo Vídeo de YouTube y convertirlo a mp3. Después de eso, abriremos el archivo y lo proporcionaremos a la API de transcripción de audio.

audio_file= open("Data/techlinked.mp3", "rb")
transcript = client.audio.transcriptions.create(
  model="whisper-1",
  file=audio_file
)
print(transcript.text)

 

El modelo Whisper es asombroso. Tiene una transcripción perfecta del audio. 

The Consumer Electronics Show has officially begun in Las Vegas and we'll be bringing you all the highlights from right here in our regular studio where it's safe and clean and not a desert. I hate sand. The Wi-Fi Alliance announced that they have officially confirmed the Wi-Fi 7 standard and they've already started to certify devices to ensure they work together. Unlike me and Selena, that was never gonna last. The new standard will have twice the channel bandwidth of Wi-Fi 5, 6, and 6E, making it better for, surprise,......

Traducción

También podemos transcribir el audio en inglés a otro idioma. En nuestro caso, lo convertiremos al idioma urdu. Simplemente agregaremos otro argumento "idioma" y le proporcionaremos el código de idioma ISO "ur".

translations = client.audio.transcriptions.create(
    model="whisper-1",
    response_format="text",
    language="ur",
    file=audio_file,
)

print(translations)

 

La traducción para lenguas no latinas es imperfecta, pero utilizable para un producto mínimo viable.

کنسومر ایلیکٹرانک شاہی نے لاس بیگیس میں شامل شروع کیا ہے اور ہم آپ کو جمہوری بہترین چیزیں اپنے ریگلر سٹوڈیو میں یہاں جارہے ہیں جہاں یہ آمید ہے اور خوبصورت ہے اور دنیا نہیں ہے مجھے سانڈ بھولتا ہے وائ فائی آلائنٹس نے اعلان کیا کہ انہوں نے وائ فائی سیبن سٹانڈرڈ کو شامل شروع کیا اور انہوں ن........

Text to Speech

Para convertir su texto en audio con sonido natural, usaremos la API de voz y le proporcionaremos el nombre del modelo, el nombre del actor de voz y el texto de entrada. A continuación, guardaremos el archivo de audio en nuestra carpeta "Datos". 

response = client.audio.speech.create(
  model="tts-1",
  voice="alloy",
  input= '''I see skies of blue and clouds of white
            The bright blessed days, the dark sacred nights
            And I think to myself
            What a wonderful world
         '''
)

response.stream_to_file("Data/song.mp3")

 

Para escuchar el archivo de audio dentro de Deepnote Notebook, usaremos la función IPython Audio.

from IPython.display import Audio
Audio("Data/song.mp3")

 

API OpenAI para principiantes: su guía inicial fácil de seguir

La API de OpenAI proporciona a los usuarios acceso a un modelo multimodal a través de la función de finalización del chat. Para comprender imágenes, podemos utilizar el último modelo de visión GPT-4. 

En el argumento del mensaje, proporcionamos un mensaje para hacer preguntas sobre la imagen y la URL de la imagen. La imagen proviene de Pixabay. Asegúrese de seguir el mismo formato de mensaje para evitar errores.

response = client.chat.completions.create(
    model="gpt-4-vision-preview",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "Could you please identify this image's contents and provide its location?",
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://images.pexels.com/photos/235731/pexels-photo-235731.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2",
                    },
                },
            ],
        }
    ],
    max_tokens=300,
)

print(response.choices[0].message.content)

 

El resultado explica perfectamente la imagen. 

This is an image of a person carrying a large number of rice seedlings on a carrying pole. The individual is wearing a conical hat, commonly used in many parts of Asia as protection from the sun and rain, and is walking through what appears to be a flooded field or a wet area with lush vegetation in the background. The sunlight filtering through the trees creates a serene and somewhat ethereal atmosphere.

It's difficult to determine the exact location from the image alone, but this type of scene is typically found in rural areas of Southeast Asian countries like Vietnam, Thailand, Cambodia, or the Philippines, where rice farming is a crucial part of the agricultural industry and landscape.

 

En lugar de proporcionar una URL de imagen, también podemos cargar un archivo de imagen local y proporcionarlo a la API de finalización del chat. Para hacer esto, primero necesitamos descargar la imagen Manjeet Singh Yadav De pexels.com.

!curl -o /work/Data/indian.jpg "https://images.pexels.com/photos/1162983/pexels-photo-1162983.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2"

 

Luego, cargaremos la imagen y la codificaremos en formato base64. 

import base64

def encode_image(image_path):
  with open(image_path, "rb") as image_file:
    return base64.b64encode(image_file.read()).decode('utf-8')

image_path = "Data/indian.jpg"

# generating the base64 string
base64_image = encode_image(image_path)

 

En lugar de proporcionar la URL de la imagen, proporcionaremos los metadatos y la cadena base64 de la imagen.

response = client.chat.completions.create(
    model="gpt-4-vision-preview",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "Could you please identify this image's contents.",
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": f"data:image/jpeg;base64,{base64_image}"
                    },
                },
            ],
        }
    ],
    max_tokens=100,
)

print(response.choices[0].message.content)

 

La modelo analizó con éxito la imagen y proporcionó una explicación detallada al respecto.

The image shows a woman dressed in traditional Indian attire, specifically a classical Indian saree with gold and white colors, which is commonly associated with the Indian state of Kerala, known as the Kasavu saree. She is adorned with various pieces of traditional Indian jewelry including a maang tikka (a piece of jewelry on her forehead), earrings, nose ring, a choker, and other necklaces, as well as bangles on her wrists.

The woman's hairstyle features jasmine flowers arranged in

También podemos generar imágenes utilizando el modelo DALLE-3. Solo tenemos que proporcionar el nombre del modelo, el mensaje, el tamaño, la calidad y la cantidad de imágenes a la API de imágenes. 

response = client.images.generate(
  model="dall-e-3",
  prompt="a young woman sitting on the edge of a mountain",
  size="1024x1024",
  quality="standard",
  n=1,
)

image_url = response.data[0].url

 

La imagen generada se guarda en línea y puede descargarla para verla localmente. Para ello descargaremos la imagen con la función `request`, proporcionando la URL de la imagen y el directorio local donde desea guardarla. Después de eso, usaremos la función Imagen de la biblioteca Pillow para abrir y mostrar la imagen.

import urllib.request

from PIL import Image

urllib.request.urlretrieve(image_url, '/work/Data/woman.jpg')

img = Image.open('/work/Data/woman.jpg')

img.show()

 

Hemos recibido una imagen generada de alta calidad. ¡Es simplemente asombroso!

 

API OpenAI para principiantes: su guía inicial fácil de seguir
 

Si tiene dificultades para ejecutar alguna de las API de OpenAI Python, no dude en consultar mi proyecto en Nota profunda.

He estado experimentando con OpenAPI desde hace algún tiempo y terminamos usando solo 0.22 dólares en crédito, lo que me parece bastante asequible. Con mi guía, incluso los principiantes pueden empezar a crear sus propias aplicaciones de IA. Es un proceso simple: no es necesario entrenar su propio modelo ni implementarlo. Puede acceder a modelos de última generación utilizando la API, que mejora continuamente con cada nueva versión.

 

API OpenAI para principiantes: su guía inicial fácil de seguir
 

En esta guía, cubrimos cómo configurar la API OpenAI Python y generar respuestas de texto simples. También aprendemos sobre las API de chat multiturno, incrustaciones, transcripción, traducción, texto a voz, visión y generación de imágenes. 

Avíseme si desea que utilice estas API para crear una aplicación de IA avanzada. 

Gracias por leer.
 
 

Abid Ali Awan (@ 1abidaliawan) es un profesional científico de datos certificado al que le encanta crear modelos de aprendizaje automático. Actualmente, se está enfocando en la creación de contenido y escribiendo blogs técnicos sobre aprendizaje automático y tecnologías de ciencia de datos. Abid tiene una Maestría en Gestión de Tecnología y una licenciatura en Ingeniería de Telecomunicaciones. Su visión es construir un producto de IA utilizando una red neuronal gráfica para estudiantes que luchan contra enfermedades mentales.

punto_img

Información más reciente

punto_img