ChatGPT 4 API、Google Meet、Google Drive&Docs APIを使用した会議議事録生成
Meeting minutes generation using ChatGPT 4 API, Google Meet, and Google Drive & Docs API.
ChatGPTを使用して、ミーティングを録音した後に文書で自動的に生成されるミーティング議事録
1. 有用なことを行うためにChatGPTの力を解放する
この技術記事では、ChatGPT 4 APIをGoogle Meet、Google Drive、Google Docs APIと組み合わせて使用して、自動的にミーティング議事録を生成する方法について探求します。
ミーティング中に議事録を取ることは時間がかかる作業であり、話し合われたすべてをキャプチャすることはしばしば困難です。人工知能を使用することで、プロセスを効率化し、何も見逃されないようにすることができます。
Microsoft TeamsやZoomと同様に、Google Meetにはミーティングを記録する機能があります。録音が開始されると、ミーティングのトランスクリプトがGoogleドキュメント形式で生成され、定義されたGoogleドライブ共有フォルダに保存されます。ここではGoogle Meetのトランスクリプトファイルを使用しますが、TeamsやZoomの記録でも同様のトランスクリプトテキストの抽出が可能です。
これには、ユーザーの相互作用と異なるAPI呼び出しを管理するための中心となる単純なWebアプリケーションが使用されます。目的は、事前定義されたGoogleドライブフォルダに保存されているこれらのミーティングトランスクリプトドキュメントのリストを表示することです。ユーザーはこれらの中から1つ選択し、ミーティング議事録の要約とアクションアイテムを期限付きで生成するボタンを押すことができます。また、これら2つの新しいセクションは、ChatGPT APIの結果を含むGoogleドキュメント内に挿入されます。
この記事では、必要な構成を設定し、ChatGPT、Google Drive&Docs APIを管理するために使用されるDash / Pythonアプリケーションコードを理解するための手順について説明します。
私のGitLabへのリンクには、Python / Dashソースコード全体が含まれています。
この記事の終わりまでに、このアプリケーションに対して行うことができるいくつかの制限と改善の考えを共有します。この記事が、会議の議事録を取るよりも価値のあるタスクに集中するための新しいアイデアを見つけるのに役立つことを願っています。
それでは、始めましょう!
ChatGPT + Conversational UX + Dialogflowで認定を取得しましょう。
2. Webアプリケーションの概要
Webアプリケーションは以下のような画面になります。上部には、ユーザーの共有Googleドライブフォルダに存在するトランスクリプトドキュメントのリストが表示されます。このようなドキュメントは、ユーザーがGoogle Meet録音ボタンをトリガーすると、自動的に「Meet Recordings」フォルダに生成されます。
ユーザーはリストからドキュメントを選択することができます。選択されたドキュメントは中央部に表示されます。最後に、ユーザーはミーティング議事録を生成するボタンを押すことができます。
ボタンが押されると、会議議事録が自動的に2つの新しいセクションに挿入されます:
「Meeting Summary」セクションは、ミーティングトランスクリプトに基づいた会議の短い説明です。会議の時間に関係なく、簡潔であり続けます。
「Meeting Action Items」セクションは、トランスクリプトに基づいた番号付きのアクションアイテムチェックボックスリストです。期限が分かっている場合は、期限も挿入されます。
各番号付きの会議アクションアイテムには、Googleドキュメントにネイティブサポートされているチェックボックスが含まれています。後でチームがアクションリストをフォローアップし、完了した場合にチェックするために使用できます。
3. クイックスタート
以下の手順に従って、私のGitLabにあるコードを編集して実行することができます。しかし、その前にOpenAIに登録してAPIキーを取得する必要があります。また、GoogleドライブとドキュメントAPIもGoogleコンソールで有効化し、Googleサービスアカウントを作成する必要があります。
- OpenAIのウェブサイトにアクセスし、APIキーを取得
- Meeting Minutes generation with ChatGPTという私のGitLabプロジェクトにアクセス
- Google ColabでJupyter Pythonノートブックを編集して、自分のColabフォルダに保存
- コード内の’OPENAI_API_KEY’の値を自分のAPIキーに置き換える
- 以下のリンクを使用して、Google DriveとGoogle Doc APIを有効にする
- 以下のリンクを使用して、Googleサービスアカウントを作成する
- Google Service Account Key(JSonファイル)をダウンロードして、Colabフォルダに保存する。ファイル名を’credentials_serviceaccount.json’にする(またはコード内の値を変更する)
- 以前に作成したGoogleサービスアカウント(’Editor’権限)で’Meet Recordings’Googleドライブフォルダを共有する
- Google Meetミーティングに参加する。トランスクリプトで録画する。ビデオファイルとトランスクリプトドキュメントは、自分の’Meet Recordings’ Googleドライブフォルダに自動的に生成されます。
- コード内の’GOOGLE_MEET_RECORDING_FOLDER’の値を以前に共有した’Meet Recordings’GoogleドライブフォルダのIDに置き換える
- ‘Execution’メニューで’Run All’を選択する
- 数秒後にWebAppが開始されます。Colabノートブックの下部で生成されたURLをクリックして表示します。
アプリケーションは、前のセクションの最初のスクリーンショットのようになります。
4. コードの主要部分を理解する
現時点では、ChatGPT 4 APIはまだベータ版です。コードで使用されているバージョンは、’gpt-4-0314’スナップショットです。現在のバージョンである’gpt-3.5-turbo’に切り替えることもできます。
重要なコードの部分にのみ焦点を当てます。
4.1. Googleドライブの統合/API
最初の2行のコードは、Googleドライブのルートフォルダーをマウントするために使用されます。主な用途は、クイックスタートセクションで生成されたGoogleサービスアカウントの認証キー(JSonファイル)を取得することです。
次のセクションのコードは、Google Meet Recordingフォルダに保存されているすべてのトランスクリプトドキュメントのファイルリストを取得します。このリストは、後でWebアプリケーション上でこれらのドキュメントを表示するために使用されます。
4.2. Google Meetトランスクリプトドキュメントからテキストを抽出する
これらの関数は、定義されたGoogleドキュメントIDからテキスト要素を抽出するために使用されます。Google Meetは、’Transcript’という段落を生成します。 ‘Transcript’セクションの場所が識別され、会議議事録を挿入するための出発点として後で使用されます。アプリケーションによって挿入された2つのセクションは、この’Transcript’セクションの直前(および’Attendees’セクションの直後)に配置されます。
4.3. ChatGPTの準備:トランスクリプトテキストのチャンク分割
ChatGPT APIモデルには、リクエストあたりのトークン数に制限があります。 ‘gpt-3.5-turbo’モデルと互換性を保つために、コードで使用される最大値は1リクエストあたり4096トークンです。ただし、’gpt-4’モデルははるかに多くのトークンを処理できることに注意してください。 8kまたは32kモデルも利用可能で、長時間の会議の会議議事録の品質を大幅に向上させるために使用できます。
その結果、Google Meetトランスクリプトドキュメントのテキストを、4000トークンのチャンクに分割し、100トークンのオーバーラップで分割する必要があります。
これらの関数は、後でChatGPT APIで使用されるチャンクのリストを準備して返します。
4.4. ChatGPT APIの使用方法
この関数は、会議の要約とアクションアイテムを数ステップで生成します。それぞれにChatGPT API呼び出しが行われます。
- ステップ1:会議のトランスクリプトテキストを要約する。関数は、以前に生成されたチャンクリストを反復処理します。ChatGPTに送信されるコンテンツは、出席者間の記録された会話に基づいています。ChatGPT APIは、次のリクエストで各チャンクに対して呼び出されます:「この会議のトランスクリプトを要約する:<chunk>」
- ステップ2:ステップ1からの応答(会議の要約)を統合する。ChatGPT APIは、次のリクエストで呼び出されます:「これらの会議の要約を統合する:<ステップ1からのChatGPTの応答>」
- ステップ3:トランスクリプトから期限のあるアクションアイテムを取得する。関数は、以前に生成されたチャンクリストを反復処理します。ChatGPT APIは、次のリクエストで各チャンクに対して呼び出されます:「提供された会議のトランスクリプトテキストから期限のあるアクションアイテムのリストを提供する:<chunk>」
- ステップ4:ステップ3からの会議のアクションアイテムを簡潔な番号付きリストに統合する。ChatGPT APIは、次のリクエストで呼び出されます:「これらの会議のアクションアイテムを簡潔な番号付きリストで統合する:<ステップ3からのChatGPTの応答>」
使用されるChatGPT APIの各パラメータ(つまり「温度」)は、コードで文書化されています。
4.5. Google Docs APIの管理使用法:最終会議議事録の挿入
この関数の目的は、ユーザーが選択したGoogleドキュメントに会議議事録を挿入することです。テキストは「トランスクリプト」段落の前に挿入されます。前の関数で特定された開始インデックスがここで開始点として使用されます。
ここに2つのセクションが挿入されます。「会議の要約」と「会議アクションアイテム」です。
各セクションの挿入は、次の手順で行われます。
- セクションのタイトルを挿入します(テキストとして、つまり「会議の要約」)
- そのスタイルを「HEADING_1」に設定し、テキストスタイルを「bold」に設定し、フォントサイズを「14」に設定します
- セクションの内容を挿入します(これはChatGPT APIの結果から来ます)
- そのスタイルを「NORMAL」に設定します。「Meeting Summary」セクションには矢印の付いた箇条書きが、Meeting Action Items」セクションにはチェックボックスが挿入されます。
ChatGPT APIから返されたテキストを修正するために、いくつかの「タブ」と「改行」文字も挿入されます。
ヒント:「ar」テーブルは、各テキスト挿入に続いて開始インデックス位置が常に最新になるように、逆順に反復処理されることに注意してください。
4.6.メインのPython Dash Webアプリケーション
この部分は、ユーザーがインタラクトできるシンプルなWebアプリケーションを構築するために使用されます。基本的には、Googleドライブの共有フォルダに保存されているドキュメントの一覧が表示されます。ユーザーはその中から1つを選択し、画面の中央部に表示されます。ボタンが押されると、会議議事録がこのドキュメントに挿入されます。更新されたドキュメントは結果で更新されます。
このコードはDashフレームワークの上に構築されています。Google Colabノートブック内でも動作します。
各ドキュメントは、専用のiFrame内で表示されます。ドキュメントのリンクは、以前にGoogle Drive APIで取得された「embedLink」値に基づいています。
また、ChatGPT APIの呼び出しとGoogleドキュメント会議議事録の挿入ステップ中に進行状況バーが表示されます。
5. 可能な改善点
ChatGPTを会社内で使用する際の主な課題は、会社が取り組んでいる機密情報が漏洩することです。Samsungでは最近、従業員がChatGPTで会社の秘密を誤って漏洩させたことがありました。
このコードの改善点の1つは、ChatGPT APIを呼び出す前にデータマスキングを実行することです。少なくとも参加者名と機密情報を含む追加のタグ付きフィールドはマスキングされるべきです。ミーティング名にはデータマスキング用のタグが含まれることもあります。例えば、'<Microsoft>とのミーティング’という場合、データ抽出全体で’Microsoft’はマスキングされます。ChatGPT APIから応答を受け取ったら、逆の処理を行う必要があります。Google Docs APIを呼び出す前に、各マスキングされた情報をアンマスキングする必要があります。
このためには、参照テーブルを使用して各フィールドIDとそのクリア値、マスクされた値を保存する必要があります。これらのフィールドは、ChatGPT APIを呼び出す前にマスキングされ、Google Docs APIを使用して会議の議事録のセクションを挿入する際にアンマスキングされます。
6. 最後に
最後まで記事を読んでいただき、ありがとうございます!
ご覧のように、ChatGPT 4 APIとGoogle Drive/Docs APIを組み合わせることは非常に強力で、日々の業務の改善に大きく貢献することができます。
完全なソースコードは私のGitLabで入手できます:ChatGPTによる会議議事録の生成
ChatGPT + Conversational UX + Dialogflowで認定を取得しましょう
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles