Reduza a latência das respostas do modelo quando grande parte da resposta já é conhecida.
As Saídas previstas permitem acelerar as respostas da API de Chat Completions quando muitos dos tokens de saída já são conhecidos. Isso é mais comum ao gerar novamente um arquivo de texto ou código com pequenas modificações. Você pode fornecer sua previsão usando o parâmetro de requisição prediction em Chat Completions.
As Saídas previstas já estão disponíveis nas versões mais recentes dos modelos gpt-4o, gpt-4o-mini, gpt-4.1, gpt-4.1-mini e gpt-4.1-nano. Continue lendo para saber como usar as Saídas previstas para reduzir a latência nas suas aplicações.
Exemplo de refatoração de código
As Saídas previstas são especialmente úteis para gerar novamente documentos de texto e arquivos de código com pequenas modificações. Digamos que você queira que o modelo GPT-4o refatore um trecho de código JavaScript e altere a propriedade username da classe User para email:
A maior parte do arquivo permanecerá inalterada, exceto pela linha 4 acima. Se você usar o texto atual do arquivo de código como previsão, poderá gerar novamente o arquivo inteiro com menor latência. Em arquivos maiores, essa economia de tempo se acumula rapidamente.
Veja abaixo um exemplo de uso do parâmetro prediction nos nossos SDKs para prever que a saída final do modelo será muito semelhante ao nosso arquivo de código original, que usamos como texto da previsão.
Refatore uma classe JavaScript com uma saída prevista
Observe os campos accepted_prediction_tokens e rejected_prediction_tokens no objeto usage. Neste exemplo, 14 tokens da previsão foram usados para acelerar a resposta, enquanto 2 foram rejeitados.
Observe que os tokens rejeitados continuam sendo cobrados como os demais tokens de conclusão
gerados pela API. Por isso, as Saídas previstas podem aumentar o custo das suas
requisições.
Exemplo de streaming
A redução de latência com as Saídas previstas é ainda maior quando você usa streaming nas respostas da API. Veja um exemplo do mesmo caso de uso de refatoração de código, agora usando streaming nos SDKs da OpenAI.
O texto que você fornece como previsão pode aparecer em qualquer parte da resposta gerada e ainda assim reduzir a latência da resposta. Digamos que o texto previsto seja o servidor Hono simples mostrado abaixo:
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,});
Você poderia pedir ao modelo para gerar novamente o arquivo com um 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.
A resposta ao prompt poderia ser algo assim:
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,});
Uma versão abreviada da resposta do modelo, sem o campo choices, ainda mostraria tokens de previsão aceitos, mesmo com o texto da previsão aparecendo tanto antes quanto depois do novo conteúdo adicionado à resposta:
Desta vez, nenhum token de previsão foi rejeitado, pois todo o conteúdo do arquivo fornecido como previsão foi usado na resposta final. Boa! 🔥
Limitações
Ao usar as Saídas previstas, considere os seguintes fatores e limitações.
As Saídas previstas são compatíveis apenas com as séries de modelos GPT-4o, GPT-4o-mini, GPT-4.1, GPT-4.1-mini e GPT-4.1-nano.
Ao fornecer uma previsão, os tokens fornecidos que não fizerem parte da conclusão final ainda serão cobrados pelas tarifas de tokens de conclusão. Consulte a propriedade rejected_prediction_tokens do objeto usage para saber quantos tokens não foram usados na resposta final.
Os seguintes parâmetros da API não são compatíveis com as Saídas previstas:
n: valores maiores que 1 não são aceitos
logprobs: não há suporte
presence_penalty: valores maiores que 0 não são aceitos
frequency_penalty: valores maiores que 0 não são aceitos