Sofya Developers

Discovery e fallback

Discovery e fallback

Pergunta: "como uso discovery sem implementar fallback de endpoint?"

Passe apiKey para connectTranscription(). A biblioteca obtém os candidatos, tenta-os na ordem recebida e devolve a primeira sessão cujo start() conclui — isto é, cuja conexão de socket foi confirmada. O registry público é fechado ao provider sofya_as_service; não registre providers arbitrários como estratégia de fallback.

import {
  connectTranscription,
  TranscriptionConnectionError,
  TranscriptionEnvironmentError,
} from '@sofya-sdk/transcription';

try {
  const session = await connectTranscription({
    apiKey: '<api-key-de-discovery>',
    overrides: { languages: { transcription: 'pt-BR' } },
  });
  await session.stop();
} catch (error) {
  if (error instanceof TranscriptionEnvironmentError) {
    console.error(error.code);
  } else if (error instanceof TranscriptionConnectionError) {
    for (const attempt of error.attempts) console.error(attempt.provider, attempt.endpoint);
  }
  throw error;
}

TranscriptionConnectionError tem código all_candidates_failed. Seus attempts ficam na ordem tentada e contêm provider, endpoint e causa; não contêm credenciais ou headers.

Há uma exceção importante: erro de ambiente não vira tentativa. Se faltar browser, contexto seguro ou microfone, TranscriptionEnvironmentError aborta a jornada imediatamente; o SDK não repete a mesma precondição inválida para cada candidato.

resolveTranscriptionConfig() apenas resolve entradas diretas ou discovery em candidatos. Use connectTranscription() quando quiser que a biblioteca possua a tentativa e o fallback.

Last updated on

On this page