Reduce la latencia de las respuestas del modelo cuando gran parte de la respuesta se conoce de antemano.
Los resultados predichos te permiten acelerar las respuestas de la API de Chat Completions cuando muchos de los tokens de salida se conocen de antemano. Esto suele ocurrir cuando regeneras un archivo de texto o código con pequeñas modificaciones. Puedes proporcionar tu predicción mediante el parámetro de solicitud prediction de Chat Completions.
Los resultados predichos ya están disponibles con los modelos más recientes gpt-4o, gpt-4o-mini, gpt-4.1, gpt-4.1-mini y gpt-4.1-nano. Sigue leyendo para aprender a usar los resultados predichos para reducir la latencia en tus aplicaciones.
Ejemplo de refactorización de código
Los resultados predichos son especialmente útiles para regenerar documentos de texto y archivos de código con pequeñas modificaciones. Supongamos que quieres que el modelo GPT-4o refactorice un fragmento de código JavaScript y cambie la propiedad username de la clase User por email:
La mayor parte del archivo permanecerá sin cambios, salvo la línea 4 que se muestra arriba. Si usas el texto actual del archivo de código como predicción, puedes regenerar todo el archivo con menor latencia. Este ahorro de tiempo se acumula rápidamente en los archivos más grandes.
A continuación se muestra un ejemplo de cómo usar el parámetro prediction en nuestros SDK para predecir que la salida final del modelo será muy similar a nuestro archivo de código original, que usamos como texto de predicción.
Refactoriza una clase de JavaScript con un resultado predicho
Observa tanto accepted_prediction_tokens como rejected_prediction_tokens en el objeto usage. En este ejemplo, se usaron 14 tokens de la predicción para acelerar la respuesta y se rechazaron 2.
Ten en cuenta que los tokens rechazados se siguen facturando igual que los demás tokens de completado
generados por la API, por lo que los resultados predichos pueden aumentar los costos de tus
solicitudes.
Ejemplo de streaming
La reducción de latencia que ofrecen los resultados predichos es aún mayor cuando usas streaming para las respuestas de la API. Aquí tienes un ejemplo del mismo caso de uso de refactorización de código, pero con streaming en los SDK de OpenAI.
Cuando proporcionas texto de predicción, este puede aparecer en cualquier parte de la respuesta generada y aun así reducir su latencia. Supongamos que tu texto predicho es el servidor sencillo de Hono que se muestra a continuación:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25import { serve } from"@hono/node-server";import { serveStatic } from"@hono/node-server/serve-static";import { Hono } from"hono";constapp=newHono();app.get("/api", (c) => {return c.text("Hello Hono!");});// You will need to build the client code first: `pnpm run ui:build`.app.use("/*",serveStatic({rewriteRequestPath: (path) =>`./dist${path}`, }));constport=3000;console.log(`Server is running on port ${port}`);serve({ fetch: app.fetch, port,});
Podrías pedirle al modelo que regenere el archivo con un prompt como este:
Add a get route to this application that responds withthe text "hello world". Generate the entire applicationfile again with this route added, and with no othermarkdown formatting.
La respuesta al prompt podría ser similar a esta:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29import { serve } from"@hono/node-server";import { serveStatic } from"@hono/node-server/serve-static";import { Hono } from"hono";constapp=newHono();app.get("/api", (c) => {return c.text("Hello Hono!");});app.get("/hello", (c) => {return c.text("hello world");});// You will need to build the client code first: `pnpm run ui:build`.app.use("/*",serveStatic({rewriteRequestPath: (path) =>`./dist${path}`, }));constport=3000;console.log(`Server is running on port ${port}`);serve({ fetch: app.fetch, port,});
Una respuesta abreviada del modelo sin el campo choices seguiría mostrando tokens de predicción aceptados, aunque el texto de predicción apareciera tanto antes como después del contenido nuevo agregado a la respuesta:
Esta vez no hubo tokens de predicción rechazados porque se usó todo el contenido del archivo que predijimos en la respuesta final. ¡Genial! 🔥
Limitaciones
Al usar resultados predichos, debes considerar los siguientes factores y limitaciones.
Los resultados predichos solo son compatibles con las series de modelos GPT-4o, GPT-4o-mini, GPT-4.1, GPT-4.1-mini y GPT-4.1-nano.
Cuando proporcionas una predicción, los tokens proporcionados que no formen parte del completado final se siguen cobrando a las tarifas de los tokens de completado. Consulta la propiedad rejected_prediction_tokens del objeto usage para ver cuántos tokens no se usan en la respuesta final.