yoshiharu.ishii

AI

freee会計への経費登録を半自動化した——明細PDF抽出の設計と、freee API自前アプリのハマりどころ

個人事業主の月次ルーチンに「経費の登録」がある。銀行明細を眺めて、税理士報酬や家賃を見つけて、freeeに手で入力する。件数は月に10件足らずだが、毎月確実に発生し、たまに漏れる。今回これをClaude Codeと組んで半自動化した。設計判...
AI

4回電話したのに履歴が2件しかない — Amazon Connect + KVSから消えた呼を救出する

実装の切り替わりで消えた2本の通話をKVSアーカイブから救出。SearchContactsでContactIdを復元し、フラグメントの空白で呼を分割。SQSの保持期間をKVSと揃えると、シグナリングがそのまま留守番電話になる。
AI

通話路を覗くな、シグナリングを引け — Amazon ConnectのLambda→SQSで通話呼を確実に特定する

前回、TerraformでコールセンターをIaC構築し、公衆電話網からKinesis Video Streams(KVS)まで通話音声を引っ張ってくるところまでやった。MKVコンテナのCodecIDがA_AACを詐称していて中身は生PCMだ...
AI

なぜ音楽アプリは要件が無限に膨らむのか — きらきら星がバッハ全曲になるまでの実録と、現代のスコープクリープの闇

「クリックでドレミが鳴るおもちゃ」が1日でミニ楽譜エディタに膨張した実録から、受託の「ついで」文化、アジャイル免罪符、そしてAIが実装コストという最後の防波堤を外した現代のスコープクリープを考える。
AI

レート制限が永遠に回復しなくなった話 — OpenAI Realtime APIの自動再接続とカウンタの共鳴

サーバレス常設デモに入れたIPレート制限が、一度上限に当たると永遠に回復しなくなった。原因は「加算してから判定」するカウンタと「429を切断扱いして3秒ごとに再接続」するクライアントの共鳴。両側の修正と、リトライしてよいエラー・してはいけないエラーの線引きをまとめた。
Webアプリ

退役サーバーの「お疲れ様でした」画面ジェネレーターを作った — 歴代Windows UI考証つき

長年働いたWindows Serverの退役日に撮る「お疲れ様でした」画面を、誰でも作れるWebツールとして公開。NT 3.51から歴代Windows UIを考証して再現し、2倍解像度のPNGで保存できる。
OpenAI Realtime API

無線機から電話へ — OpenAI Realtime APIのサーバーVADでハンズフリー通話を実装する

サーバーVADでハンズフリー通話モードを実装。PTTボタンはミュートトグルに転職し、無線機は電話になった。自然さの値段の話。PR単位開発記その4。
OpenAI Realtime API

WebSocket中継 vs WebRTC直結 ― 両方実装して固有名詞で殴り合わせたら、精度の勝敗とバグが2匹出てきた

WebSocket中継とWebRTC直結を両方実装し、固有名詞の認識精度で対決させた。録音チェーンの鮮度バグと「デグローム融合事件」の顛末つき。PR単位開発記その3。
AWS

User Poolはインフラではなくデータである — Terraformスタック分割の2軸

素のterraform destroyでUser Poolを消し飛ばした事故の反省から、Terraformを認証基盤と実行基盤の2スタックに分割。「作り直せるか」と「壊す頻度」の2軸で分ける設計論。
AWS

terraform applyで音声AIサービスが立つまで — User Pool全消し事故と、死なないAPIキーの謎

Route53+ALB+ECS Fargate+EFSで月30ドルの本番環境をterraform apply一発で構築。User Pool全消し事故と、ローテートしても死なないAPIキーの謎解きつき。