- ふーちゃん通信
【業務効率化】議事録作成AIをつくってみた②🤖
2026.03.27(Fri)
こんにちは!いつも(?)AIを使った効率化について書いている人です🤖
前回は「なぜチャットAIじゃなくてシステム化なのか」をお伝えしました。
今回はいよいよ「じゃあ具体的にどう作ったの?」という設計の話です🔧
……正直、私もわかってない部分もあります。AIと二人三脚で作ったので。
でも「せっかくだから共有したい!」という気持ちが勝ちました。
コードの意味は正直半分くらいしかわかってないんですが、
「たぶんこういうことだと思う…」という解釈でお届けします🙏
目次
🗺️ まずは全体像
「ファイルを置く → 議題ごとに分割 → AI整理 → Word出力」というフローでした。
このシステム、実はいくつかのファイル(部品みたいなもの)が組み合わさってできています。
「それぞれ何をしてるの?」って聞いたら、AIがこういうツリー図を出してきました👇
├── memo_parser.py # ①「◎」で議題を切り出す係
├── prompt_builder.py # ②AIへの指示文を組み立てる係
├── openai_client.py # ③AIに実際に投げる係(お金もここで考えてる)
└── schema.py # 出力形式の定義(「JSON型」って言ってた。よくわからん)
app.py # 画面まわり。ボタンとかここ
見せられたとき「うわ…」ってなりました。でも落ち着いて読むと、役割分担してるだけなんですよね。
今回は特に重要な3つのしくみに絞って、「こういうことだと思う」という解釈込みでご紹介します。
🔍 しくみ①「◎」で議題を作っておく
一番最初の課題は、「長い会議の文字起こし(全部で数万文字!)から、議題をうまく見つける」ことでした。
「数万文字」って、短編小説くらいの量です。さすがに多すぎる😇
最初は「AIに全部丸投げすればよくない?」と思ってたんですが、
やってみると毎回結果が変わったり、なんか謎の議題が生えてきたりして🌱
それで別のアプローチを考えました。
「この文字起こしから議事録を作成して」とAIに頼む。
→ 毎回結果が変わる。長文だと途中で切れることも😭
→ なんか知らん議題が生えてくる🌱
「◎…について」と書いた会議メモをAIに渡す。
→ 毎回同じ結果。コストもゼロ。
→ 謎の議題は生えてこない🌱✋
つまり、議題を作らせるのではなくあらかじめ議題とそのざっくりとした内容を渡しておくことで内容の補完や修正を任せられます。「AIに事前にルールを共有する」という考え方です。
「◎は議題のこと、内容は~」と事前に知らせておきます。
ただし全部の議題を処理させるとそれはそれでパンクするので議題を分割してAIに渡します。そこはプログラムで設計します!全部AIに頼もうとしなくてもいいんです🤔
実際のコードを見てみよう(memo_parser.py)
コードが出てきますが、日本語のコメント(#のあと)だけ読めば大丈夫です👇
re.compile(r"^[◎〇●]...") これが「正規表現」というやつらしいです。「テキストの中から特定のパターンを探すためのルールを書く方法です」と言ってました。
要は「◎で始まる行を探せ」を1行で書いたもの、らしいです。なるほどね(全然わかってない)
会議メモの書き方(ここは簡単!)
このシステムを使うのに人間が覚えることはほぼゼロです。
「◎をつけるだけ」。以上。本当に以上。
「◎」を議題の頭につける。後は箇条書きでメモ。
システムがこれを読んで、自動で3ブロックに切り分けてくれます。
AG001〜AG003 という管理番号も勝手につきます。「AG」って何の略か聞いたら「Agendaです」って言われました。そのままやん。✍️ しくみ②「良い議事録」を書かせるAIへの指示の工夫
「AIへの指示文なんて、適当でよくない?」
…実際やってみたら、指示の仕方ひとつで出力の品質がかなり変わるんですよね。
このシステムでは、AIへの指示を3層構造に分けているらしいです👇
「数万文字の文字起こし(めちゃ重い)」は最初の1回だけ渡す(②)。
「どの議題を処理するか(軽い)」は毎回変える(③)。
こうすると重いデータを毎回送らなくて済むから、コストが減ります。
荷物を全部毎回持ち歩くんじゃなくてロッカーに預けておく感じ?たぶん🧳
出力形式をJSONで固定する(Structured Outputs)
「Structured Outputs」って言葉が出てきて一瞬「?」ってなりましたが、
要は「返ってくるデータの形を固定する」ということらしいです。
普通に頼むと毎回フォーマットが微妙に違うやつが返ってきて困るから、「必ずこの形で返して!」という型紙を渡すイメージ。
「スキーマ」って言葉が出てきたとき「また難しい言葉…」ってなったんですが、
「型紙を渡してAIに形を守らせること」と理解しました。
これがあると
speaker・text という形から外れた返答ができなくなるらしいです。「今日の気分で形式を変えるAI」は困るので、これは大事!
💰 しくみ③ お金の話:バッチ処理とキャッシュ
API(OpenAIのサービス)は使うほどお金がかかります。
文字起こしが数万文字あるので、なにも考えずに使うと請求が増える一方💸
(とはいえ、数万文字読ませるだけなら数円程度ですが)
「AIすごい! → 請求書がすごい!」を回避するために2つの工夫があります。
工夫その1:バッチ処理(まとめて送る)
議題を1つずつ処理するんじゃなく、まとめて複数送るという方法です。
宅配便で1個ずつ送るより、まとめて1箱に入れた方が安い、ということですね!📦
議題9個の場合:
・バッチなし → API 9回呼ぶ(9回分の料金)
・バッチサイズ3 → API 3回で済む(1/3の料金!)
画面から数字を変えられるので、「お金大事!」という日は小さくして、「品質大事!」な日は大きくする感じで使えます💰
工夫その2:プロンプトキャッシュ(同じデータを使いまわす)
「文字起こし全文(数万文字)」は毎回送るとその分お金がかかります。
でも2回目以降も同じ文字起こしを使う必要があります。
「キャッシュ」って言葉が出てきたとき、ブラウザのキャッシュと同じ感じ?と思ったら、まあそういうことらしいです📚
コスト削減の工夫まとめ
| 工夫 | 内容 | 効果 |
|---|---|---|
| バッチ処理 | 複数議題をまとめてAIに投げる(デフォルト3つ) | APIコール数を最大1/3に削減 |
| プロンプトキャッシュ | 数万文字の文字起こしを最初の1回だけ処理して使い回す | 2回目以降のコスト減 |
| Reasoningを「low」に | AIの「考える深さ」を抑える | 速度アップ+コスト削減。議事録には十分 |
| バッチ中断機能 | 処理途中でも「停止」ボタンで止められる | 「あ、やっぱやめた」ができる。 |
🚀 まとめ:設計の3原則
長くなりましたが、結局このシステムで大事にしていることは3つ。
「何をAIに任せて、何は任せないか」を整理するだけで、グッと扱いやすくなる
というのはこのシステムを作っていて強く感じました。
AIは万能じゃないし。得意・不得意を使い分けるだけです。
この考え方、議事録AIだけじゃなく「定型業務の自動化」全般に使えると思います。
「うちの会社の議事録作成、これで解決できるかも……」と思った方、ぜひ試してみてください🔥
(私でも作れたので、たぶんだいじょぶです)
そして完成しました!!
「文字おこしデータ」と「メモ」をメール✉️で送るだけで、
整形された議事録が自動返信されるようにしました!🎉
社内の人ならだれでもメールを送るだけで出来上がった議事録が返ってきます!やったー!🥳
……と思っていましたが。
残念ながら「情報の整理くらいは人間がやるべき」とのご意見をいただき、導入は見送りとなりました😢
全力で作ったのに……!!あばばば……🦐
では、次の更新もお楽しみに~~🎉