Con OpenAI ahora soportando modelos hasta GPT-4 Turbo, los desarrolladores de Python tienen una oportunidad increíble para explorar funcionalidades avanzadas de IA. Este tutorial ofrece una mirada en profundidad sobre cómo integrar la API de ChatGPT en tus scripts de Python, guiándote a través de las etapas iniciales de configuración y llevándote a un uso efectivo de la API.
La API de ChatGPT se refiere a la interfaz de programación que permite a los desarrolladores interactuar y utilizar modelos GPT para generar respuestas conversacionales. Pero en realidad es solo la API universal de OpenAI que funciona para todos sus modelos.
Como GPT-4 Turbo es más avanzado y tres veces más económico que GPT-4, nunca ha habido un mejor momento para aprovechar esta potente API en Python, ¡así que comencemos!
Configurar tu entorno
Para comenzar, te guiaremos a través del proceso de configuración de tu entorno para trabajar con la API de OpenAI en Python. Los primeros pasos incluyen instalar las bibliotecas necesarias, configurar el acceso a la API y manejar las claves de API y la autenticación.
Instalación de bibliotecas de Python necesarias
Antes de comenzar, asegúrate de tener Python instalado en tu sistema. Recomendamos usar un entorno virtual para mantener todo organizado. Puedes crear un entorno virtual con el siguiente comando:
python -m venv chatgpt_env
Activa el entorno virtual ejecutando:
chatgpt_env\Scripts\activate
(Windows)source chatgpt_env/bin/activate
(macOS o Linux)
A continuación, necesitarás instalar las bibliotecas de Python requeridas que incluyen la biblioteca de cliente de OpenAI para Python para interactuar con la API de OpenAI, y el paquete python-dotenv para manejar la configuración. Para instalar ambos paquetes, ejecuta el siguiente comando:
pip install openai python-dotenv
Configurar el acceso a la API de OpenAI
Para realizar una solicitud a la API de OpenAI, primero debes registrarte en la plataforma de OpenAI y generar tu clave de API única. Sigue estos pasos:
- Visita la página de Claves de API de OpenAI y crea una nueva cuenta, o inicia sesión si ya tienes una cuenta.
- Una vez que hayas iniciado sesión, navega a la sección de claves de API y haz clic en Crear nueva clave secreta.
- Copia la clave de API generada para su uso posterior. De lo contrario, tendrás que generar una nueva clave de API si la pierdes. No podrás ver las claves de API a través del sitio web de OpenAI.
página de claves de API de OpenAI
Clave de API generada que puede ser utilizada ahora
Clave de API y Autenticación
Después de obtener tu clave de API, recomendamos almacenarla como una variable de entorno por cuestiones de seguridad. Para administrar variables de entorno, utiliza el paquete python-dotenv. Para configurar una variable de entorno que contenga tu clave de API, sigue estos pasos:
-
Crea un archivo llamado
.env
en el directorio de tu proyecto. -
Añade la siguiente línea al archivo
.env
, reemplazandoyour_api_key
con la clave de API real que copiaste anteriormente:CHAT_GPT_API_KEY=your_api_key
. -
En tu código Python, carga la clave de API desde el archivo
.env
usando la funciónload_dotenv
del paquete python-dotenv:
import openai
from openai import OpenAI
import os
from dotenv import load_dotenv
# Cargar la clave de API desde el archivo .env
load_dotenv()
client = OpenAI(api_key=os.environ.get("CHAT_GPT_API_KEY"))
Nota: En la versión más reciente de la biblioteca de Python de OpenAI, debes instanciar un cliente de OpenAI para realizar llamadas a la API, como se muestra a continuación. Este es un cambio con respecto a las versiones anteriores, donde se utilizarían directamente métodos globales.
Ahora que has agregado tu clave API y tu entorno está configurado y listo para usar la API de OpenAI en Python. En las siguientes secciones de este artículo, exploraremos la interacción con la API y la construcción de aplicaciones de chat utilizando esta poderosa herramienta.
Recuerda agregar el fragmento de código anterior a cada sección de código a continuación antes de ejecutar.
Usando la API de OpenAI en Python
Después de cargar la API desde el archivo .env
, podemos comenzar a usarla dentro de Python. Para usar la API de OpenAI en Python, podemos realizar llamadas a la API utilizando el objeto cliente. Luego, podemos pasar una serie de mensajes como entrada a la API y recibir un mensaje generado por el modelo como salida.
Creando una solicitud simple de ChatGPT
-
Asegúrate de haber completado los pasos anteriores: crear un entorno virtual, instalar las bibliotecas necesarias y generar tu clave secreta de OpenAI y el archivo
.env
en el directorio del proyecto. -
Utiliza el siguiente fragmento de código para configurar una solicitud simple de ChatGPT:
# Crear una completación de chat
chat_completion = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "query"}]
)
print(chat_completion.choices[0].message.content)
Aquí, client.chat.completions.create
es una llamada al método en el objeto client
. El atributo chat
accede a las funcionalidades específicas de chat de la API, y completions.create
es un método que solicita al modelo de IA que genere una respuesta o completación basada en la entrada proporcionada.
Reemplaza el query
con el prompt que deseas ejecutar, y siéntete libre de utilizar cualquier modelo GPT admitido en lugar del GPT-4 seleccionado anteriormente.
Manejo de errores
Al realizar solicitudes, pueden ocurrir varios problemas, incluidos problemas de conectividad de red, exceder límites de tasa o otros códigos de respuesta no estándar. Por lo tanto, es esencial manejar correctamente estos códigos de estado. Podemos usar bloques try
y except
de Python para mantener el flujo del programa y un mejor manejo de errores:
# Intentar crear una completación de chat
try:
chat_completion = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "query"}],
temperature=1,
max_tokens=150
# Ajustar el número de tokens según sea necesario
)
print(chat_completion.choices[0].message.content)
except openai.APIConnectionError as e:
print("The server could not be reached")
print(e.__cause__)
except openai.RateLimitError as e:
print("A 429 status code was received; we should back off a bit.")
except openai.APIStatusError as e:
print("Another non-200-range status code was received")
print(e.status_code)
print(e.response)
Nota: necesitas tener créditos disponibles para poder utilizar cualquier modelo de la API de OpenAI. Si han pasado más de tres meses desde la creación de tu cuenta, es probable que tus créditos gratuitos hayan caducado, y tendrás que comprar créditos adicionales (un mínimo de $5).
A continuación, te presentamos algunas formas de configurar aún más tus solicitudes a la API:
- Máximo de Tokens. Limita la longitud máxima de la salida posible según tus necesidades estableciendo el parámetro
max_tokens
. Esto puede ser una medida de ahorro de costos, pero ten en cuenta que simplemente corta el texto generado para no superar el límite, no hace que la salida en general sea más corta. - Temperatura. Ajusta el parámetro de temperatura para controlar la aleatoriedad. (Valores más altos hacen que las respuestas sean más diversas, mientras que valores más bajos producen respuestas más consistentes.)
Si algún parámetro no se establece manualmente, utiliza el valor predeterminado del modelo respectivo, como 0 — 7 y 1 para GPT-3.5-turbo y GPT-4, respectivamente.
Además de los parámetros anteriores, hay numerosos otros parámetros y configuraciones que puedes realizar para aprovechar las capacidades de GPT exactamente como deseas. Se recomienda estudiar la documentación de la API de OpenAI para referencia.
Sin embargo, aún son necesarios prompts efectivos y contextuales, sin importar cuántas configuraciones de parámetros se realicen.
Técnicas Avanzadas en la Integración de la API
En esta sección, exploraremos técnicas avanzadas para integrar la API de OpenAI en tus proyectos de Python, centrándonos en la automatización de tareas, el uso de Python requests para la recuperación de datos y la gestión de solicitudes masivas a la API.
Automatización de tareas con la API de OpenAI
Para hacer tu proyecto de Python más eficiente, puedes automatizar diversas tareas utilizando la API de OpenAI. Por ejemplo, podrías querer automatizar la generación de respuestas por correo electrónico, soporte al cliente o creación de contenido.
A continuación, se muestra un ejemplo de cómo automatizar una tarea utilizando la API de OpenAI:
def automated_task(prompt):
try:
chat_completion = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}],
max_tokens=250
)
return chat_completion.choices[0].message.content
except Exception as e:
return str(e)
# Ejemplo de uso
generated_text = automated_task("Write an short note that's less than 50 words to the development team asking for an update on the current status of the software update")
print(generated_text)
Esta función toma un prompt y devuelve el texto generado como salida.
Uso de Python requests para la recuperación de datos
Puedes utilizar la popular biblioteca requests para interactuar directamente con la API de OpenAI sin depender de la biblioteca de OpenAI. Este método te da más control sobre la solicitud GET y flexibilidad en tus llamadas a la API.
El siguiente ejemplo requiere la biblioteca requests (si no la tienes, ejecuta primero pip install requests
):
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {api_key}',
}
data = {
'model': 'gpt-4', # Actualizar al modelo deseado
'messages': [{'role': 'user', 'content': 'Write an interesting fact about Christmas.'}]
}
response = requests.post('https://api.openai.com/v1/chat/completions', headers=headers, json=data)
print(response.json())
Este fragmento de código demuestra cómo realizar una solicitud POST a la API de OpenAI, con encabezados y datos como argumentos. La respuesta JSON se puede analizar y utilizar en tu proyecto de Python.
Gestión de solicitudes masivas a la API
Al trabajar con proyectos a gran escala, es crucial gestionar eficientemente las solicitudes de API. Esto se puede lograr mediante la incorporación de técnicas como el agrupamiento, la limitación y la caché.
- Agrupamiento. Combina múltiples solicitudes en una sola llamada de API, utilizando el parámetro
n
en la biblioteca de OpenAI:n = número_de_respuestas_necesarias
. - Limitación. Implementa un sistema para limitar la tasa a la que se realizan las llamadas de API, evitando un uso excesivo o sobrecargar la API.
- Caché. Almacena los resultados de las solicitudes de API completadas para evitar llamadas redundantes para promts o solicitudes similares.
Para gestionar efectivamente las solicitudes de API, lleva un registro de tu uso y ajusta tus configuraciones de configuración en consecuencia. Considera el uso de la biblioteca time para agregar retrasos o tiempos de espera entre solicitudes si es necesario.
La aplicación de estas técnicas avanzadas en tus proyectos de Python te ayudará a aprovechar al máximo la API de OpenAI, asegurando una integración de API eficiente y escalable.
Aplicaciones prácticas: API de OpenAI en proyectos del mundo real
Incorporar la API de OpenAI en tus proyectos del mundo real puede proporcionar numerosos beneficios. En esta sección, discutiremos dos aplicaciones específicas: la integración de ChatGPT en el desarrollo web y la construcción de chatbots con ChatGPT y Python.
Integración de ChatGPT en el desarrollo web
La API de OpenAI puede utilizarse para crear contenido interactivo y dinámico adaptado a las consultas o necesidades de los usuarios. Por ejemplo, podrías usar ChatGPT para generar descripciones de productos personalizadas, crear publicaciones de blog atractivas o responder a preguntas comunes sobre tus servicios. Con el poder de la API de OpenAI y un poco de código Python, las posibilidades son infinitas.
Considera este simple ejemplo de usar una llamada a la API desde un backend en Python:
def generate_content(prompt):
try:
response = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content
except Exception as e:
return str(e)
# Utiliza esta función para generar contenido
description = generate_content("Write a short description of a hiking backpack")
Luego, también puedes escribir código para integrar description
con tu HTML y JavaScript para mostrar el contenido generado en tu sitio web.
Creación de chatbots con ChatGPT y Python
Los chatbots impulsados por inteligencia artificial están comenzando a desempeñar un papel importante en la mejora de la experiencia del usuario. Al combinar las habilidades de procesamiento del lenguaje natural de ChatGPT con Python, puedes construir chatbots que entiendan el contexto y respondan de manera inteligente a las entradas del usuario.
Considera este ejemplo para procesar la entrada del usuario y obtener una respuesta:
def get_chatbot_response(prompt):
try:
response = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content
except Exception as e:
return str(e)
# Tomando la entrada del usuario desde la línea de comandos
user_input = input("Enter your prompt: ")
response = get_chatbot_response(user_input)
print(response)
Pero como no hay un bucle, el script terminará después de ejecutarse una vez, así que considera agregar lógica condicional. Por ejemplo, agregamos una lógica condicional básica donde el script seguirá buscando promts del usuario hasta que el usuario diga la frase de parada “salir” o “detener”.
Teniendo en cuenta la lógica mencionada, nuestro código final completo para ejecutar un chatbot en el punto de conexión de la API de OpenAI podría verse así:
from openai import OpenAI
import os
from dotenv import load_dotenv
# Cargar la clave de API desde el archivo .env
load_dotenv()
client = OpenAI(api_key=os.environ.get("CHAT_GPT_API_KEY"))
def get_chatbot_response(prompt):
try:
response = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content
except Exception as e:
return str(e)
while True:
user_input = input("You: ")
if user_input.lower() in ["exit", "quit"]:
print("Chat session ended.")
break
response = get_chatbot_response(user_input)
print("ChatGPT:", response)
Así es como se ve cuando se ejecuta en el símbolo del sistema de Windows.
Con suerte, estos ejemplos te ayudarán a comenzar a experimentar con la IA ChatGPT. En general, OpenAI ha abierto enormes oportunidades para que los desarrolladores creen nuevos y emocionantes productos utilizando su API, y las posibilidades son infinitas.
Limitaciones y precios de la API de OpenAI
Si bien la API de OpenAI es potente, hay algunas limitaciones:
-
Almacenamiento de datos. OpenAI conserva tus datos de API durante 30 días, y el uso de la API implica consentimiento para el almacenamiento de datos. Ten cuidado con los datos que envías.
-
Capacidad del modelo. Los modelos de chat tienen un límite máximo de tokens. (Por ejemplo, GPT-3 admite 4096 tokens.) Si una solicitud de API excede este límite, necesitarás truncar o omitir texto.
-
Precios. La API de OpenAI no está disponible de forma gratuita y sigue su propio esquema de precios, separado de las tarifas de suscripción del modelo. Para obtener más información sobre los precios, consulte los detalles de precios de OpenAI. (¡Una vez más, GPT-4 Turbo es tres veces más barato que GPT-4!)
Conclusión
Explorar el potencial del modelo API de ChatGPT en Python puede aportar avances significativos en diversas aplicaciones, como soporte al cliente, asistentes virtuales y generación de contenido. Al integrar esta potente API en tus proyectos, puedes aprovechar las capacidades de los modelos GPT de manera fluida en tus aplicaciones de Python.
Si disfrutaste este tutorial, también podrías disfrutar de estos:
Source:
https://www.sitepoint.com/python-build-ai-tools-openai-api/