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