top of page

【生成AI活用・議事録編】文字起こしの整形をGAS×APIで半自動化する(一歩進んだプロンプト活用)

  • 17 時間前
  • 読了時間: 5分

以前の「業務別プロンプト集」で、会議の文字起こしを議事録に整えるプロンプトを紹介しました。毎回コピー&ペーストするだけでも十分便利ですが、会議が増えてくると「貼り付けて、実行して、コピーして、ドキュメントに戻して……」の往復がだんだん面倒になってきます。この記事では、その作業をGAS(Google Apps Script)と生成AIのAPIでつなぎ、文字起こしを貼るだけで整形済み議事録が出てくる“半自動”のしくみを、一歩進んだ使い方として紹介します。

※本記事は技術的な一例の紹介です。APIの利用には料金が発生する場合があります。機密情報の取り扱いは社内ルールに従ってください。記事末尾にアフィリエイトリンク(Amazonアソシエイト)を含みます。

つくるもの:文字起こしを貼るだけの半自動議事録

しくみはシンプルです。スプレッドシートに文字起こしを貼り、メニューから実行すると、GASが生成AIのAPIを呼び出し、整形された議事録を隣のセル(またはGoogleドキュメントやSlack)に書き出します。人がやるのは「貼る」「実行する」「最終チェックする」だけになります。

入力:スプレッドシートに貼った文字起こし

処理:GASが決まったプロンプトをAPIに送信

出力:整形済み議事録(決定事項・ToDoを分離)

STEP 01 準備するもの

必要なのは次の4つです。プログラミングに詳しくなくても、コピペで動かせる範囲です。

Googleアカウント(スプレッドシート=GASが使えます)

生成AIのAPIキー(Claude や ChatGPT などのAPI)

整形したい文字起こしデータ(会議の録音を文字起こししたテキスト)

30分ほどの初期設定の時間

ここ注意! APIキーはコードに直接書かず、スクリプトプロパティに保存します。これは後述しますが、鍵をコードに埋め込まないのは基本のセキュリティ対策です。

STEP 02 プロンプトを「固定の型」にする

半自動化のコツは、プロンプトを毎回書かず、決まった型として固定することです。前回紹介した議事録プロンプトを、そのままテンプレートとして使います。

以下は会議の文字起こしです。読みやすい議事録にしてください。
構成は「日時・参加者(分かる範囲)/議題/決定事項/保留・課題/ToDo(担当・期限)」。
冗長な発言は要約し、重複は省いてください。
文字起こし:

この文章の後ろに、文字起こし本文をくっつけてAPIに送ります。型が決まっていれば、毎回同じ品質の議事録が返ってきます。

STEP 03 GASで生成AIのAPIを呼ぶ

スプレッドシートのメニューから「拡張機能 → Apps Script」を開き、次のコードを貼り付けます。ここではClaudeのAPIを例にしています(他のAPIでも考え方は同じで、送信先URLとパラメータを差し替えるだけです)。

function 議事録を整形する() {
  const props = PropertiesService.getScriptProperties();
  const API_KEY = props.getProperty('ANTHROPIC_API_KEY');
  const sheet = SpreadsheetApp.getActiveSheet();

  // A1に貼った文字起こしを読み込む
  const transcript = sheet.getRange('A1').getValue();

  const template =
    '以下は会議の文字起こしです。読みやすい議事録にしてください。\n' +
    '構成は「日時・参加者/議題/決定事項/保留・課題/ToDo(担当・期限)」。\n' +
    '冗長な発言は要約し、重複は省いてください。\n文字起こし:\n';

  const res = UrlFetchApp.fetch('https://api.anthropic.com/v1/messages', {
    method: 'post',
    contentType: 'application/json',
    headers: {
      'x-api-key': API_KEY,
      'anthropic-version': '2023-06-01'
    },
    payload: JSON.stringify({
      model: 'claude-sonnet-5', // 利用可能な最新モデル名に置き換え
      max_tokens: 2000,
      messages: [{ role: 'user', content: template + transcript }]
    }),
    muteHttpExceptions: true
  });

  const data = JSON.parse(res.getContentText());
  const minutes = data.content[0].text;

  // B1に整形済み議事録を書き出す
  sheet.getRange('B1').setValue(minutes);
}

ここ注意! モデル名(model)は時期によって変わります。利用可能な最新のモデル名に置き換えてください。APIキーは次のステップの方法で登録します。

STEP 04 APIキーを安全に登録する

APIキーはコードに直書きせず、スクリプトプロパティに保存します。Apps Scriptの「プロジェクトの設定 → スクリプト プロパティ」で、プロパティ名を ANTHROPIC_API_KEY、値をご自身のAPIキーにして保存します。こうしておけば、コードを共有してもキーは漏れません。

STEP 05 メニューから実行できるようにする

最後に、スプレッドシートを開いたときに専用メニューが出るようにして、ワンクリックで実行できるようにします。次の関数を追加すると、メニューに「議事録ツール」が現れます。

function onOpen() {
  SpreadsheetApp.getUi()
    .createMenu('議事録ツール')
    .addItem('文字起こしを整形する', '議事録を整形する')
    .addToUi();
}

これで、A1に文字起こしを貼り、メニューから「文字起こしを整形する」を押すだけで、B1に議事録が出てきます。

もう一歩:出力先を広げる

慣れてきたら、出力先を変えるとさらに便利になります。たとえば、整形が終わったらメールで自分に通知する、といった応用もかんたんです。

// 整形が終わったらメールで通知する例
MailApp.sendEmail('info@robin-planning.com', '議事録が完成しました', minutes);

Googleドキュメントに書き出して、そのまま共有する

決定事項とToDoを別シートに分けて、タスク管理につなげる

Slackや Chatに投稿して、参加者にすぐ共有する

使うときの注意

機密情報:外部APIに送るため、顧客名や個人情報の扱いは社内ルールを必ず確認しましょう。

APIコスト:文字起こしが長いほどトークン数が増え、料金がかかります。長い会議は分割する工夫を。

ファクトチェック:AIの要約は便利ですが、決定事項や数字は最終的に人が確認しましょう。

レート制限:短時間に大量実行すると制限にかかることがあります。まとめ処理は間隔をあけて。

まとめ:プロンプトは「固定して、つなぐ」と強くなる

良いプロンプトができたら、次のステップはそれをGASとAPIで“固定してつなぐ”ことです。毎回のコピペがなくなるだけで、議事録づくりの手間はぐっと減ります。まずは1つの会議で試して、うまくいったら出力先を広げていきましょう。前回の「業務別プロンプト集」とあわせて使うと、日々の業務がさらにラクになります。

ロビンプランニングでも支援できます プロンプトの整備から、GAS・APIを使った定型業務の自動化まで、会社の状況に合わせてご一緒できます。お気軽にご相談ください。

学びを深める書籍(PR)

GASや生成AIのAPIを、もっと使いこなしたい方に。

書籍(PR) Google Apps Script 入門 スプレッドシートの自動化を基礎から学びたい方に。

書籍(PR) 生成AI API活用ガイド APIを使ったアプリ・業務自動化を学びたい方に。

書籍(PR) プロンプトの教科書 そもそもの指示(プロンプト)の質を上げたい方に。

免責:本記事のコードは動作を保証するものではなく、一般的な一例です。APIの仕様・料金は提供元の最新情報をご確認ください。機密情報の取り扱いと出力のファクトチェックは利用者ご自身の責任でお願いします。アフィリエイト:ロビンプランニングはAmazonアソシエイト・プログラムの参加者であり、リンク経由の購入により紹介料を得る場合があります。

 
 
 

コメント


© Copyright ROBIN planning LLC.

bottom of page