見出し画像

GAS学習note:Day10 AIが提案する入力予測〜ChatGPTが“次の一手”を教えてくれる〜

はじめに

Day9では、onEditトリガーを使って入力された瞬間に自動補完する仕組みを作りました。
Day10ではその一歩先へ進みます。

✅「入力する前にAIが提案してくれる」

つまり、“考える入力”から“選ぶ入力”へ。
ChatGPTとGASを組み合わせれば、
あなたのスプレッドシートが“予測型アシスタント”になります。



1️⃣ 入力予測とは?

入力予測とは、過去データやルールをもとに、次に入力される値を推測する仕組みです。

たとえば、

このようなデータがあるとき、
AIが「このパターンなら次は“キャップ”が入力される可能性が高い」と提案します。


2️⃣ ChatGPTに予測させるプロンプト

ChatGPT APIを使えば、過去データを分析して次の入力を提案できます。

function suggestNextProduct() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("売上");
  const last = sheet.getLastRow();

  // 過去3件の履歴を取得
  const data = sheet.getRange(last - 3, 2, 3, 1).getValues().flat();

  const prompt = `
過去の販売履歴は次の通りです:
${data.join("、")}
次に販売される可能性が高い商品を1つだけ日本語で提案してください。
`;

  const url = "https://api.openai.com/v1/chat/completions";
  const token = "YOUR_OPENAI_API_KEY";

  const payload = {
    model: "gpt-3.5-turbo",
    messages: [{ role: "user", content: prompt }],
  };

  const options = {
    method: "post",
    headers: { "Authorization": "Bearer " + token },
    contentType: "application/json",
    payload: JSON.stringify(payload),
  };

  const response = UrlFetchApp.fetch(url, options);
  const result = JSON.parse(response.getContentText());
  const suggestion = result.choices[0].message.content.trim();

  sheet.getRange(last + 1, 2).setValue(suggestion); // 次の行に提案を表示
}

💡 ポイント

  • ChatGPTは履歴を自然言語で理解できる

  • “次に来る要素”の予測が得意(人間の感覚に近い)

  • 出力をそのままシートに書き込めば「AIの予測結果」が表示される


3️⃣ onEditで自動トリガーにする

Day9で使った onEdit(e) と組み合わせれば、
ユーザーが新しい行を追加した瞬間に、AIが次の提案を出してくれます👇

function onEdit(e) {
  const sheet = e.range.getSheet();
  if (sheet.getName() !== "売上") return;

  const row = e.range.getRow();
  const col = e.range.getColumn();

  // 新しい売上行を追加したら提案を生成
  if (col === 2 && row > 2) {
    suggestNextProduct();
  }
}

📘 結果イメージ
ユーザーが「10/3」と入力した瞬間、次のセルに

💡 ChatGPTの提案:「キャップ」

が自動で表示される。


4️⃣ ChatGPTとの“改善対話”

このような自動化を作るとき、
ChatGPTに「予測精度を上げるプロンプト」を一緒に考えてもらうのがポイントです。


💬 実際のやり取り例

📘 あなた

ChatGPT、次に売れる商品をもう少し正確に当てたいです。
条件に「最近人気のアイテム」も考慮させられますか?

🤖 ChatGPT

できます!
プロンプトに「最近のトレンドも参考にして」と加えると精度が上がります👇

const prompt = `
過去の販売履歴は次の通りです:
${data.join("、")}
最近のファッション人気傾向も考慮して、次に売れそうな商品を1つ提案してください。
`;

📘 あなた

なるほど!AIに“外部知識”を意識させるわけですね✨


5️⃣ GASとChatGPTの組み合わせでできること

💡 AIが考え、人間が選ぶ。
これが「予測型アシストツール」の基本形です。


6️⃣ ChatGPTを使った“提案文”カスタマイズ

AIの提案をメールやSlack通知に流せば、
「明日の販売提案」や「次に発注すべき商品」が自動で届くようになります👇

function notifySuggestion() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("売上");
  const suggestion = sheet.getRange(sheet.getLastRow(), 2).getValue();

  const message = `🧠 次に売れそうな商品は「${suggestion}」です。`;
  MailApp.sendEmail("you@example.com", "【AI予測】次の販売提案", message);
}

👉 これにトリガーを組み合わせると、
「AIが考えた明日の提案が毎朝届く」ようになります。


まとめ:Day10で身についた力

Day10では、GASとChatGPTを組み合わせて
「AIが次の入力を予測する」仕組みを作りました。

  • ✅ ChatGPT APIで過去データを文脈理解

  • ✅ onEdit()で入力トリガーを連動

  • ✅ AI提案をスプレッドシートに自動出力

  • ✅ トリガー+通知で「明日の提案」を自動配信

💡 Day10のゴール:

“AIが考え、人間が選ぶ”スプレッドシートを実現!


次回予告(Day11)

Day11では、「ChatGPTとGASの会話をUI化」します。
シート上に“AIボタン”を作り、クリックでAIと対話できる仕組みを構築します。
コードを書かなくても、ChatGPTが答えてくれるUI付きGASの世界へ✨

いいなと思ったら応援しよう!

この記事が参加している募集