PHASEO_API_KEY cuando no pasas una clave.
Instalación tiene el comando de instalación y los requisitos de cada lenguaje. Todavía no hay un SDK de C++ publicado.
Qué envías y qué recibes
Los cuerpos de solicitud usan los nombres de campo JSON de la API en todos los SDK. Uso tiene un ejemplo por endpoint.
Si falta la clave, falla al crear el cliente. Python lanza
ValueError, NewFromEnv() de Go devuelve un error, C# y PHP lanzan Missing API key. Pass apiKey or set PHASEO_API_KEY., Ruby lanza ArgumentError: Missing API key. Pass api_key or set PHASEO_API_KEY. y Phaseo::from_env() de Rust devuelve un PhaseoError.
Encuentra el método para cada endpoint
Un guion significa que el SDK no tiene un wrapper para esa operación. Usa el método de la última fila o llama directamente a la API HTTP. «Solo JSON» significa que el método no puede enviar una subida de archivo multipart: pasa una URL o una data URL en base64, o envía la subida con el cliente HTTP de tu lenguaje como muestra la página del endpoint. La mayoría de los SDK también tienen un aliascreate… para cada método generate… (por ejemplo, CreateChatCompletion en Go y C#, create_response en Ruby).
C#, PHP, Ruby y Java tienen un método de subida, pero envía JSON y no puede subir un archivo; Archivos y STT muestran la solicitud multipart en cada lenguaje. Las claves y los espacios de trabajo también tienen métodos
get, update y delete, y una consulta de la clave actual (getCurrentApiKey, get_current_api_key, GetCurrentApiKey) en todos los SDK salvo Rust. TypeScript y Python también cubren música, OCR, parse, decisiones y extracciones.
Comprueba qué incluye cada paquete
Los paquetes publicados son anteriores a algunas funciones del código fuente del SDK:Configura el cliente
- TypeScript
- Python
- Go
- C#
- PHP
- Ruby
- Java
- Rust
Espera a la música, el vídeo o los lotes
Los helpers de espera están en TypeScript y Python. Los demás SDK devuelven el trabajo desde la llamada de creación; sondéalo con el método get o abre su URL de WebSocket de trabajos.videos.generateAndWait / videos.generate_and_wait para vídeo y batches.createAndWait / batches.create_and_wait para lotes. Cada helper envía una sola vez. Si la primera respuesta ya está completa, la devuelve sin sondear; si no, sondea el mismo trabajo hasta que termina y devuelve la respuesta completa. Los trabajos fallidos, cancelados o caducados lanzan JobFailedError, cuyo response contiene los detalles. Un lote completado puede contener igualmente solicitudes individuales fallidas.
wait(id, options) en cada recurso retoma un trabajo existente y devuelve cualquier respuesta final, incluidos los fallos. En Python, la música también tiene create(request) y retrieve(id).
JobTimeoutError y JobCancelledError conservan el ID del trabajo y la última respuesta (jobId/lastResponse en TypeScript, job_id/last_response en Python), para que puedas retomarlo con .wait(error.jobId) o .wait(error.job_id). Dejar de esperar no cancela el trabajo remoto. En TypeScript cancela el sondeo en curso; el cliente síncrono de Python comprueba la cancelación y el plazo entre solicitudes y callbacks, así que no puede interrumpir una llamada HTTP que ya está en marcha. Los fallos HTTP se lanzan tal cual, y los envíos nunca se reintentan. Estos helpers sondean desde tu proceso; no añaden ejecución en segundo plano al gateway.
Conserva un handle entre procesos
music.start, videos.start y batches.start devuelven un handle con result(), events() y cancel(), además de toJSON() (TypeScript) o to_dict() (Python). Guarda el tipo y el ID que devuelve y reconstruye el handle más tarde con resume(id). result() lanza una excepción ante fallos finales. Solo los trabajos de vídeo y de lotes admiten cancel(). En AsyncPhaseo, usa await con los métodos e itera los eventos con async for.
Controles de solicitud y errores
Los reintentos son0 por defecto en TypeScript, Python y Java, y solo se aplican a solicitudes GET y HEAD. Los envíos de pago, las escrituras y las solicitudes en streaming nunca se reintentan.
- TypeScript
- Python
- Java
- Rust
withOptions(...) devuelve un cliente nuevo con esos controles aplicados a cada llamada de recurso, de stream y de medios; el cliente original no cambia. Los reintentos respetan Retry-After. timeoutMs incluye la lectura del cuerpo de la respuesta.responseMetadata(result) devuelve el ID de solicitud del gateway y la URL de la traza en el panel. Los errores HTTP son PhaseoHttpError, con el status HTTP, el code de error de la API, requestId, traceUrl, el retraso de reintento, el cuerpo y headers.Llama a un endpoint sin wrapper
Cada SDK incluye también el cliente generado a partir de la especificación OpenAPI de Phaseo:
Las operaciones generadas son de más bajo nivel que los métodos wrapper; usa el wrapper cuando exista.
Analiza la salida y recopila streams
Estos helpers están en TypeScript y Python.responses.parse(request, schema) valida una respuesta JSON completa. En TypeScript, schema es un parser compatible con Zod; en Python, un modelo de Pydantic. Define también el formato de salida estructurada en la solicitud; el parser solo valida.
collectStream(client.streamResponses(request)) (TypeScript), o collect_stream y collect_async_stream (Python), reúnen el texto y el uso transmitidos.
Comprueba un modelo antes de llamarlo
checkModelCapabilities / check_model_capabilities (TypeScript y Python) comprueba las capacidades anunciadas y las restricciones escalares (inputTypes, outputTypes, endpoints, parameters, parameterValues, o los nombres en snake_case en Python) en una oferta de proveedor activa. Nunca cambia el modelo ni descarta parámetros, y no puede garantizar que un proveedor en directo acepte la solicitud. Los metadatos que faltan se tratan de forma distinta: TypeScript los indica como desconocidos y Python da la comprobación por fallida.
Para selectores de modelos y editores de parámetros, usa los metadatos de endpoints en directo:
supported, partial, unsupported o unknown, con las rutas de proveedor que coinciden y los problemas de restricciones que puedes resaltar en línea. Estas comprobaciones son llamadas explícitas; no añaden una consulta a las solicitudes de generación. Modelos indica el método en cada SDK.
Prueba sin red
- TypeScript
- Python
Importa
createMockTransport y jobFixtures desde @phaseo/sdk/testing y pasa el fetchImpl del mock al cliente. Los fixtures son estrictos y ordenados: una llamada inesperada falla localmente y nunca llega a la red. Llama a mock.assertDone() para comprobar que se hicieron todas las solicitudes esperadas.Exporta código desde una sala
Después de enviar una solicitud en una sala de Phaseo, Obtener código exporta su modelo y sus ajustes como TypeScript o Python, y Ver solicitud abre su traza en el panel cuando hay un ID de solicitud disponible. Ejecuta el código exportado en tu servidor conPHASEO_API_KEY definida.