尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证A second ear for medical interpreters: re-confirm cards when a dose, allergy or “no” doesn’t make it across.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗A second ear for medical interpreters. Faithful listens to both sides of an interpreted visit and, right after each turn, asks the interpreter to re-confirm any dose, number, allergy, left or right, medicine, warning sign or “no” that didn’t make it across the language gap. Spanish and English.
A mother says “ya le di dos dosis de Tylenol hoy… y es alérgico a la penicilina.” The interpreter says “Yes, I gave him Tylenol today.” The doctor never hears about the two earlier doses or the penicillin allergy, and nobody in the room can tell. Faithful puts a red Re-confirm card in front of the interpreter before the doctor writes the prescription.
Live demo: faithful-hsa8.onrender.com (free hosting: the first visit after a quiet spell can take about a minute to wake up) · Built for the Nebius × NVIDIA Global AI Hackathon (Best Apps and Agents).
| Step | What runs | Where |
|---|---|---|
| 1. Hear both sides | NVIDIA Parakeet TDT 0.6B v3, multilingual speech recognition | Our Nebius Serverless Endpoint (one L40S) |
| 2. Read the critical content | Plain code: numbers (digits and Spanish or English number words), units, how often, how long, dose limits, allergies, left/right, medicine names (brand ↔ generic), warning signs, negation | The app |
| 3. Weigh the meaning | Our fine-tuned checker: NVIDIA llama-nemotron-rerank-1b-v2, fine-tuned to score whether an interpretation still means the same thing | Trained on a Nebius Serverless Job, served on the same endpoint |
| 4. Decide | A fixed rule combines steps 2 and 3. The outcome is a re-confirm card, a note for after the visit, or nothing. Thresholds come from held-out practice visits | The app |
| 5. Say it plainly | Nemotron 3.5 Lightning writes the card's one line. Code checks that any words it quotes were really said | Nebius Token Factory |
| 6. Re-read after the visit | Nemotron 3 Ultra reads the whole conversation once. Each item it finds must quote a real turn | Nebius Token Factory |
Steps 2 and 3 cover each other's blind spots:
We wrote six scripted visits with 20 planted errors, following the JMIR 2026 design:
The visits were voiced with Kokoro, heard by Parakeet on our Nebius endpoint, and checked by the live pipeline with the thresholds chosen on practice turns (eval/e2e.json):
| From audio | From the script text | |
|---|---|---|
| Planted errors that got a re-confirm card | 19 of 20 | 20 of 20 |
| Errors in the patient's own words caught | 11 of 11 | 11 of 11 |
| Faithful turns that got a card anyway | 4 of 34 | 2 of 34 |
| Median time from the interpreter finishing to the card (speech recognition + checks + card wording) | 1.3 s (95th percentile 1.9 s) | |
| Speech recognition word error rate | English 3.5%, Spanish 4.6% |
The one miss from audio is "not this week" interpreted as "esta semana sí puede": speech recognition ran the clinician's two sentences together, so both sides still contain a "no" and code saw no change; our checker scored it 0.88 likely-changed, just under the 0.95 a card needs when code finds nothing. From the script text it is caught. For comparison, the study we copied the design from found two ambient AI scribes carried 55–60% of these planted errors into the visit note.
From eval/RESULTS.md. Every method saw the same turns: a random sample of 400 per set (fixed seed), all 54 scripted turns. Thresholds were chosen on 632 held-out practice turns under one rule for every method (best F1 with no more than 5% false alarms there), never on these test sets.
| Method | Held-out synthetic visits: errors caught / false alarms | ACES (out-of-distribution): caught / false alarms | Time per turn | Cost per 1,000 turns |
|---|---|---|---|---|
| Code checks only | 50% / 9.6% | 49% / 5.1% | 2 ms | $0 |
| Nemotron 3.5 Lightning, asked per turn | 51% / 1.5% | 62% / 6.8% | 0.9 s | $0.03 |
| Nemotron 3 Ultra, asked per turn | 79% / 0.7% | 92% / 13.1% | 0.9 s | $0.36 |
| NVIDIA rerank-1b before fine-tuning | 20% / 7.0% | 13% / 1.1% | 0.5 s | GPU time |
| Our fine-tuned checker alone | 82% / 3.3% | 51% / 0.6% | 0.5 s | GPU time |
| Faithful: code + checker + decision rule | 83% / 9.2% | 58% / 2.8% | 0.5 s | GPU time |
What this shows:
NVIDIA llama-nemotron-rerank-1b-v2, fine-tuned on 3,818 synthetic training pairs for 2 epochs on one L40S in a Nebius Serverless Job (161 seconds). On 1,449 held-out test pairs written by two other model families: AUC 0.60 before fine-tuning, 0.95 after; at the threshold chosen on dev, F1 0.29 before and 0.84 after (precision 0.88, recall 0.81). The job's report is in eval/training.json, copied from the endpoint.
pip install -r requirements.txt
uvicorn app.main:app --port 7860
| What you set | What works |
|---|---|
| Nothing | The replay and the code checks |
NEBIUS_API_KEY | Lightning card wording and the Ultra review |
ENDPOINT_URL and ENDPOINT_TOKEN | Our Nebius endpoint: speech recognition and the fine-tuned checker |
Pipeline steps run in GitHub Actions (Run a pipeline step):
| Step | What it does |
|---|---|
synth | Writes the training and test visits |
tts | Voices the scripted visits |
demo | Runs speech recognition and the checks over the scripted visits |
eval | Runs the benchmark |
The Nebius parts are in train/:
| File | What it is |
|---|---|
train_checker.py | The fine-tuning Job |
server.py | The endpoint |
nebius.sh | The CLI commands to run both |
Apache-2.0. Test voices: Kokoro-82M (Apache-2.0). ACES is CC BY-NC-SA 4.0 and isn't redistributed here.