En este tutorial, exploraremos las nuevas capacidades presentadas en el postrer maniquí de OpenAI, GPT-5. La modernización trae varias características potentes, que incluyen el parámetro de verbosidad, las llamadas de función de forma dispensado, la gramática sin contexto (CFG) y el razonamiento intrascendente. Veremos lo que hacen y cómo usarlos en la destreza. Mira el Códigos completos aquí.
Instalación de las bibliotecas
!pip install pandas openai
Para obtener una espita de API de OpenAI, visite https://platform.openai.com/settings/organization/api-keys y difundir una nueva esencia. Si es un nuevo legatario, es posible que deba sumar detalles de facturación y realizar un suscripción intrascendente de $ 5 para activar el ataque a la API. Mira el Códigos completos aquí.
import os
from getpass import getpass
os.environ('OPENAI_API_KEY') = getpass('Enter OpenAI API Key: ')
Parámetro de verbosidad
El parámetro de verbosidad le permite controlar cuán detalladas son las respuestas del maniquí sin cambiar su aviso.
- Bajo → Breve y conciso, intrascendente texto adicional.
- Medio (predeterminado) → detalle y claridad equilibrados.
- Detención → Muy detallado, ideal para explicaciones, auditorías o enseñanza. Mira el Códigos completos aquí.
from openai import OpenAI
import pandas as pd
from IPython.display import display
client = OpenAI()
question = "Write a poem about a detective and his first solve"
data = ()
for verbosity in ("low", "medium", "high"):
response = client.responses.create(
model="gpt-5-mini",
input=question,
text={"verbosity": verbosity}
)
# Extract text
output_text = ""
for item in response.output:
if hasattr(item, "content"):
for content in item.content:
if hasattr(content, "text"):
output_text += content.text
usage = response.usage
data.append({
"Verbosity": verbosity,
"Sample Output": output_text,
"Output Tokens": usage.output_tokens
})
# Create DataFrame
df = pd.DataFrame(data)
# Display nicely with centered headers
pd.set_option('display.max_colwidth', None)
styled_df = df.style.set_table_styles(
(
{'selector': 'th', 'props': (('text-align', 'center'))}, # Center column headers
{'selector': 'td', 'props': (('text-align', 'left'))} # Left-align table cells
)
)
display(styled_df)
Los tokens de salida se escalera aproximadamente linealmente con verbosidad: bajo (731) → medio (1017) → detención (1263).
Llamadas de funciones de forma dispensado
La función de la función de forma dispensado permite que GPT-5 envíe cargas enseres de texto sin procesar, como los scripts de Python, las consultas SQL o los comandos de shell, directamente a su utensilio, sin el formato JSON utilizado en GPT-4. Mira el Códigos completos aquí.
Esto hace que sea más realizable conectar GPT-5 a tiempos de ejecución externos como:
- Code Sandboxes (Python, C ++, Java, etc.)
- Bases de datos SQL (emite SQL sin procesar directamente)
- Entornos de shell (panorama listas para ejecutar)
- Generadores de configuración
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-5-mini",
input="Please use the code_exec tool to calculate the cube of the number of vowels in the word 'pineapple'",
text={"format": {"type": "text"}},
tools=(
{
"type": "custom",
"name": "code_exec",
"description": "Executes arbitrary python code",
}
)
)
print(response.output(1).input)
Esta salida muestra GPT-5 que genera código de pitón sin procesar que cuenta las vocales en la palabra piña, calcula el cubo de ese recuento e imprime entreambos títulos. En división de devolver un objeto JSON estructurado (como GPT-4 generalmente para las llamadas de herramientas), GPT-5 ofrece un código ejecutable simple. Esto permite surtir el resultado directamente en un tiempo de ejecución de Python sin un disección adicional.
Gramática sin contexto (CFG)
Una gramática sin contexto (CFG) es un conjunto de reglas de producción que definen cadenas válidas en un idioma. Cada regla reescribe un símbolo no terminal en terminales y/u otros no terminales, sin reconocer del contexto circundante.
Los CFG son enseres cuando desea restringir estrictamente la salida del maniquí para que siempre siga la sintaxis de un jerigonza de programación, formato de datos u otro texto estructurado, por ejemplo, avalar que SQL, JSON o código generados siempre sea sintácticamente correcto.
A modo de comparación, ejecutaremos el mismo script usando GPT-4 y GPT-5 con un CFG idéntico para ver cómo entreambos modelos se adhieren a las reglas de la gramática y cómo sus resultados difieren en precisión y velocidad. Mira el Códigos completos aquí.
from openai import OpenAI
import re
client = OpenAI()
email_regex = r"^(A-Za-z0-9._%+-)+@(A-Za-z0-9.-)+.(A-Za-z){2,}$"
prompt = "Give me a valid email address for John Doe. It can be a dummy email"
# No grammar constraints -- model might give prose or invalid format
response = client.responses.create(
model="gpt-4o", # or earlier
input=prompt
)
output = response.output_text.strip()
print("GPT Output:", output)
print("Valid?", bool(re.match(email_regex, output)))
from openai import OpenAI
client = OpenAI()
email_regex = r"^(A-Za-z0-9._%+-)+@(A-Za-z0-9.-)+.(A-Za-z){2,}$"
prompt = "Give me a valid email address for John Doe. It can be a dummy email"
response = client.responses.create(
model="gpt-5", # grammar-constrained model
input=prompt,
text={"format": {"type": "text"}},
tools=(
{
"type": "custom",
"name": "email_grammar",
"description": "Outputs a valid email address.",
"format": {
"type": "grammar",
"syntax": "regex",
"definition": email_regex
}
}
),
parallel_tool_calls=False
)
print("GPT-5 Output:", response.output(1).input)
Este ejemplo muestra cómo GPT-5 puede agregarse más a un formato específico al usar una gramática sin contexto.
Con las mismas reglas de gramática, GPT-4 produjo texto adicional en torno a la dirección de correo electrónico (“Claro, aquí hay un correo electrónico de prueba que puede usar para John Doe: (correo electrónico protegido)«), Que lo hace inválido de acuerdo con el requisito de formato ajustado.
GPT-5, sin secuestro, la salida exactamente (correo electrónico protegido)coincidir con la gramática y la nervio de pase. Esto demuestra la capacidad mejorada de GPT-5 para seguir las limitaciones CFG con precisión. Mira el Códigos completos aquí.
Razonamiento intrascendente
El modo de razonamiento intrascendente ejecuta GPT-5 con muy pocos o ningún tokens de razonamiento, reduciendo la latencia y ofreciendo un tiempo a la vez más rápido.
Es ideal para tareas deterministas y livianas como:
- Cuna de datos
- Formato
- Reescrituras cortas
- Clasificación simple
Correcto a que el maniquí omite la mayoría de los pasos de razonamiento intermedio, las respuestas son rápidas y concisas. Si no se especifica, el esfuerzo de razonamiento predeterminado a Medium. Mira el Códigos completos aquí.
import time
from openai import OpenAI
client = OpenAI()
prompt = "Classify the given number as odd or even. Return one word only."
start_time = time.time() # Start timer
response = client.responses.create(
model="gpt-5",
input=(
{ "role": "developer", "content": prompt },
{ "role": "user", "content": "57" }
),
reasoning={
"effort": "minimal" # Faster time-to-first-token
},
)
latency = time.time() - start_time # End timer
# Extract model's text output
output_text = ""
for item in response.output:
if hasattr(item, "content"):
for content in item.content:
if hasattr(content, "text"):
output_text += content.text
print("--------------------------------")
print("Output:", output_text)
print(f"Latency: {latency:.3f} seconds")