スプレッドシートをマスターデータとしたAIによる商品説明文の大量自動生成

【GAS×ChatGPT】商品マスタ1000件を自動生成・検品するスプレッドシート構築術

この記事は急速に進化する技術について解説しています。最新情報は公式ドキュメントをご確認ください。

約12分で読めます
文字サイズ:
【GAS×ChatGPT】商品マスタ1000件を自動生成・検品するスプレッドシート構築術
目次

この記事の要点

  • スプレッドシートを商品マスターデータとして活用
  • AI(ChatGPTなど)による商品説明文の自動生成
  • 大量の商品情報に対応し、生成から検品まで効率化

はじめに:その「自動化」は、新たな「事故」の始まりかもしれません

AI導入の機運が高まる中、ECの現場で頻繁に目にする悲劇があります。

それは、「AIで楽をしようとして、逆に収拾がつかなくなる」というパターンです。

「ChatGPTを使えば、1000件の商品説明文なんて一瞬で終わる」

そう思っていませんか? 確かに生成自体は一瞬です。しかし、その生成された1000件の文章の中に、事実と異なるスペック(ハルシネーション)や、ブランド毀損になりかねない表現が含まれていたらどうでしょう? CMS(コンテンツ管理システム)に直接流し込んでしまった後で気づいたとしたら、目も当てられません。

修正にかかる工数は、最初から手作業で作るよりも遥かに膨大になります。これは、いわゆる「AIリファクタリング地獄」とも言える状態です。

AIによる大量生成において重要なのは、「いかに速く作るか」ではなく、「いかにコントロール可能な状態で管理するか」です。経営的なリスク管理と、現場のエンジニアリングのバランスが問われる部分でもあります。

本記事では、スプレッドシートを単なる表計算ソフトとしてではなく、「生成・検品・管理」を一元化するコマンドセンター(司令塔)として再定義します。プログラミングの専門家ではないマーケターの方でも、まずは動くプロトタイプを作れるよう、Google Apps Script(GAS)の具体的なコードや関数の組み方を交えて解説します。

手作業のコピペ作業から解放されつつ、品質責任を果たせる「プロフェッショナルな自動化」の設計図を、これからお渡しします。準備はいいですか?


1. 量産と品質を両立する「スプレッドシート中心」のワークフロー設計

量産と品質を両立する「スプレッドシート中心」のワークフロー設計 - Section Image

多くの失敗プロジェクトでは、AIツールとCMSを直接つなごうとします。しかし、これはリスク管理の観点から推奨されません。まずは、なぜスプレッドシートを間に挟む必要があるのか、そのアーキテクチャ(構造)を理解しましょう。

なぜCMS直接入力ではなくスプレッドシートなのか

理由はシンプルです。「バージョン管理」と「一括操作」の容易さにおいて、スプレッドシートに勝るツールはないからです。

ShopifyやWordPressなどのCMSは、あくまで「表示」のためのシステムです。大量のデータを横断してチェックしたり、AIの出力結果と元のスペックデータを並べて比較したりするUIにはなっていません。

スプレッドシートを挟むことで、以下の3つのメリットが生まれます。

  1. 可逆性の確保: AIが不適切な文章を出力しても、元のマスタデータは汚染されません。
  2. 一括検品: フィルタ機能や条件付き書式を使って、1000件のデータから「異常値」だけを瞬時に見つけ出せます。
  3. コスト管理: 生成前にトークン数(文字数)を概算し、APIコストをコントロールできます。

「マスタデータ」と「生成データ」の分離管理

実践的なシステム設計においては、必ずシートを明確に役割分担させます。

  • Inputシート(マスタデータ): 商品名、スペック、価格など、絶対に間違ってはいけない事実データ。
  • Processingシート(生成指示): マスタデータを参照し、AIへの指示(プロンプト)を組み立てる作業場。
  • Outputシート(生成結果): AIが出力したテキストを格納し、人間が検品・修正を行う場所。

このようにデータを「流れる川」のように設計することで、どこでエラーが起きたかを特定しやすくなります。

全体像:データ整備→生成→検品→出稿のフロー図

理想的なワークフローは以下の通りです。

  1. データ整備: スペック情報の構造化(後述)
  2. プロンプト生成: スプレッドシート関数で自動生成
  3. バッチ生成: GAS経由でOpenAI APIを叩き、結果を取得
  4. 機械的検品: 文字数やNGワードを自動チェック
  5. 目視検品: 人間による最終確認(承認フラグを立てる)
  6. 出稿: CSVエクスポートしてCMSへインポート

このプロセスの中で、「AIに任せる部分」と「人間が判断する部分」を明確に分けることが、プロジェクト成功の鍵です。これを「Human-in-the-loop(人間参加型ループ)」と呼びます。


2. AIが高品質な文章を書ける「マスタデータ」の構造化

AIが高品質な文章を書ける「マスタデータ」の構造化 - Section Image

「AIの回答が安定しない」「似たり寄ったりの文章になる」という課題がよく挙げられますが、その原因の9割はプロンプトではなく、入力データ(マスタデータ)の質にあります。

Garbage In, Garbage Out(ゴミを入れればゴミが出てくる)
これはAI開発の鉄則です。

「スペック情報」と「訴求ポイント」の列分け

例えば、スプレッドシートのA列に「商品情報」として、スペックや特徴を全部まとめて長文で書いていませんか? これではAIが情報の重み付けを判断できません。

以下のように列を分解してください。

  • A列(商品名): ウルトラライトダウンジャケット
  • B列(ターゲット): 30代ビジネスマン、寒がりだが着膨れしたくない人
  • C列(主要機能): 撥水加工、ポケッタブル、重量200g
  • D列(利用シーン): 通勤、オフィスの置きジャケット、秋キャンプ
  • E列(トーン&マナー): 知的、簡潔、信頼感

このように構造化することで、AIは「誰に」「何を」「どう伝えるか」を正確に理解できます。

AIへの指示(プロンプト)を関数で動的に生成する方法

1行ずつプロンプトを手書きするのはナンセンスです。スプレッドシートの関数を使って、マスタデータからプロンプトを自動生成しましょう。

F列に「生成用プロンプト」という列を作り、以下のような数式(CONCATENATE関数や&演算子)を入れます。

="あなたはプロのECライターです。以下の情報を元に、"&E2&"なトーンで商品説明文を300文字以内で作成してください。

【商品名】"&A2&"
【ターゲット】"&B2&"
【特徴】"&C2&"
【利用シーン】"&D2&"

※注意:絶対に嘘をつかないこと。数値データは正確に引用すること。"

これをオートフィルで下までコピーすれば、1000商品分のユニークな指示書が一瞬で完成します。これが「スプレッドシート中心」のアプローチの強みです。

NGワードや必須キーワードの管理列を作成する

さらに品質を高めるために、別途「設定シート」を作り、そこにプロジェクト共通のルールを記載しておきます。

  • NGワード: 「最高」「No.1」(景品表示法対策)
  • 必須ワード: ブランド名、送料無料キャンペーンなど

これらをプロンプト生成の数式に参照させる(Settings!$B$2のように)ことで、全商品の生成ルールを一括で変更できるようになります。ルールが変わったら数式を修正して再計算するだけ。メンテナンス性が劇的に向上します。


3. 生成エンジンの実装:ツール選定と接続設定

さて、いよいよAIとの接続です。ここでは「GPT for Sheets」などの既存アドオンを使う方法と、自分でGASを書く方法があります。アジャイルかつスピーディーに、そしてプロフェッショナルな運用を目指すなら、GASによる自作が推奨されます。

拡張機能(GPT for Sheets)vs 自作GAS

既存のアドオンは導入が簡単ですが、以下のデメリットがあります。

  • コスト割高: API利用料に加え、アドオン自体の利用料がかかる場合がある。
  • ブラックボックス: どのようなプロンプトが裏で追加されているか見えない。
  • 大量処理に弱い: 数千件を一気に処理すると、Googleの実行時間制限(6分間の壁)やAPIレートリミットに引っかかり、エラーが多発する。

一方、GASであれば、エラー時の再試行(リトライ)処理や、処理を分割して実行するロジックを自分で組めるため、大量データの処理に適しています。まずは動くものを作り、検証しながら改善していくプロトタイプ思考にぴったりです。

APIキーの取得と安全な管理方法

まず、OpenAIのプラットフォームでAPIキーを取得してください。このキーは「クレジットカード」と同じです。絶対にスプレッドシートのセルに直接書き込んではいけません(シートを共有した瞬間に漏洩します)。

GASの「スクリプトプロパティ」機能を使って保存します。

  1. スプレッドシートのメニューから「拡張機能」→「Apps Script」
  2. 左側の歯車アイコン「プロジェクトの設定」
  3. 「スクリプトプロパティ」に OPENAI_API_KEY という名前でキーを保存

実装:シンプルかつ堅牢なGASコード例

以下は、指定したセルのプロンプトを読み取り、AIの回答を隣のセルに書き込む基本的なスクリプトです。エラーハンドリングを含めています。

function generateDescriptions() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Processing');
  const lastRow = sheet.getLastRow();
  // プロンプトがある列(F列とする)と出力先(G列とする)
  const promptCol = 6;
  const outputCol = 7;
  
  // APIキーの取得
  const apiKey = PropertiesService.getScriptProperties().getProperty('OPENAI_API_KEY');
  const url = 'https://api.openai.com/v1/chat/completions';

  // 2行目から順に処理(ヘッダー除外)
  for (let i = 2; i <= lastRow; i++) {
    // すでに出力がある場合はスキップ(コスト節約&再開用)
    if (sheet.getRange(i, outputCol).getValue() !== '') continue;

    const prompt = sheet.getRange(i, promptCol).getValue();
    if (!prompt) continue;

    const payload = {
      model: 'gpt-4o-mini', // コストパフォーマンスの良いモデル
      messages: [
        { role: 'system', content: 'あなたはECサイトの優秀なライターです。' },
        { role: 'user', content: prompt }
      ],
      temperature: 0.7
    };

    const options = {
      method: 'post',
      contentType: 'application/json',
      headers: { Authorization: 'Bearer ' + apiKey },
      payload: JSON.stringify(payload),
      muteHttpExceptions: true // エラーでも止まらないようにする
    };

    try {
      const response = UrlFetchApp.fetch(url, options);
      const json = JSON.parse(response.getContentText());
      
      if (json.choices && json.choices.length > 0) {
        sheet.getRange(i, outputCol).setValue(json.choices[0].message.content.trim());
      } else {
        sheet.getRange(i, outputCol).setValue('Error: API Response Invalid');
      }
      
      // レートリミット回避のための待機
      Utilities.sleep(500);
      
    } catch (e) {
      sheet.getRange(i, outputCol).setValue('Error: ' + e.toString());
    }
  }
}

このコードのポイントは、if (sheet.getRange(i, outputCol).getValue() !== '') continue; の部分です。これにより、途中で処理が止まっても、再度実行すれば「終わっていない行」から再開できます。1000件処理する際には必須のロジックです。


4. 実践ワークフロー:1000件を一括生成・検品する5ステップ

4. 実践ワークフロー:1000件を一括生成・検品する5ステップ - Section Image 3

ツールが整いました。では、実際に業務を回すフローを見ていきましょう。ここでのキーワードは「いきなり全部やらない」です。

Step 1: テスト生成(5〜10件)でのプロンプト調整

まず、代表的な商品カテゴリから数件だけデータを入力し、GASを実行してみます。出力された文章をチェックし、トーンや情報の網羅性を確認します。

「もっと感情に訴えてほしい」「箇条書きを含めてほしい」といった要望があれば、個別のプロンプトではなく、プロンプト生成用の「数式」を修正します。これがシステム思考です。

Step 2: バッチ処理による一括生成実行

プロンプトが固まったら、残りのデータを流し込みます。1000件の場合、OpenAIのAPI制限やGASの実行時間制限(6分)を考慮し、数回に分けて実行するか、トリガー機能を使って自動で継続実行させる工夫が必要です。

まずは100件ずつ実行し、様子を見るのが安全です。モデルは gpt-4o ではなく、軽量で高速な gpt-4o-mini を推奨します。商品説明文のような定型的なタスクでは十分な性能を発揮し、コストは数十分の一で済みます。

Step 3: 「条件付き書式」を使った異常値の自動検出

生成が終わったら、検品です。1000件すべてを熟読するのは現実的ではありません。スプレッドシートの機能を使い、「怪しいもの」をあぶり出します

  • 文字数チェック: LEN関数を使い、文字数が極端に少ない(エラーの可能性)、または多すぎるセルを赤くハイライトします。
  • NGワードチェック: REGEXMATCH関数を使い、禁止用語が含まれている行を黄色くします。
  • 重複チェック: 全く同じ文章が生成されていないか確認します。

これにより、人間が見るべき対象を全体の10〜20%に絞り込むことができます。

Step 4: 人間による目視チェックと修正運用

あぶり出された「要注意データ」と、ランダムに抽出した数件を目視チェックします。

修正が必要な場合は、生成されたセルを直接書き換えるのではなく、隣に「修正用カラム」を作ってそこに記入することを推奨します。これにより、「AIの原案」と「人間の修正案」の差分がデータとして残り、次回のプロンプト改善(ファインチューニング)の教師データとして活用できるからです。

最後に「検品完了フラグ」列にチェックを入れます。

Step 5: CSVエクスポートとCMSへのインポート

検品完了フラグが立ったデータのみをフィルタリングし、CMS指定のフォーマット(CSV等)でエクスポートします。この際も、スプレッドシート上でCMSのカラム名に合わせた「出力用シート」を作っておけば、コピー&ペーストだけで準備が完了します。


5. 運用ガイドライン:更新とリスク管理

システムを構築して終わりではありません。ECサイトは生き物であり、商品は常に変化します。

商品仕様変更時の再生成ルール

商品のスペック(重量や素材など)が変わった場合、マスタデータを更新するだけでは説明文は変わりません。「Inputシート」を更新したら、必ず「Outputシート」の該当セルをクリア(空白に)し、再生成フラグを立てる運用ルールを徹底してください。

APIコストの試算と予算管理

gpt-4o-mini は安価ですが、塵も積もれば山となります。また、誤って無限ループのスクリプトを走らせてしまうと、クラウド破産のリスクもあります。

  • OpenAIの管理画面で、月間の利用上限金額(Hard Limit)を設定する。
  • GAS側でも、1日の実行回数に制限をかける。

これらの安全装置(サーキットブレーカー)を必ず設定しておきましょう。

著作権と法的リスクへの対応策

AI生成物の著作権については議論が続いていますが、商用利用においてより重要なのは「他者の権利侵害」と「虚偽記載」のリスクです。

特に、健康食品や化粧品などの薬機法に関わる商材や、特定商取引法に関わる記述については、AI任せにせず、必ず法務担当者や専門家のチェックを通すフローを組み込んでください。「AIが書いたから」という言い訳は、法律の世界では通用しません。


まとめ:自動化は「手抜き」ではなく「高度な管理」である

今回ご紹介したスプレッドシートを中心としたワークフローは、単に「文章を書く作業」をAIに代行させるだけのものではありません。データの流れを整理し、品質管理のプロセスを業務に組み込む、一種の「業務改善(DX)」プロジェクトです。

  • マスタデータの構造化による情報の資産化
  • GASによる柔軟なAPI連携とコスト管理
  • 条件付き書式等を活用した効率的な検品体制

これらを実装することで、チームは「文字入力」という単純作業から解放され、「どの商品をどう売るか」というマーケティング戦略の立案に時間を使えるようになります。

技術の本質を見抜き、ビジネスへの最短距離を描くこと。そして、理論だけでなく「実際にどう動くか」を検証しながらアジャイルに進めることが、AIプロジェクトを成功に導く鍵となります。

AIという強力なエンジンを、安全かつ最大限に乗りこなすための「運転技術」を、組織全体で磨いていきましょう。

【GAS×ChatGPT】商品マスタ1000件を自動生成・検品するスプレッドシート構築術 - Conclusion Image

参考文献

  1. https://www.ai-souken.com/article/checking-chatgpt-version
  2. https://www.onamae.com/business/article/100583/
  3. https://prtimes.jp/main/html/rd/p/000000190.000056138.html
  4. https://biz.moneyforward.com/ai/basic/3176/
  5. https://sogyotecho.jp/chat-gpt/
  6. https://japan.zdnet.com/article/35243594/
  7. https://forbesjapan.com/articles/detail/91599
  8. https://tech-camp.in/ai-navi/chatgpt5/
  9. https://www.watch.impress.co.jp/docs/news/2084048.html

コメント

コメントは1週間で消えます
コメントを読み込み中...