Pular para o conteúdo principal
Instale o pacote do Phaseo para a sua linguagem, crie um cliente com a sua chave de API e chame um método por endpoint do Gateway. Todos os SDKs leem PHASEO_API_KEY quando você não passa uma chave. Instalação tem o comando de instalação e os requisitos de cada linguagem. Ainda não há um SDK de C++ lançado.

O que você envia e recebe

Os corpos de solicitação usam os nomes de campo JSON da API em todos os SDKs. Uso tem um exemplo por endpoint. A falta da chave gera falha quando você cria o cliente. O Python gera ValueError, o NewFromEnv() do Go retorna um erro, C# e PHP lançam Missing API key. Pass apiKey or set PHASEO_API_KEY., o Ruby gera ArgumentError: Missing API key. Pass api_key or set PHASEO_API_KEY., e o Phaseo::from_env() do Rust retorna um PhaseoError.

Encontre o método de cada endpoint

Um travessão significa que o SDK não tem wrapper para essa operação. Use o método da última linha ou chame a API HTTP diretamente. “Apenas JSON” significa que o método não consegue enviar um upload de arquivo multipart: passe uma URL ou data URL em base64, ou envie o upload com o cliente HTTP da sua linguagem, como mostra a página do endpoint. A maioria dos SDKs também tem um alias create… para cada método generate… (por exemplo, CreateChatCompletion em Go e C#, create_response em Ruby). C#, PHP, Ruby e Java têm um método de upload, mas ele envia JSON e não consegue enviar um arquivo; Arquivos e STT mostram a solicitação multipart em cada linguagem. Chaves e espaços de trabalho também têm métodos get, update e delete e uma consulta da chave atual (getCurrentApiKey, get_current_api_key, GetCurrentApiKey) em todos os SDKs, exceto o de Rust. TypeScript e Python também cobrem música, OCR, parse, decisões e extrações.

Confira o que cada pacote inclui

Os pacotes publicados são anteriores a alguns recursos do código-fonte dos SDKs:

Configure o cliente

Aguarde música, vídeo ou lotes

Os helpers de espera existem em TypeScript e Python. Os outros SDKs retornam a tarefa na chamada de criação; faça polling dela com o método get ou abra a URL de WebSocket da tarefa.
Use videos.generateAndWait / videos.generate_and_wait para vídeo e batches.createAndWait / batches.create_and_wait para lotes. Cada helper envia uma única vez. Se a primeira resposta já estiver concluída, ele a retorna sem fazer polling; caso contrário, faz polling da mesma tarefa até ela terminar e retorna a resposta completa. Tarefas com falha, canceladas ou expiradas geram JobFailedError, cujo response traz os detalhes. Um lote concluído ainda pode conter solicitações individuais com falha. wait(id, options) em cada recurso retoma uma tarefa existente e retorna qualquer resposta terminal, incluindo falhas. Em Python, música também tem create(request) e retrieve(id). JobTimeoutError e JobCancelledError guardam o ID da tarefa e a última resposta (jobId/lastResponse em TypeScript, job_id/last_response em Python), então você pode retomar com .wait(error.jobId) ou .wait(error.job_id). Parar uma espera não cancela a tarefa remota. Em TypeScript, isso cancela o polling em andamento; o cliente síncrono de Python verifica o cancelamento e o prazo entre as solicitações e os callbacks, então não consegue interromper uma chamada HTTP que já está em andamento. Falhas HTTP são geradas como estão, e os envios nunca são repetidos. Esses helpers fazem polling a partir do seu processo; eles não acrescentam execução em segundo plano ao gateway.

Mantenha um handle entre processos

music.start, videos.start e batches.start retornam um handle com result(), events() e cancel(), além de toJSON() (TypeScript) ou to_dict() (Python). Guarde o tipo e o ID que ele retorna e reconstrua o handle depois com resume(id). result() lança um erro em falhas terminais. Só tarefas de vídeo e de lote aceitam cancel(). Em AsyncPhaseo, use await nos métodos e itere os eventos com async for.

Controles de solicitação e erros

As retentativas têm padrão 0 em TypeScript, Python e Java e se aplicam apenas a solicitações GET e HEAD. Envios pagos, escritas e solicitações de streaming nunca são repetidos.
withOptions(...) retorna um novo cliente com esses controles aplicados a todas as chamadas de recursos, streams e mídia; o cliente original não muda. As retentativas respeitam Retry-After. timeoutMs inclui a leitura do corpo da resposta.responseMetadata(result) retorna o ID da solicitação no gateway e a URL do rastreamento no painel. Os erros HTTP são PhaseoHttpError, com o status HTTP, o code de erro da API, requestId, traceUrl, o atraso de retentativa, o corpo e headers.
Uso mostra um tratador de erros completo em cada linguagem.

Chame um endpoint sem wrapper

Cada SDK também inclui o cliente gerado a partir da especificação OpenAPI do Phaseo: As operações geradas são de nível mais baixo que os métodos wrapper; prefira o wrapper quando houver um.

Interprete a saída e reúna streams

Esses helpers existem em TypeScript e Python. responses.parse(request, schema) valida uma resposta JSON concluída. Em TypeScript, schema é um parser compatível com Zod; em Python, um modelo Pydantic. Defina também o formato de saída estruturada na solicitação; o parser apenas valida. collectStream(client.streamResponses(request)) (TypeScript), ou collect_stream e collect_async_stream (Python), reúnem o texto e o uso transmitidos.

Verifique um modelo antes de chamá-lo

checkModelCapabilities / check_model_capabilities (TypeScript e Python) verifica as capacidades anunciadas e as restrições escalares (inputTypes, outputTypes, endpoints, parameters, parameterValues, ou os nomes em snake_case no Python) em uma oferta de provedor ativa. Ele nunca muda o modelo nem descarta parâmetros, e não consegue garantir que um provedor em produção vá aceitar a solicitação. Metadados ausentes são tratados de forma diferente: o TypeScript os informa como desconhecidos, e o Python reprova a verificação. Para seletores de modelo e editores de parâmetros, use os metadados de endpoint em tempo real:
Cada parâmetro volta como supported, partial, unsupported ou unknown, com as rotas de provedor correspondentes e os problemas de restrição que você pode destacar na interface. Essas verificações são chamadas explícitas; elas não acrescentam uma consulta às solicitações de geração. Modelos lista o método em cada SDK.

Teste sem rede

Importe createMockTransport e jobFixtures de @phaseo/sdk/testing e passe o fetchImpl do mock ao cliente. Os fixtures são estritos e ordenados: uma chamada inesperada falha localmente e nunca chega à rede. Chame mock.assertDone() para verificar se todas as solicitações esperadas aconteceram.

Exporte código de uma sala

Depois de enviar uma solicitação em uma sala do Phaseo, Obter código exporta o modelo e as configurações dela como TypeScript ou Python, e Ver solicitação abre o rastreamento dela no painel quando há um ID de solicitação disponível. Execute o código exportado no seu servidor com PHASEO_API_KEY definida.
Última modificação em 5 de novembro de 2026