GPT Realtime 2.1 Mini
Precios de lista del proveedor, sin margen de plataforma, pago por uso. Estos son los precios de lista oficiales. Los clientes con sesión iniciada pueden ver los precios efectivos con descuentos del espacio de trabajo en /console/pricing. Precio de entrada efectivo con una tasa de aciertos de caché del 70%:$0.222/M. Caché de prefijos automática una vez que un prompt supera la longitud mínima, sin cambios de código; las lecturas en caché tienen descuento (hasta un 90% en los modelos actuales) y no hay tarifa de escritura.
Use GPT Realtime 2.1 Mini en 30 segundos
Compatible con OpenAI Realtime: conéctate por WebSocket, audio de entrada y de salida. WS /v1/realtime
import asyncio, base64, json, websockets
URL = "wss://synthorai.io/v1/realtime?model=gpt-realtime-2.1-mini"
HEADERS = {"Authorization": "Bearer sk-syn-...", "OpenAI-Beta": "realtime=v1"}
async def main():
async with websockets.connect(URL, additional_headers=HEADERS) as ws:
# 1) configure the speech-to-speech session
await ws.send(json.dumps({
"type": "session.update",
"session": {"modalities": ["audio", "text"], "voice": "alloy"},
}))
# 2) send input audio (base64 PCM16), then request a spoken reply
await ws.send(json.dumps({"type": "input_audio_buffer.append", "audio": pcm16_b64}))
await ws.send(json.dumps({"type": "input_audio_buffer.commit"}))
await ws.send(json.dumps({"type": "response.create"}))
# 3) stream the model's audio (and text) back
async for raw in ws:
ev = json.loads(raw)
if ev["type"] == "response.audio.delta":
play(base64.b64decode(ev["delta"])) # audio out
elif ev["type"] == "response.done":
break
asyncio.run(main())import WebSocket from "ws";
const ws = new WebSocket("wss://synthorai.io/v1/realtime?model=gpt-realtime-2.1-mini", {
headers: { Authorization: "Bearer sk-syn-...", "OpenAI-Beta": "realtime=v1" },
});
ws.on("open", () => {
// configure the speech-to-speech session
ws.send(JSON.stringify({ type: "session.update", session: { modalities: ["audio", "text"], voice: "alloy" } }));
// send input audio (base64 PCM16), then request a spoken reply
ws.send(JSON.stringify({ type: "input_audio_buffer.append", audio: pcm16Base64 }));
ws.send(JSON.stringify({ type: "input_audio_buffer.commit" }));
ws.send(JSON.stringify({ type: "response.create" }));
});
ws.on("message", (raw) => {
const ev = JSON.parse(raw.toString());
if (ev.type === "response.audio.delta") playAudio(Buffer.from(ev.delta, "base64")); // audio out
else if (ev.type === "response.done") ws.close();
});# Realtime is a WebSocket protocol — use a WS client such as websocat.
# Each line below is one OpenAI Realtime event (JSON) sent to the session.
websocat -H 'Authorization: Bearer sk-syn-...' -H 'OpenAI-Beta: realtime=v1' \
'wss://synthorai.io/v1/realtime?model=gpt-realtime-2.1-mini' <<'EOF'
{"type":"session.update","session":{"modalities":["audio","text"],"voice":"alloy"}}
{"type":"input_audio_buffer.append","audio":"<base64-pcm16>"}
{"type":"input_audio_buffer.commit"}
{"type":"response.create"}
EOF
# Responses stream back as response.audio.delta (base64 audio out) … response.donepackage main
import (
"net/http"
"github.com/gorilla/websocket"
)
func main() {
h := http.Header{}
h.Set("Authorization", "Bearer sk-syn-...")
h.Set("OpenAI-Beta", "realtime=v1")
c, _, err := websocket.DefaultDialer.Dial("wss://synthorai.io/v1/realtime?model=gpt-realtime-2.1-mini", h)
if err != nil {
panic(err)
}
defer c.Close()
// configure the speech-to-speech session, send audio, request a spoken reply
c.WriteJSON(map[string]any{"type": "session.update", "session": map[string]any{"modalities": []string{"audio", "text"}, "voice": "alloy"}})
c.WriteJSON(map[string]any{"type": "input_audio_buffer.append", "audio": pcm16B64})
c.WriteJSON(map[string]any{"type": "input_audio_buffer.commit"})
c.WriteJSON(map[string]any{"type": "response.create"})
for {
var ev struct {
Type string `json:"type"`
Delta string `json:"delta"`
}
if err := c.ReadJSON(&ev); err != nil {
return
}
if ev.Type == "response.audio.delta" {
playAudio(ev.Delta) // base64 audio out
} else if ev.Type == "response.done" {
return
}
}
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.WebSocket;
import java.util.concurrent.CompletionStage;
// JDK built-in WebSocket — no extra dependency needed.
WebSocket ws = HttpClient.newHttpClient().newWebSocketBuilder()
.header("Authorization", "Bearer sk-syn-...")
.header("OpenAI-Beta", "realtime=v1")
.buildAsync(URI.create("wss://synthorai.io/v1/realtime?model=gpt-realtime-2.1-mini"), new WebSocket.Listener() {
public CompletionStage<?> onText(WebSocket w, CharSequence data, boolean last) {
// handle response.audio.delta (base64 audio out) / response.done here
w.request(1);
return null;
}
}).join();
// configure the session, send input audio, then request a spoken reply
ws.sendText("{\"type\":\"session.update\",\"session\":{\"modalities\":[\"audio\",\"text\"],\"voice\":\"alloy\"}}", true);
ws.sendText("{\"type\":\"input_audio_buffer.append\",\"audio\":\"<base64-pcm16>\"}", true);
ws.sendText("{\"type\":\"input_audio_buffer.commit\"}", true);
ws.sendText("{\"type\":\"response.create\"}", true);Acerca de GPT Realtime 2.1 Mini
GPT Realtime 2.1 Mini es el miembro rentable de la familia realtime de OpenAI: un modelo de razonamiento destilado más rápido y económico para aplicaciones de voz en tiempo real, que lleva razonamiento y uso de herramientas al nivel mini.
- Conserva la ventana de contexto de 128K tokens y los 32K tokens máximos de salida de la generación 2.1, admite llamadas a funciones y caché de prompts, y factura la entrada de audio a menos de un tercio de la tarifa del buque insignia.
- Eso lo convierte en la elección natural para asistentes de voz siempre activos y agentes de voz de alto volumen de cara al cliente.
- Synthorai lo expone a través del mismo endpoint WebSocket /v1/realtime compatible con OpenAI que el resto de la línea realtime.
Especificaciones y límites
| Salida máxima (especificación del proveedor) | 32,000 |
| Modalidades | audio + text → audio + text |
| Funciones | realtime · speech-to-speech |
| Destacado | Faster, lower-cost distilled realtime reasoning model bringing reasoning and tool use to the mini tier; prompt caching supported; 128k context. |
| Caché de prompts | automático · prefijo mínimo de 1,024 tokens · TTL 5–10m, up to 1h |
Preguntas frecuentes
¿Se puede probar gratis la API de GPT Realtime 2.1 Mini?
GPT Realtime 2.1 Mini está actualmente en beta por invitación: el acceso se otorga por solicitud, no por registro abierto. Solicítelo desde la consola de Synthorai; una vez aprobado, se aplica la tarifa estándar de pago por uso, sin suscripción.
¿En qué destaca GPT Realtime 2.1 Mini?
Razonamiento destilado para voz en tiempo real, además de entrada de audio a menos de un tercio de la insignia y conserva 128K de contexto, herramientas y caché de prompts. Consulte la sección Acerca de para el panorama completo según las notas de lanzamiento del propio proveedor.
¿Cuánto cuesta GPT Realtime 2.1 Mini?
GPT Realtime 2.1 Mini cuesta $0.6 por millón de tokens de entrada y $2.4 por millón de tokens de salida en Synthorai: el precio de lista del proveedor, sin margen de plataforma. Los tokens de entrada en caché se facturan a $0.06/M.
¿Cómo se llama a la API de GPT Realtime 2.1 Mini?
GPT Realtime 2.1 Mini es un modelo speech-to-speech: conéctate por WebSocket a wss://synthorai.io/v1/realtime?model=gpt-realtime-2.1-mini con el SDK de OpenAI Realtime (o un WebSocket sin procesar) y transmite audio de entrada y de salida. No es una subida de archivo POST /v1/audio/transcriptions. Autentícate con tu clave sk-syn y replica la cabecera OpenAI-Beta.
¿Cómo obtengo acceso a GPT Realtime 2.1 Mini?
GPT Realtime 2.1 Mini está en beta por invitación: solicite acceso desde la consola de Synthorai. Una vez aprobado, funciona como cualquier otro modelo: apunte su SDK de OpenAI a base_url="https://synthorai.io/v1" y configure model="gpt-realtime-2.1-mini".