Transcripción
Audio a texto, con detección de idioma y formato JSON o texto plano.
POST /v1/audio/transcriptionsTranscripción, voz y conversación sobre infraestructura propia. Apunte cualquier SDK de OpenAI a esta dirección y funciona: los mismos endpoints, los mismos cuerpos, los mismos errores.
https://cocora.supercomputo.cl/v1
Cada nombre de modelo es estable. Por dentro se resuelve contra infraestructura propia o, si hace falta, contra un proveedor externo — sin que el cliente cambie una línea.
Audio a texto, con detección de idioma y formato JSON o texto plano.
POST /v1/audio/transcriptionsTexto a audio en español natural, con control de voz y velocidad.
POST /v1/audio/speechChat con tools, formato de respuesta y streaming por SSE.
Su clave va en la cabecera Authorization, igual que en OpenAI.
# Transcribir un audio curl https://cocora.supercomputo.cl/v1/audio/transcriptions \ -H "Authorization: Bearer sk-cocora-..." \ -F "file=@reunion.mp3" \ -F "model=cocora-escucha" \ -F "language=es" # Sintetizar voz curl https://cocora.supercomputo.cl/v1/audio/speech \ -H "Authorization: Bearer sk-cocora-..." \ -H "Content-Type: application/json" \ -d '{"model":"cocora-voz","input":"Hola, esta es una prueba.","voice":"es_MX-claude-high"}' \ --output salida.wav
from openai import OpenAI cliente = OpenAI( base_url="https://cocora.supercomputo.cl/v1", api_key="sk-cocora-...", ) # Transcripción with open("reunion.mp3", "rb") as f: texto = cliente.audio.transcriptions.create( model="cocora-escucha", file=f, language="es" ).text # Conversación en streaming for trozo in cliente.chat.completions.create( model="cocora-chat", messages=[{"role": "user", "content": texto}], stream=True, ): print(trozo.choices[0].delta.content or "", end="")
import OpenAI from "openai"; import fs from "node:fs"; const cliente = new OpenAI({ baseURL: "https://cocora.supercomputo.cl/v1", apiKey: "sk-cocora-...", }); const { text } = await cliente.audio.transcriptions.create({ model: "cocora-escucha", file: fs.createReadStream("reunion.mp3"), language: "es", }); console.log(text);
El nombre del modelo que usted escribe no es el que corre por dentro. Esa distancia es la que permite mover cargas sin avisar a nadie.
Sólo se guarda su huella. Cada clave ve los modelos que tiene habilitados y nada más.
cocora-escucha se traduce al motor concreto que va a atender, con su nombre real y sus parámetros.
Si el motor propio no responde a tiempo, la llamada pasa al siguiente de la cadena. Automático.
Cliente, modelo, backend, duración y estado. Fuera del camino de la petición, para no costarle latencia.