IntegraçõesAPI Voice-Processor

API Voice-Processor

REST

Guia de integração com a API REST da LeoRad para processamento de voz, transcrição de áudio, revisão de laudos e OCR de imagens.

URL base:https://voice-processor.leorad.com.br

#Visão Geral

A API Voice-Processor integra-se à plataforma LeoRad, uma solução especializada em análise, processamento e interação com laudos radiológicos. Desenvolvida com assistentes de inteligência artificial treinados para o domínio da radiologia, a plataforma permite que o radiologista foque na análise das imagens, otimizando o tempo de documentação e aumentando a eficiência do fluxo de trabalho.

A API segue o padrão REST, utiliza autenticação baseada em tokens e é ideal para integração com sistemas web que precisam de processamento de voz, transcrição, revisão de laudos ou extração de texto por OCR.

Métodos disponíveis

Todos os endpoints utilizam a URL base https://voice-processor.leorad.com.br. A autenticação é obrigatória em todas as requisições.

#Autenticação

A plataforma LeoRad utiliza dois tipos de tokens para diferentes cenários de integração. Entender a distinção entre eles é essencial para utilizar a API corretamente.

Token de Login
Identifica o usuário na plataforma web. Usado para autenticação direta e para obter o Token de API.
Token de API
Token JWT obtido a partir do Token de Login. Necessário no cabeçalho de todas as chamadas à API Voice-Processor.

#Token de Login

O Token de Login é exclusivo para cada usuário da plataforma LeoRad. Ele é utilizado para autenticar o acesso à aplicação web e para obter o Token de API nas integrações REST.

Como obter seu Token de Login

  1. 1
    Crie sua conta: Acesse app.leorad.com.br e crie sua conta caso ainda não possua uma.
  2. 2
    Acesse seu Perfil: Após fazer login, clique no ícone de engrenagem no menu lateral para acessar as configurações do seu perfil.
  3. 3
    Gere o Token: Dentro do Perfil, selecione a opção "Token" e clique em "Gerar Token". O token será exibido e estará pronto para uso.

Acesso direto à aplicação web

O Token de Login pode ser utilizado para abrir a aplicação LeoRad diretamente, incorporando-o na URL de acesso:

url
https://app.leorad.com.br/<SEU_TOKEN_DE_LOGIN>
Mantenha seu Token de Login em segredo. Não compartilhe com terceiros. Caso seja comprometido, você pode revogar e gerar um novo token a qualquer momento diretamente na interface do aplicativo.

#Token de API

Para utilizar a API Voice-Processor, é necessário obter um Token de API (JWT). Esse token é gerado a partir do seu Token de Login e deve ser incluído no cabeçalho de todas as requisições à API.

Obtendo o Token de API

Faça uma requisição POST para o endpoint abaixo, substituindo <SEU_TOKEN_DE_LOGIN> pelo token obtido na seção anterior:

POSThttps://api-app.leorad.com.br/legacy-api/public/token-login/<SEU_TOKEN_DE_LOGIN>
curl
curl -X POST \
  "https://api-app.leorad.com.br/legacy-api/public/token-login/<SEU_TOKEN_DE_LOGIN>"

Exemplo de resposta

json
{
  "apiToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
}

Utilizando o Token de API

O apiToken retornado deve ser incluído no cabeçalho Authorization de todas as requisições à API Voice-Processor, precedido da palavra Bearer:

http
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...
O Token de API tem validade limitada. Caso receba um erro 401 Unauthorized, solicite um novo token repetindo o fluxo de autenticação.

#Métodos da API

Todos os endpoints abaixo utilizam a URL base https://voice-processor.leorad.com.br e exigem autenticação via Token de API no cabeçalho Authorization.

As requisições devem ser enviadas como multipart/form-data quando incluírem arquivos binários, ou como application/json para parâmetros de texto.

#POST /ai/assistant

Recebe parâmetros como prompt, agente e conteúdo do editor para gerar um laudo radiológico completo. A resposta é transmitida via streaming, permitindo exibição progressiva do conteúdo em tempo real. Ideal para relatórios completos.

POSThttps://voice-processor.leorad.com.br/ai/assistant
ParâmetroTipoRequeridoDescrição
userstringSimE-mail do usuário utilizado para identificação no sistema. Não pode estar vazio.
agentstringNão

Agente de IA a ser utilizado. Quando omitido, o agente padrão da conta é aplicado.

generalAnálise completa para todas as modalidades radiológicas
fastAgentAnálise radiológica rápida para todas as modalidades
fastTurboAnálise radiológica ultra rápida para todas as modalidades
directAgentRaciocínio avançado com capacidade de análise de imagens
directAgent2v2 · betaRaciocínio avançado com capacidade de análise de imagens
endoscopyEspecialista em diagnóstico endoscópico
densitometryAnálise especializada em densidade óssea
ultrassomEspecialista em laudos ultrassonográficos
anamneseEspecialista em histórico clínico e consulta médica
pathologyEspecialista em diagnóstico patológico
radiographyEspecialista em diagnóstico radiográfico
editorContentstringNãoConteúdo HTML do editor (modelo/máscara). Serve como estrutura base para o laudo gerado.
orderContentstringNãoConteúdo de ordem específica a ser utilizado. Pode estar relacionado ao conteúdo do editor ou ser independente.
promptAssistantstringNãoPrompt específico para guiar a transcrição e geração do laudo.
languagestringNãoIdioma para geração do relatório. Exemplos: pt-BR, en, es.
languageSpeechstringNãoIdioma para reconhecimento de voz no arquivo de áudio. Exemplos: pt-BR, en, es.
modelSpeechstringNãoVersão do modelo de IA para processamento de voz. Valores aceitos: v1, v2, v3.
termsSpeechstringNãoTermos frequentes na fala do usuário, usados para melhorar a precisão do reconhecimento de voz.
filesbinaryNãoArquivo de áudio a ser processado. Formatos suportados: flac, m4a, mp3, mp4, mpeg, mpga, oga, ogg, wav, webm. Formatos compactados resultam em menor tempo de processamento.
Prefira formatos de áudio compactados como mp3 ou ogg para reduzir o tempo de processamento e os custos da requisição.

Exemplo de requisição (JavaScript)

javascript
const formData = new FormData();
formData.append('user', 'usuario@email.com');
formData.append('agent', 'general');
formData.append('language', 'pt-BR');
formData.append('languageSpeech', 'pt-BR');
formData.append('files', audioBlob, 'audio.mp3');

const response = await fetch('https://voice-processor.leorad.com.br/ai/assistant', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer <SEU_TOKEN_DE_API>',
  },
  body: formData,
});

// Processar streaming
const reader = response.body.getReader();
const decoder = new TextDecoder();

while (true) {
  const { done, value } = await reader.read();
  if (done) break;
  const chunk = decoder.decode(value);
  console.log('Trecho do laudo:', chunk);
}

#POST /ai/speech

Recebe um arquivo de áudio e realiza a transcrição do conteúdo falado em texto. Útil para capturar ditados do radiologista e converter em texto antes de processamento adicional.

POSThttps://voice-processor.leorad.com.br/ai/speech
ParâmetroTipoRequeridoDescrição
userstringSimE-mail do usuário utilizado para identificação no sistema. Não pode estar vazio.
filesbinarySimArquivo de áudio a ser transcrito. Formatos suportados: flac, m4a, mp3, mp4, mpeg, mpga, oga, ogg, wav, webm.
languageSpeechstringNãoIdioma para reconhecimento de voz. Exemplos: pt-BR, en, es.
promptstringNãoPrompt adicional para auxiliar o modelo de IA na transcrição.

Exemplo de requisição (JavaScript)

javascript
const formData = new FormData();
formData.append('user', 'usuario@email.com');
formData.append('languageSpeech', 'pt-BR');
formData.append('files', audioBlob, 'audio.mp3');

const response = await fetch('https://voice-processor.leorad.com.br/ai/speech', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer <SEU_TOKEN_DE_API>',
  },
  body: formData,
});

const result = await response.json();
console.log('Transcrição:', result);

#POST /ai/review

Recebe o conteúdo textual de um laudo e realiza uma revisão anotada, incluindo comentários explicativos sobre o conteúdo. Ideal para validação e controle de qualidade de laudos existentes.

POSThttps://voice-processor.leorad.com.br/ai/review
ParâmetroTipoRequeridoDescrição
userstringSimE-mail do usuário utilizado para identificação no sistema. Não pode estar vazio.
editorContentstringNãoConteúdo textual ou HTML do laudo a ser revisado.
languagestringNãoIdioma para geração dos comentários da revisão. Exemplos: pt-BR, en, es.

Exemplo de requisição (JavaScript)

javascript
const response = await fetch('https://voice-processor.leorad.com.br/ai/review', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer <SEU_TOKEN_DE_API>',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    user: 'usuario@email.com',
    language: 'pt-BR',
    editorContent: '<p>Fígado de dimensões normais, com contornos regulares...</p>',
  }),
});

const result = await response.json();
console.log('Revisão:', result);

#POST /ai/scan

Recebe uma imagem, áudio ou documento como entrada e extrai o texto contido nele por meio de OCR (Optical Character Recognition) com IA. Indicado para digitalização de laudos físicos ou documentos escaneados.

POSThttps://voice-processor.leorad.com.br/ai/scan
ParâmetroTipoRequeridoDescrição
userstringSimE-mail do usuário utilizado para identificação no sistema. Não pode estar vazio.
agentstringNãoVersão do agente de OCR a ser utilizado. Valores aceitos: V1, V2.
filebinaryNãoImagem, áudio ou documento de texto (PDF) a ser processado. Certifique-se de utilizar formatos aceitos pelo serviço.

Exemplo de requisição (JavaScript)

javascript
const formData = new FormData();
formData.append('user', 'usuario@email.com');
formData.append('agent', 'V2');
formData.append('file', imageFile, 'laudo.jpg');

const response = await fetch('https://voice-processor.leorad.com.br/ai/scan', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer <SEU_TOKEN_DE_API>',
  },
  body: formData,
});

const result = await response.json();
console.log('Texto extraído:', result);
O agente V2 oferece maior precisão para documentos médicos e laudos radiológicos em comparação ao V1.

#Suporte

Em caso de dúvidas, sugestões ou problemas técnicos relacionados à integração com a API Voice-Processor, nossa equipe de suporte está disponível para ajudar.

Entre em contato

Nossa equipe de suporte técnico está disponível para auxiliar na integração, esclarecer dúvidas sobre os endpoints ou resolver qualquer problema encontrado durante o desenvolvimento.

contato@leorad.com.br