Skip to content

Instantly share code, notes, and snippets.

View bogdan's full-sized avatar
💭
Temporary enslaved by prompt

Bogdan Gusiev bogdan

💭
Temporary enslaved by prompt
View GitHub Profile

Face Detection Failure Analysis from DB Dump

Oct 31, 2026 · @Bogdan Gusiev

The detected_faces table can show both failure types (missed faces and wrong blurs) for InsightFace, RetinaFace and Google Vision. Two gaps remain: a Google Vision scan that finds no faces leaves no row, and EgoBlur never wrote to detected_faces at all.

Source code

The app's code is in the private GitHub repository bogdan/realphotos-marketplace. GitHub user @bradleykam already has access.

Meeting 1222 transcript evaluation: Qwen vs Soh

  • Qwen: auto-corrected review #152
  • Soh: review #154

Where Soh is right and Qwen is wrong

Turn Qwen Soh Note
#23 不安を対面にて受診 皮膚科を対面にて only 皮膚科 makes sense

Meeting 1222 transcript: Review #152 (Auto-corrected) → Review #153 (Bogdan Gusiev)

How the exported transcript of Review #152 (Auto-corrected) becomes Review #153 (Bogdan Gusiev)'s, with PHI masked.

Legend: removed · added · Edited: 24 · Unchanged: 2 · Added: 2

Turn Speaker Change Text
#01 Doctor Edited こんにちは~~、**。**医師の**~~*******です。**えー、**ご本人様確認のため、フルネームと生年月日をお願いします。
#02 Patient Edited はい、***********と言います。生年月日は~~、####~~# # # # # #**#***#*です。

google-apis-core: Authorization bearer token leaked into logs

Program: OSS VRP URL: https://github.com/googleapis/google-api-ruby-client Vulnerability type: Sensitive data exposure

Details

Component: google-apis-core gem (part of googleapis/google-api-ruby-client) File: google-apis-core/lib/google/apis/core/http_command.rb, HttpCommand#execute_once

Token Edit Metrics

Old (dataset 5) vs New (dataset 6) — averages only.

Links open the admin stats page filtered to that dataset, on production.

Side by side

Metric Old New Better for reviewer Change

ASR conjugation error: らっしゃい before a quotative

The issue

m1138 turn 34 (displayed as #35):

心療内科に通ってらっしゃいっていうことですかね?

The distinction is one mora at the end of the verb (る → い), and the ASR's own word segmentation compounds it: the words come back as 通っ / てらっしゃ /

Examples for Improving Transcript Corrections

This document collects real examples from already-reviewed conversations that could help the automatic correction feature catch more mistakes, notes where we don't have enough good examples yet, and lists a few practical things worth keeping in mind for anyone preparing or reviewing transcripts.

What the automatic correction feature is trying to catch

After a conversation is transcribed, an AI reads through the whole thing

@bogdan
bogdan / TRAINING.md
Last active September 16, 2026 15:47

Improving Transcript Correction Accuracy

This explains, in plain terms, what it would take to make the automatic transcript correction feature (app/utils/transcript_correction.rb) catch more errors than it does today. There are two very different ways to do this, and they cost very different amounts of time and money.

What the feature does today

After a doctor-patient video call is transcribed, an AI model reads through the

Today there's one autosave path: any change to reviews, utterances, or the trim marks hasUnsavedChanges dirty, a $effect waits 1s of inactivity, then saveDraft() fires one PUT review_draft with the entire current reviews array + entire utterances array + trim. The response is reconciled back against snapshots (savedReviewSnapshot/savedUtterancesSnapshot) taken at send-time to avoid clobbering clicks made mid-request (MeetingReview.svelte:1003-1052).
Two things make this fragile:
- Snapshot drift: reviewSnapshot() is a string built from decision:start_at:end_at. Anything that changes server-side but isn't reflected identically in that string (rounding, reordering, a field the reconciliation didn't anticipate) makes reviewDecisionKey never re-equal savedReviewSnapshot, so hasUnsavedChanges stays permanently true → the 1s effect refires forever → indefinite "Saving…".
- Backend semantics assume a full snapshot. apply_phi_reviews/apply_bystander_reviews treat absence from the array as an explicit signal ("this m
This file has been truncated, but you can view the full file.
[
{
"meeting_id": 862,
"original_transcript": [
{
"end": 9.56,
"text": "こんにちは。医師の島原です。え、本、ご本人様確認のためフルネームと生年月日をお願いします。",
"start": 0.0,
"words": [
{