1. Construcción de solicitudes de API
1.1 Envío de solicitudes usando CURL
CURL es una herramienta de línea de comandos que admite el envío y recepción de datos utilizando varios protocolos como HTTP y HTTPS. Para enviar una solicitud a la API de OpenAI usando CURL, primero necesitas tener una clave de API válida y luego agregarla al encabezado de la solicitud.
Aquí tienes un ejemplo de un comando CURL utilizado para enviar una solicitud a la API de OpenAI:
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "¡Di que esto es una prueba!"}],
"temperature": 0.7
}'
Debes reemplazar $OPENAI_API_KEY
con tu clave de API. Por razones de seguridad, evita exponer tu clave de API en cualquier entorno público.
1.2 Análisis de los encabezados de la solicitud
En el comando CURL anterior, utilizamos dos encabezados de solicitud cruciales: Content-Type
y Authorization
.
-
Content-Type
: Esto informa al servidor que estamos enviando datos en formato JSON. Su valor es típicamenteapplication/json
. -
Authorization
: Esta es la credencial utilizada para autenticar la solicitud de la API, y su formato es siempreBearer (tu clave de API)
.
Asegurar la corrección de estos dos encabezados es crucial para el éxito de la solicitud.
1.3 Construcción del cuerpo de la solicitud
El cuerpo de la solicitud es una cadena con formato JSON que informa a OpenAI sobre nuestras intenciones. En esta solicitud, usamos model
para especificar el modelo que estamos utilizando, pasamos una matriz de messages
que define la entrada del usuario, y configuramos una temperature
para ajustar la variabilidad de la respuesta.
El JSON se ve así:
{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "¡Di que esto es una prueba!"}],
"temperature": 0.7
}
En este ejemplo, estamos solicitando al modelo que genere una respuesta de prueba basada en el mensaje de entrada.
1.4 Explicación detallada de los parámetros de la solicitud
Dentro del cuerpo de la solicitud, hay varios parámetros importantes a tener en cuenta:
-
model
: Especifica el modelo de IA que pretendemos utilizar. OpenAI proporciona múltiples modelos, cada uno con diferentes funcionalidades y efectos. -
messages
: Esta es una matriz que contiene uno o más objetos de mensaje, con cada mensaje que consiste en unrole
que proporciona el rol del mensaje ycontent
que representa el contenido del mensaje. -
temperature
: Controla la certeza de la respuesta. Untemperature
menor genera respuestas más seguras, mientras que un valor más alto conduce a más aleatoriedad.
2. Análisis de las respuestas de la API
2.1 Comprensión de la respuesta
Cuando envías una solicitud, el servidor devolverá un código de estado HTTP y posiblemente un cuerpo de respuesta. Típicamente, una solicitud exitosa recibirá un código de estado en la serie 200. Los datos JSON devueltos contienen el resultado de la solicitud, y un ejemplo de respuesta es el siguiente:
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1677858242,
"model": "gpt-3.5-turbo-1106",
"usage": {
"prompt_tokens": 13,
"completion_tokens": 7,
"total_tokens": 20
},
"choices": [
{
"message": {
"role": "assistant",
"content": "\n\n¡Esto es una prueba!"
},
"logprobs": null,
"finish_reason": "stop",
"index": 0
}
]
}
En esta respuesta, podemos ver el ID de finalización, la marca de tiempo de creación, el modelo utilizado, el uso de tokens y el contenido real de la respuesta (en el campo choices
).
2.2 Integridad y manejo de errores
El campo finish_reason
indica por qué la API dejó de producir más contenido. Los motivos comunes de finalización incluyen stop
, length
e idle
. Si ocurre un error, como exceder los límites de tokens o una clave de API incorrecta, recibirás el mensaje de error correspondiente y el código de estado. Es importante manejar estos errores adecuadamente para garantizar la continuidad de la experiencia del usuario y la estabilidad de tu aplicación. Para el manejo de errores, puedes decidir una estrategia adecuada basada en el código de estado devuelto y el mensaje de error, como volver a intentar la solicitud o brindar retroalimentación al usuario explicando el motivo del error.
2.3 Envío de solicitudes de API usando el SDK de Python
A continuación se muestra un ejemplo de cómo usar el SDK oficial de OpenAI Python para realizar llamadas a la API.
Primero, necesitas instalar la biblioteca openai, lo cual puedes hacer utilizando pip:
pip install --upgrade openai
A continuación, puedes usar el siguiente código en Python para realizar una solicitud de API similar al ejemplo anterior. Recuerda reemplazar YOUR_OPENAI_API_KEY
con tu clave de API.
from openai import OpenAI
cliente = OpenAI(
api_key="YOUR_OPENAI_API_KEY",
)
completado = cliente.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "Eres un asistente de desarrollo profesional, hábil para resolver diversos problemas de programación."},
{"role": "user", "content": "Escribe una función para quicksort en Go."}
]
)
print(completado.choices[0].message)