Voici rakedoc-nano : le VLM à poids ouverts à la fine pointe pour l’analyse de documents

Scribe médical, intégré à votre produit.

Transformez les consultations et les appels cliniques en documentation structurée, sans ajouter une application de plus à la journée du clinicien. CloudRaker est l'infrastructure. L'expérience reste dans le produit que vos utilisateurs ouvrent déjà.

Le problème

La conversation contient déjà le dossier.

Une consultation contient tout ce dont le dossier clinique a besoin. Quelqu'un doit encore en faire de la documentation. Cela veut dire réécouter, taper, résumer, copier, vérifier, puis déplacer le résultat dans le bon système.

Personne ne devient clinicien par amour de la saisie de notes. À un appel par jour, c'est un agacement. À quelques milliers par mois, c'est de l'infrastructure, et sa place est dans le produit, pas dans la soirée d'une personne.

CloudRaker n'est pas un scribe qu'on installe. C'est ce sur quoi on en construit un.

Le flux de travail

La conversation entre. La note structurée sort.

Cinq étapes. L'une appartient à une personne, et vous décidez quelles exécutions s'y rendent.

EntréeConsultation ou appelEnregistré hier ou diffusé en direct.
  1. Parse

    Transcrire l'audio et séparer les locuteurs. Chaque segment porte une heure de début, une heure de fin et une étiquette de locuteur.

    processing: transcribe_diarizesegments[].speaker
  2. Extract

    Faire correspondre la conversation à la structure de note que vous avez définie. Motif, évaluation, plan, suivi, quels que soient vos champs.

    POST /v1/extractaction: medical-scribe
  3. Ancrer et noter

    Chaque champ renvoie au code temporel dont il provient. Une seconde passe juge la première et retourne un score de 0 à 5.

    citations: trueconfidence: 0-5
  4. Réviser

    Une personne modifie, commente, assigne et approuve. Envoyez ici tout ce qui est à 3 ou moins, ou tout, ou rien. Votre règle.

    confidence <= 3approbation consignée
  5. Envoyer

    Le JSON structuré retourne à ce qui l'a demandé. Interrogez l'exécution, ou prenez le webhook et sautez l'interrogation.

    GET /v1/runs/:idwebhook
SortieNote structuréeDu JSON que votre DME, votre portail ou votre système de dossiers peut accepter.
La démo

Six minutes, un appel, aucune diapositive.

Définir les champs, téléverser les enregistrements, suivre l'exécution, vérifier une valeur dans la transcription et l'approuver. C'est le workspace qui travaille — la même chose que votre produit peut faire par l'API.

Enregistré dans un environnement réel, avec les aspérités que ça implique.Ouvrir dans un nouvel onglet
Configuration

Faites de cette note la vôtre.

CloudRaker ne livre pas de note clinique. Vous définissez les champs, ajoutez des instructions là où elles comptent, puis enregistrez la configuration sous un nom. Chaque appel suivant référence ce nom au lieu de répéter le schéma. Vous changez la note à un seul endroit, pas dans le code de chaque appelant. Envoyez-la à /v1/extract/configs et vous récupérez un identifiant.

JSON
{
  "name": "Medical scribe",
  "config": {
    "grounding": true,
    "instructions": "Stay factual. Use only what was said.",
    "schema": {
      "type": "object",
      "properties": {
        "chief_complaint": { "type": ["string", "null"] },
        "symptoms":        { "type": "array", "items": { "type": "string" } },
        "assessment":      { "type": "array", "items": { "type": "string" } },
        "plan":            { "type": "array", "items": { "type": "string" } },
        "follow_up":       { "type": ["string", "null"] },
        "flag_caller":     { "type": ["boolean", "null"] }
      }
    }
  }
}
Révision humaine

Laissez l'IA rédiger. Laissez les gens décider.

Tous les flux n'ont pas besoin d'une étape d'approbation. Tous les flux ne sont pas sûrs sans elle. L'étape est configurable, et c'est la seule réponse honnête.

  • Qui décide
    Ce qu'on suppose Le modèle écrit la note et la note devient le dossier.
    Ce qui se passe Chaque champ écrit par l'IA commence comme une ébauche. Une personne ayant les bons accès le modifie, l'approuve, et l'approbation est consignée à son nom.
  • D'où ça vient
    Ce qu'on suppose On fait confiance au résumé, ou on réécoute tout l'enregistrement.
    Ce qui se passe Activez l'ancrage et chaque champ porte le segment de transcription et le code temporel dont il provient. Vérifier une valeur coûte un clic, pas onze minutes.
  • Quand il y a un doute
    Ce qu'on suppose Une phrase qui sonne sûre comble le silence, et personne ne s'en aperçoit.
    Ce qui se passe Une seconde passe note la première de 0 à 5. Acheminez 3 et moins vers une personne. Un score bas ne réécrit jamais la valeur — il indique seulement à votre code d'acheminement où regarder.
  • Après une modification
    Ce qu'on suppose Dès qu'un humain y touche, la piste se perd.
    Ce qui se passe Modifier une valeur écrite par l'IA la remplace par votre texte et retire sa citation, parce que la valeur ne vient plus de la transcription. Le dossier reste honnête sur qui a écrit quoi.
Surfaces

Votre scribe. Votre produit.

Personne n'a besoin de se connecter à CloudRaker pour que ça fonctionne. Le Workspace existe quand une équipe veut un endroit pour réviser. Ce n'est pas une obligation.

L'application que vous livrez déjà
La note apparaît dans votre interface, dans votre mise en page, sous votre nom. CloudRaker tourne derrière et vos utilisateurs n'apprennent jamais son existence.
Télésanté et centres d'appels
Appels en direct, enregistrements en file, ou les deux. La même extraction tourne sur une consultation et sur un appel de réception.
Portails patients
Un résumé structuré est plus facile à montrer à un patient qu'une transcription. Vous choisissez les champs qu'il voit.
L'API
Un appel REST par capacité, ou un appel de pipeline pour plusieurs à la fois. Aucun SDK requis, même s'il en existe un.
Voir l'API
Le Workspace
Pour l'équipe qui révise plutôt que de construire. Dossiers, approbations par champ, commentaires et droits d'accès, sans interface à écrire.
Voir le Workspace
Un agent
Claude, ou tout autre outil qui parle MCP, peut exécuter les mêmes capacités. Même schéma, mêmes citations, mêmes scores.
Voir les outils d'agent
Faire entrer l'audio

Enregistré hier ou diffusé en direct.

L'audio arrive comme votre produit le produit déjà. Le flux qui suit ne change pas.

Enregistrements téléversés
Enregistrez le fichier, envoyez les octets à l'URL présignée, attendez le statut « ready ». La plateforme l'analyse une fois et ne le refait jamais.
L'audio que votre app possède déjà
Passez une URL au lieu des octets. Si votre produit stocke déjà l'enregistrement, CloudRaker peut aller le chercher là.
Flux SIP et WebSocket
Nous utilisons SIP pour l'audio d'appels en direct dans notre propre charge de centre d'appels, et les WebSockets quand un flux doit atteindre la plateforme directement. Parlons-en pour brancher l'un ou l'autre.
Parlons-en
Un simple appel d'API
POST /v1/extract avec un identifiant de fichier et le nom d'une configuration enregistrée. Deux champs. C'est toute la requête pour une note.
Lots
Jusqu'à 100 fichiers dans un seul appel de pipeline. Les fichiers sont analysés une fois et partagés entre toutes les étapes, qui s'exécutent en parallèle.
Sans interrogation
Attachez un webhook et attendez l'événement de fin. Ou interrogez l'exécution en attente longue jusqu'à 120 secondes. Ou interrogez simplement. Les trois conviennent.
Pour les ingénieurs dans la salle

Intégrez-le à la pile que vous avez déjà.

Quatre appels. Votre produit garde l'utilisateur, l'interface et les données. CloudRaker fait la partie que personne ne veut construire deux fois.

  1. 01

    Enregistrer l'audio

    Envoyez l'enregistrement du fichier avec « processing » à transcribe_diarize, puis envoyez les octets à l'URL de téléversement reçue. Cette URL est valide quinze minutes. Interrogez le fichier jusqu'au statut « ready ».

    POST /v1/filesprocessing: transcribe_diarizeGET /v1/files/:id
  2. 02

    Lancer l'extraction enregistrée

    Référencez la configuration enregistrée par son nom. Ajoutez des champs en ligne quand un lot demande une exception — l'inline gagne, et la fusion est profonde, donc vous ne recopiez pas le schéma pour changer une instruction.

    POST /v1/extractaction: medical-scribecitations: true
  3. 03

    Lire les champs et les reçus

    La réponse porte vos champs et, sur une exécution ancrée, une citation par champ avec le code temporel et le segment de transcription cité. Les codes temporels sont au niveau du segment. S'il vous en faut de plus précis, lisez le tableau « words » du JSON de transcription.

    outputcitations[].timecodeurls.json
  4. 04

    Décider du sort de l'exécution

    Les exécutions sont éphémères. La durée de vie par défaut est de 24 heures et le plafond de 7 jours. Supprimez-en une pour la purger tout de suite, ou gardez-la pour promouvoir ses fichiers et résultats dans un espace permanent, sans horloge.

    ttl: 1-604800DELETE /v1/runs/:idPOST /v1/runs/:id/keep
Le tout

L'audio entre, la note sort, en un seul fichier.

Téléverser, attendre, extraire, lire les citations. Rien d'autre ne se cache derrière.

const key = process.env.CLOUDRAKER_API_KEY!
const headers = {Authorization: `Bearer ${key}`, 'Content-Type': 'application/json'}

// 1. Reserve the record. transcribe_diarize gives us speaker labels.
const file = await fetch('https://api.cloudraker.com/v1/files', {
  method: 'POST',
  headers,
  body: JSON.stringify({
    name: 'intake-call-0311.m4a',
    mimeType: 'audio/mp4',
    processing: 'transcribe_diarize',
  }),
}).then((r) => r.json())

// 2. Send the bytes to the presigned URL. Good for 15 minutes.
await fetch(file.uploadUrl, {
  method: 'PUT',
  headers: {'Content-Type': 'audio/mp4'},
  body: audioBytes,
})

// 3. Wait for the transcript, then run the note you saved earlier.
await waitUntilReady(file.id)
const run = await fetch('https://api.cloudraker.com/v1/extract', {
  method: 'POST',
  headers,
  body: JSON.stringify({
    file: {id: file.id},
    action: 'medical-scribe',
    citations: true,
  }),
}).then((r) => r.json())

// 4. Every field knows where it came from.
console.log(run.output.chief_complaint)
console.log(run.output.citations.chief_complaint[0].timecode) // 12.4
import os, requests

API = "https://api.cloudraker.com/v1"
headers = {"Authorization": f"Bearer {os.environ['CLOUDRAKER_API_KEY']}"}

# 1. Reserve the record. transcribe_diarize gives us speaker labels.
file = requests.post(
    f"{API}/files",
    headers=headers,
    json={
        "name": "intake-call-0311.m4a",
        "mimeType": "audio/mp4",
        "processing": "transcribe_diarize",
    },
).json()

# 2. Send the bytes to the presigned URL. Good for 15 minutes.
requests.put(
    file["uploadUrl"],
    headers={"Content-Type": "audio/mp4"},
    data=audio_bytes,
)

# 3. Wait for the transcript, then run the note you saved earlier.
wait_until_ready(file["id"])
run = requests.post(
    f"{API}/extract",
    headers=headers,
    json={
        "file": {"id": file["id"]},
        "action": "medical-scribe",
        "citations": True,
    },
).json()

# 4. Every field knows where it came from.
print(run["output"]["chief_complaint"])
print(run["output"]["citations"]["chief_complaint"][0]["timecode"])  # 12.4
Après la note

La note est l'étape un, pas la ligne d'arrivée.

Un scribe dédié s'arrête quand la note est écrite. La même sortie structurée peut plutôt lancer le travail suivant.

Caviarder avant l'envoi
Retirer les identifiants d'une transcription avant qu'elle n'atteigne un système qui ne devrait pas les détenir. Catégories ciblées, pas un balayage général.
Voir Redact
Remplir le formulaire déclenché
Une demande de consultation, une requête, un formulaire de réclamation. Les champs extraits sont déjà ceux que le formulaire demande.
Voir Fill
Composer le document
Générer une lettre, un résumé ou un transfert à partir du résultat structuré plutôt que de la transcription brute.
Voir Compose
Recueillir la signature
Envoyer le document terminé pour signature sans quitter l'exécution dont il provient.
Voir Sign
Découper un long enregistrement
Un appel d'une heure couvre quatre sujets avec quatre responsables. Split donne à chacun son propre fichier adressable.
Voir Split
Garder l'exécution et créer un dossier
Les exécutions expirent par défaut. Gardez-en une et elle devient un vrai dossier dans un espace, indexé et cherchable, prêt à être pris en charge à l'étape suivante.
Gouvernance

Choisissez où le traitement se fait et combien de temps les données restent.

Ce sont des réglages, pas une conversation commerciale. Ceux qui demandent une conversation sont indiqués comme tels.

Région et résidence
CloudRaker est hébergé par région avec une résidence des données configurable. La région d'exécution d'une charge est un réglage de plateforme, pas une réécriture. Dites-nous votre contrainte et nous vous dirons franchement si nous y répondons.
Voir le centre de confiance
Une rétention que vous fixez
La durée de vie d'une exécution est de 24 heures par défaut, avec un maximum de 7 jours. Supprimez une exécution pour purger ses fichiers et sorties immédiatement. Rien ne s'accumule dans vos espaces sans que vous le gardiez explicitement.
Qui peut voir et qui peut approuver
Les rôles d'organisation décident qui administre. Les rôles par espace décident qui lit, contribue, gère ou archive dans un espace donné. L'appartenance à l'organisation seule n'accorde rien.
Des exécutions explicables plus tard
Une exécution gardée fige la configuration utilisée, donc changer la note demain ne réécrit pas ce qui s'est passé aujourd'hui. Citations, scores et approbations restent attachés à la sortie.
En production

Celui-ci tourne déjà.

Un grand fournisseur canadien de télésanté exécute cette charge sur CloudRaker. Un agent IA répond aux appels entrants des patients, les achemine vers le bon service et passe le relais à un agent humain quand quelqu'un a besoin de plus d'aide — avec la transcription complète, un résumé de dossier généré, un dossier créé dans leur propre système et des notes transcrites pour référence.

Leurs professionnels de la santé ont comparé la transcription d'appels de CloudRaker à celle d'un produit de scribe médical dédié et ont trouvé les notes de CloudRaker plus exactes. CloudRaker a remporté cette évaluation et le contrat.

Si vous voulez un scribe fini à installer cette semaine, achetez-en un. Cette page s'adresse à l'équipe qui construit le produit autour. La comparaison complète construire ou acheter est dans le journal.

Capacités utilisées

Les briques sous ce cas d'usage.

Quatre capacités portent le flux ci-dessus. Le reste de la bibliothèque est là quand la note devient autre chose.

Parse
Transcrire l'audio et séparer les locuteurs. Minutage au mot, étiquettes de locuteur par segment, et le fichier n'est analysé qu'une seule fois.
Documentation Parse
Extract
Faire correspondre la conversation à votre JSON Schema. Les champs nullables lui permettent de signaler une absence au lieu de deviner.
Documentation Extract
Ancrage
Citations activées. Chaque champ revient avec le code temporel et le segment cité derrière lui.
Documentation citations
Notation
Un entier de 0 à 5 sur le résultat. Quatre et plus, c'est la bande automatique. Trois et moins, c'est là qu'une personne intervient.
Documentation confiance
Flux connexes

Même modèle. D'autres papiers.

Tout ce où une conversation ou un document doit devenir une donnée structurée que quelqu'un révise. Voici la suite.

Admission médicaleFormulaires, télécopies et lettres de référence vers le même dossier structuré, avec la même révision par champ.
Documentation de centre d'appelsChaque appel laisse un résumé, une disposition et un dossier, sans qu'un agent tape après avoir raccroché.
Traitement des réclamationsUne trousse de réclamation découpée en pièces, extraite, notée et acheminée à l'expert qui en est responsable.
Transfert à l'équipe soignanteLa note devient un dossier, le dossier est pris en charge, et les notes de transfert sont rédigées selon vos instructions.
Autorisation préalableAssembler la demande à partir du dossier, la valider selon les règles du payeur, et s'arrêter quand un champ ne valide pas.
Révision de contratsMême forme, sans audio. Clauses extraites, citées à la page, et signalées quand la formulation s'écarte de votre standard.
Commencez ici

Votre produit a déjà la conversation. Rendez-la utile.

Prenez une clé, enregistrez un schéma de note et envoyez-lui un enregistrement. Si le résultat ne correspond pas à cette page, dites-le-nous et nous corrigerons la page ou le produit.