ADVERTISEMENT

【Googleドキュメント】ChatGPT APIでの校正!Apps Script経由の連携

【Googleドキュメント】ChatGPT APIでの校正!Apps Script経由の連携
🛡️ 超解決

Googleドキュメントで作成した文章の校正に時間がかかっていませんか。誤字脱字の確認や表現の改善を手作業で行うのは、想像以上に手間のかかる作業です。しかし、ChatGPT APIとGoogle Apps Scriptを組み合わせることで、Googleドキュメント上で直接AIによる校正を実行できるようになります。この記事では、Apps Scriptを使ってChatGPT APIを呼び出し、選択したテキストや文書全体を自動で校正する方法を、設定手順から実際のコード例まで詳しく解説します。

【要点】ChatGPT APIとApps ScriptでGoogleドキュメントの校正を自動化する方法

  • OpenAI APIキーを取得: OpenAIのプラットフォームからAPIキーを発行し、Googleドキュメントからアクセスできるようにします。
  • Apps Scriptのスクリプトを記述: Googleドキュメントのスクリプトエディタで、選択テキストをChatGPT APIに送信し、結果を文書に反映するコードを書きます。
  • カスタムメニューから実行: スクリプトにカスタムメニューを追加し、ワンクリックで校正を実行できるようにします。

ADVERTISEMENT

ChatGPT APIとApps Scriptが連携する仕組み

ChatGPT APIは、OpenAIが提供するテキスト生成・解析サービスです。これを利用すると、校正や要約、翻訳といった自然言語処理をプログラムから行えます。Google Apps Scriptは、Google Workspace製品を拡張するJavaScriptベースのプラットフォームです。Googleドキュメントのメニューからスクリプトエディタを開き、Googleのサービスと外部APIを連携させることができます。この2つを組み合わせると、Googleドキュメントの文章を直接APIに送り、校正結果を同じ文書に書き戻すという流れを作れます。

ChatGPT APIで校正を実行するための準備手順

ここからは、実際に設定を行う手順を説明します。最初にOpenAIでAPIキーを取得し、次にGoogleドキュメントでスクリプトを作成します。

OpenAI APIキーを取得する

  1. OpenAIのアカウントを作成する
    OpenAIの公式サイト(platform.openai.com)にアクセスし、アカウントを作成します。既にアカウントがある場合はログインしてください。
  2. APIキーを生成する
    ダッシュボードの「API Keys」メニューから「Create new secret key」をクリックし、任意の名前を付けてキーを生成します。生成されたキーは後で使うので、安全な場所にメモしておいてください。
  3. 利用プランを確認する
    ChatGPT APIは従量課金制です。無料枠はありませんが、初回は一定のクレジットが付与される場合があります。事前に料金ページで使用量と費用を確認しておきましょう。

GoogleドキュメントでApps Scriptを準備する

  1. スクリプトエディタを開く
    Googleドキュメントで任意の文書を開き、メニューバーから「拡張機能」→「Apps Script」を選択します。新しいタブでスクリプトエディタが開きます。
  2. プロジェクトの名前を設定する
    スクリプトエディタ左上の「無題のプロジェクト」をクリックし、わかりやすい名前(例:「ChatGPT校正ツール」)に変更します。
  3. スクリプトにコードを記述する
    後述するコードをエディタに貼り付け、APIキーを設定します。コードは次のセクションで詳しく説明します。

校正を実行するためのApps Scriptコード

以下が、ChatGPT APIを呼び出して選択テキストを校正する基本的なスクリプトです。このコードは、選択範囲のテキストを取得し、APIに送信して校正結果を新しいコメントとして挿入します。

function proofreadSelectedText() {
  const doc = DocumentApp.getActiveDocument();
  const selection = doc.getSelection();
  if (!selection) {
    DocumentApp.getUi().alert('テキストを選択してください。');
    return;
  }
  let text = '';
  const elements = selection.getSelectedElements();
  for (let i = 0; i < elements.length; i++) {
    const element = elements[i].getElement();
    if (element.getType() === DocumentApp.ElementType.TEXT) {
      text += element.asText().getText();
    }
  }
  if (text.trim() === '') {
    DocumentApp.getUi().alert('選択したテキストが空です。');
    return;
  }
  const apiKey = 'YOUR_API_KEY'; // ここにAPIキーを設定
  const url = 'https://api.openai.com/v1/chat/completions';
  const messages = [
    {role: 'system', content: 'あなたは校正専門のアシスタントです。ユーザーが入力した文章の誤字脱字を修正し、より自然な表現に改善してください。修正箇所を箇条書きで説明し、最後に修正後の全文を出力してください。'},
    {role: 'user', content: text}
  ];
  const payload = {
    model: 'gpt-4o-mini',
    messages: messages,
    temperature: 0.3
  };
  const options = {
    method: 'post',
    headers: {
      'Authorization': 'Bearer ' + apiKey,
      'Content-Type': 'application/json'
    },
    payload: JSON.stringify(payload)
  };
  try {
    const response = UrlFetchApp.fetch(url, options);
    const json = JSON.parse(response.getContentText());
    const result = json.choices[0].message.content;
    const body = doc.getBody();
    const position = body.getChild(body.getNumChildren() - 1);
    body.insertParagraph(position, '【校正結果】\n' + result);
    DocumentApp.getUi().alert('校正が完了しました。文書末尾に結果を追記しました。');
  } catch (e) {
    DocumentApp.getUi().alert('エラーが発生しました: ' + e.toString());
  }
}

コード内の YOUR_API_KEY は、先ほど取得したAPIキーに置き換えてください。また、モデル名は gpt-4o-mini を使用していますが、必要に応じて gpt-4o などに変更できます。

カスタムメニューを作成して使いやすくする

毎回スクリプトエディタを開かなくても実行できるよう、Googleドキュメントのメニューバーにボタンを追加します。以下のコードを先ほどのスクリプトの先頭に追加してください。

function onOpen() {
  const ui = DocumentApp.getUi();
  ui.createMenu('校正ツール')
    .addItem('選択テキストを校正', 'proofreadSelectedText')
    .addToUi();
}

スクリプトを保存したら、一度スクリプトエディタを閉じてGoogleドキュメントをリロードします。メニューバーに「校正ツール」が追加され、クリックするだけで校正を実行できるようになります。

ADVERTISEMENT

ChatGPT API校正の注意点とよくあるトラブル

APIキーが漏洩するリスク

スクリプト内にAPIキーを直接記述すると、文書を共有した際にキーが流出する可能性があります。公開用の文書では特に注意してください。対策として、スクリプトのプロパティサービス(PropertiesService)を使ってキーを保存する方法があります。ただし、完全に安全ではありませんので、キーの管理には最新の注意を払いましょう。

文字数制限と課金に注意する

ChatGPT APIにはトークン制限があり、一度に送信できるテキストの長さには上限があります。長い文書を一括で送信するとエラーになる場合があります。その場合は、段落ごとに分割してリクエストを送るなどの工夫が必要です。また、APIの使用料はトークン単位で発生します。無料枠はないため、大量に使用すると予想外の請求が来ることがあります。事前にOpenAIの料金ページを確認し、使用量の上限を設定しておくことをおすすめします。

エラーが発生したときの対処法

よくあるエラーとして、APIキーが無効な場合の「401 Unauthorized」、レート制限に引っかかった場合の「429 Too Many Requests」、モデルが利用できない場合の「404 Not Found」などがあります。エラーが発生したら、コード内のcatchブロックで表示されるメッセージを確認してください。キーが正しいか、リクエスト間隔を空ける、モデル名を変更するなどの対応が必要です。

手動校正とChatGPT API校正の比較

項目 手動校正 ChatGPT API校正
速度 時間がかかる 数秒で完了
品質 個人のスキルに依存 一定の品質、ただし誤りを含む可能性あり
コスト 人件費 API利用料(従量課金)
カスタマイズ性 高い(自分で判断) プロンプトで調整可能
プライバシー 社内のみ 外部APIにデータ送信

まとめ

この記事では、Google Apps Scriptを使ってChatGPT APIを呼び出し、Googleドキュメントの文章を校正する方法を解説しました。APIキーの取得からスクリプトの記述、カスタムメニューの追加までの手順を実践すれば、ワンクリックでAI校正を実行できます。応用として、プロンプトを変更すれば翻訳や要約にも利用可能です。ただし、APIキーの管理や課金には十分注意してください。まずは短いテキストで動作確認をし、慣れてきたら文書全体の校正に挑戦してみてください。


ADVERTISEMENT

📄
Googleドキュメントトラブル完全解決データベースこの記事以外にも、書式・共有・Apps Script・引用など様々な困りごとへの解決策をまとめています。逆引きに活用してください。
この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。