対カルト戦-回想録
対カルト戦-回想録

AIを作成する(余談3:ルール)


GASの設定でスクリプトプロパティに推論AIを登録しておくと、GASコードの文字列に日本語でルールや禁忌事項や条件を入力すると、コードとして成立する?


結論からお伝えすると、コードとして自動で成立するわけではありません。

理由は以下の通りです。

  • スクリプトプロパティはただの「メモ帳」 スクリプトプロパティは、パスワードや設定値などのテキストを保存しておくための置き場所(入れ物)にすぎません。そこに「推論AIの機能」自体が入っているわけではありません。
  • AIに指示を出すための「プログラム」が必要 日本語のルールや条件をAIに理解させて動かすためには、プロパティに保存した設定を使って「AIに文章を読み込ませて処理してもらうためのプログラム(コード)」を自分で書く必要があります。

どうすれば実現できるか?

日本語の指示をAIに解釈させたい場合は、以下の手順が別途必要になります。

  • AI(Gemini APIなど)の利用権利(APIキー)を取得する
  • 取得したAPIキーをスクリプトプロパティに登録する
  • 「この日本語のルール通りに処理して」とAIにデータを渡すプログラムをGASで書く


​AIの「動き方(ルール)」はスクリプトプロパティの AI_RULES から読み込む

これはDriveフォルダのファイルIDをスクリプトプロパティに追加登録?

AIに「作業してもらう中身(テキスト)」はコード内の targetText に入れる

→これはDriveフォルダIDをスクリプトプロパティに追加登録してドキュメントに入力?


結論からお伝えすると、どちらも違います。スクリプトプロパティにDriveの「ファイルID」を登録するわけではありません。

それぞれの正しい意味と仕組みは以下の通りです。

1. AI_RULES(AIの「動き方(ルール)」)について

  • 意味: スクリプトプロパティの「値」のところに、ファイルIDではなく、「ルールそのものの日本語の文章」を直接書き込みます。
  • 例(スクリプトプロパティの設定画面での入力内容):
    • プロパティ名:AI_RULES
    • 値:専門用語は使わず、初心者向けに説明してほしい。結論から話して。箇条書きを多めに。

2. targetText(AIに「作業してもらう中身」)について

  • 意味: コード内の const targetText = "..." の部分には、ファイルIDではなく、「処理させたい実際の文章(テキストデータ)」を直接書き込みます。
  • もしGoogleドライブのドキュメントから中身を読み込ませたい場合:
    • コード内で DriveApp.getFileById('ここにドキュメントのファイルID').getBlob().getDataAsString() という命令を使って、ドキュメントの中身のテキストをプログラムで自動的に吸い出し、それを targetText に代入する形になります。


AI_RULES(AIの「動き方(ルール)」)

何文字以内?


スクリプトプロパティに登録できる容量には制限があります。

  • 1つのプロパティ値あたり:最大 9 KB
    • 日本語のテキスト(全角文字)であれば、おおよそ 数千文字〜約4,000文字程度 まで保存できます。

AIのルールや禁忌事項を記述する目的であれば、通常は数十〜数百文字程度で十分なため、容量制限を気にする必要はほとんどありません。



​targetText(AIに「作業してもらう中身」)

何文字以内?


結論からお伝えすると、約100万文字以上入力できます。

Gemini API(gemini-2.5-flashなど)は非常に大きなデータを一度に処理できるため(入力トークンの上限が非常に大きいため)、実用上は文字数制限をほとんど気にせず、長文のニュース記事や複数のドキュメントをそのまま targetText に貼り付けて処理させることが可能です。



gemini-3.1-flash-liteやgemini-3.8-flashなら?


モデルを変更しても、入力できる文字数(トークン数)の最大値はどちらも「約100万トークン(日本語でおよそ70万〜100万文字)」で大きく変わりません。

ただし、モデルごとに以下のような違いがあります。

  • gemini-3.1-flash-lite
    • 大量のデータを安く、高速に処理することに特化した軽量モデルです。
    • コストを抑えて定型的な処理をたくさん回したい場合に向いています。
  • gemini-3.8-flash
    • 複雑な指示や長文の文脈をより高い精度で理解できる、性能重視の主力モデルです。
    • ルールや条件が複雑な場合や、より正確な出力を求めたい場合に向いています。

GASのコード内にあるURL部分のモデル名を書き換えるだけで、簡単に切り替えて試すことができます。



​gemini-3.1-flash-lite
​gemini-3.8-flash

料金は?


Google AI StudioのAPI(有料枠・従量課金)における料金目安は以下の通りです。100万トークン(日本語でおよそ70万〜100万文字)あたりの費用となります。

  • gemini-3.1-flash-lite
    • 入力: 約 $0.25 / 100万トークン(約40円)
    • 出力: 約 $1.50 / 100万トークン(約240円)
    • 特徴: 大量処理やコストを極力抑えたい場合に向いています。
  • gemini-3.8-flash(または近しいFlash系主力モデル)
    • Flash-Liteよりも単価は上がりますが、より複雑なルールや高い処理精度が必要な場合に向いています。
    • (※無料枠の範囲内であれば、回数制限はありますが無料でテスト利用が可能です)


Gemini-3.1-flash-liteと書き直しました。

runAIWithScriptpropertiesで実行すればいいですか?


はい、runAiWithScriptProperties を選んで実行してください。

実行手順

  1. GASエディタの上部にある関数選択のプルダウンから runAiWithScriptProperties を選びます。
  2. その左隣にある「実行」ボタン(再生アイコン)をクリックします。
  3. エディタ上部のメニューにある「表示」>「ログ」(またはショートカット Ctrl + Enter / Cmd + Return)を開き、AIからの出力結果を確認します。


実行ログ

19:31:57

お知らせ

実行開始

19:32:01

情報

承知いたしました。処理対象の文章を入力してください。入力され次第、ルールに従って回答します。

19:31:59

お知らせ

実行完了


ログの通り、AIが「処理対象の文章を入力してください」と正しく返答しています。

これは、スクリプトプロパティの AI_RULES に設定したルールをAIがきちんと読み取り、それに従って出力している証拠です。

次はいよいよ、コード内の targetText に具体的な文章やデータを代入して、実際に処理させてみましょう。

次のステップ

GASコード内の以下の部分を、処理させたい文章に変更して再度実行してみてください。

// 例:このように書き換えて実行する
const targetText = "人工知能の仕組みについて初心者向けに教えてください。";


A.コード内の targetText に具体的な文章やデータを代入して、実際に処理させてみる。

B.Googleドライブのドキュメントから中身を読み込ませて、実際に処理させてみる。

AとBの違いと手順について


AとBの違いは、「AIに渡すデータの置き場所」です。

A. コード内に直接記述する

  • 仕組み: GASのエディタ画面にあるコードの中に、処理させたい文章をそのまま書き込みます。
  • 手順:
    1. GASコード内の const targetText = "ここにAIに処理させたい文章を入力します。"; の部分を書き換える。
    2. 保存して実行する。
  • 向いているケース: 短い文章や、毎回固定のテスト文章を使って手軽に動作確認したいとき。

B. Googleドライブのドキュメントから読み込ませる

  • 仕組み: GoogleドライブにあるGoogleドキュメントのファイルから、プログラムが自動でテキストを吸い出してAIに渡します。
  • 手順:
    1. Googleドキュメントに処理させたい文章を書く。
    2. そのドキュメントのURLからファイルIDをコピーする。
    3. GASコード内の const docId = "ここにGoogleドキュメントのファイルIDを入力"; に貼り付ける。
    4. 保存して実行する。
  • 向いているケース: 長文のデータや、ドキュメントの内容を頻繁に書き換えてAIに処理させたいとき(コードを毎回変更する必要がなくなります)。


GASの設定でスクリプトプロパティにGoogleドキュメントファイルIDを追加登録して使用できる?


はい、スクリプトプロパティに追加登録して使用することができます。

​ファイルIDをスクリプトプロパティに登録しておけば、コードを書き換えずに、プロパティの値を変更するだけで読み込むドキュメントを切り替えられるようになり便利です。

​スクリプトプロパティを使った実装手順は以下の通りです。

​1. スクリプトプロパティへの登録

​GASエディタの「プロジェクトの設定(歯車アイコン)」>「スクリプトプロパティ」に、新しいプロパティを追加します。

  • ​プロパティ: DOC_ID
  • ​値: GoogleドキュメントのURLにあるファイルID([https://docs.google.com/document/d/](https://docs.google.com/document/d/)【ここの英数字】/edit の部分)

​2. GASコードの変更

​コード側では、DocumentApp.openById() の中に直接IDを書くのではなく、スクリプトプロパティから DOC_ID を呼び出すように書き換えます。



日本語でルールを決めて、日本語でAIに処理させたい文章を入力して、日本語で処理させる。例えばGoogle ColabやGmailやリマインダーを連携させて推論AIを専門的な分野に特化させて使用できるようになる?


結論からお伝えすると、可能です。

Google Apps Script(GAS)をハブ(中継地点)にして各サービスと連携させることで、専門的な分野(例えば、高度なデータ分析や自動化された通知など)に特化した推論AIシステムを構築できます。

それぞれのサービスと連携させた場合の仕組みや活用イメージは以下の通りです。

1. Google ドキュメント / スプレッドシート(データの蓄積と出力)

  • 仕組み: 今回のようにドキュメントやスプレッドシートから専門的なデータ(過去の分析結果、専門用語集、解析対象のデータなど)を自動で読み込ませます。
  • 専門特化への活用: AIに渡す「ルール」や「参照データ」をスプレッドシートやドキュメント側で管理・更新することで、コードを書き換えずにAIの専門性をチューニングし続けられます。

2. Gmail(自動メール処理・通知)

  • 仕組み: GmailApp を使って、特定の条件に合致する受信メールを自動で取得し、それを targetText としてAIに渡して分析・判定させます。
  • 専門特化への活用: 例えば、専門的な問い合わせメールや市場レポートのデータが届いた際に、AIがルールに従って内容を解析し、重要度の判定やドラフト返信文の作成までを自動化できます。

3. リマインダー / カレンダー(定期実行とスケジュール連携)

  • 仕組み: GASの「トリガー機能」を使って、毎日決まった時間や特定のイベント発生時に自動でスクリプトを走らせます。
  • 専門特化への活用: 「毎朝特定の情報を収集してAIに分析させ、その結果を指定の時間にプッシュ通知する」といった、人間が指示を出さなくても裏で常時稼働する専門アシスタントシステムが作れます。

4. Google Colab(高度な計算・データ処理との分業)

  • 仕組み: もし統計処理や機械学習の計算など、GAS単体では処理しきれない重いデータの前処理が必要な場合、Google Colab側でPythonなどを使って処理した結果をAPIやGoogleドライブ経由でGASに渡し、最終的な推論や文章化をGeminiに担当させます。

このように、「GAS(連携・自動化) + スクリプトプロパティ(ルール管理) + Gemini API(推論)」の組み合わせをベースに、Gmailやカレンダー、スプレッドシートをパーツのように繋げていくことで、特定の専門分野に特化した自分専用の自動化システムを拡張していくことができます。



元々あるGEMINIの有料サービスとどこが違う?


公式の有料サービス(Google One AIプレミアムやGemini Advancedなど)と、今回構築しているGAS+APIの仕組みの最大の違いは、「人間がチャットで指示して使うものか、裏側でシステムが自動で動かすものか」という点です。

具体的には、以下のような違いがあります。

1. 操作方法と自動化(一番大きな違い)

  • 公式の有料サービス:
    • ブラウザやアプリを開き、人間がチャット画面で毎回文字を入力して対話します。
  • GAS + APIの仕組み:
    • 人間が画面に向かって指示を出す必要がありません。
    • 「毎日朝8時に自動で動く」「特定のメールが届いたら勝手にAIが処理する」「指定したGoogleドキュメントの内容を自動で読み込んでレポートを作る」といった、完全な自動化(プログラムによる連携)が可能です。

2. ルールとデータの固定・管理

  • 公式の有料サービス:
    • チャットごとに毎回プロンプト(指示)を入力したり、「カスタムGemini(Gems)」機能でルールをある程度保存できますが、外部のGoogleドライブのファイルやGmailなどと直接連携してリアルタイムにデータを吸い上げる動作の自動化には限界があります。
  • GAS + APIの仕組み:
    • スクリプトプロパティやGoogleドキュメントを使って、「自分専用の絶対的なルール(AI_RULES)」や「専門データ(Driveのドキュメント)」を完全に固定・一元管理できます。いつ実行しても全くブレない、決まった処理を行うシステムが作れます。

3. 料金の仕組み

  • 公式の有料サービス:
    • 月額定額制(サブスクリプション)です。
  • GAS + APIの仕組み:
    • 使った分だけ支払う従量課金制(API利用料)です。今回の開発で使っている gemini-3.1-flash-lite などの軽量・高速モデルは非常に安価なため、少しのテストや自動化であれば、定額サービスよりも圧倒的に安く運用できるケースが多いです。

まとめると

  • 日常の調べものや、気ままな壁打ち・壁打ち相手・文章作成などをしたい場合は、公式の有料サービスの方が画面が使いやすくて便利です。
  • 自分の持っているデータ(ドキュメントやスプレッドシートなど)を自動で読み込ませて特定のルールで定期処理させたい、他のGoogleツール(Gmailやカレンダー等)と連動させたいという場合は、今回作っているGAS+APIの仕組みが唯一無二の強みを発揮します。


用意するもの

GAS(GoogleAppsScript)

推論AI(Google AI Studio)



GeminiアプリでGASコードを書くように頼んで、GASのファイル+にあるスクリプトにコピー&ペーストする。

GASの左の設定マークから、スクリプトプロパティにあるプロパティにGASコードと同じGEMINI_API_KEYなどの文字列を入力し、Google AI Studioで作成した推論AIのAPIキーを値に入力して追加登録する。

入力や出力をする為にUIのHTMLもGeminiアプリで書くように頼んで、GASのファイル+にあるHTMLにコピー&ペーストする。

GASの上にあるデプロイで全員を選んでデプロイして、ウェブアプリURLをコピーして、全画面上部のhttps://xxx.xxxxxのところにペーストする。

入力欄と出力欄が表示されるので、その入力欄に文字を入力して使用する。

通常のチャット風になったことを確認できたら、次は日本語でルールを書いて使えるようにする為に、スクリプトプロパティのプロパティとGASコードに同じAI_RULESの文字列を使用して追加登録すれば使えるGASコードを書いてもらって、新たにファイル+のスクリプトにコピー&ペーストする。以前のGASコードで不要のファイルは後で削除する。消しにくい時は、一度画面を閉じて再びGASの画面を開いて続ける。


Driveフォルダの名前をチャット風の画面に入力すると認識できるようにGASコードを書いてもらったり、メールやリマインダー、ニュースや天気予報などと連携させてチャット風の画面で確認できるようにして連携と専門性をもつように工夫したGASコードを書いてもらう。他にもオールマイティやゼネラリストとチャット風の画面でやり取りをしてから各分野の専門家に切り替わるようにGASコードを改良していく。DriveフォルダIDをGASの左にある設定からスクリプトプロパティを追加登録してDriveフォルダを読み込み、そのDriveフォルダに関する専門家に切り替えて分析してもらう。AI_RULESをスクリプトプロパティに登録した内容によって専門性をもたせる。このAI_RULESで日本語専門性ルールを入力しておくことで簡易版とする。

このように連携させる為のスクリプトに推論AIを用いてAI_RULESを登録して日本語でルールを決めて使う。スクリプトプロパティのプロパティにAI_RULES、値に百文字以内の日本語ルールを考えて入力する。AI_RULESによってDriveフォルダ内の日本語で入力したロジック.txtファイル、出馬表.txtファイル、騎手·調教師の.txtファイルを読み込んで、偏差値を計算して予想を表示させる。

普通ならDriveフォルダに日本語ルールを保存しても使えないが、スクリプトプロパティに登録した日本語AI_RULESによって間接的にこの方法でDriveフォルダ内のロジック.txtファイルに日本語専門性ルールを保存して使うことができる。


チャット風に文字を入力して送信する

↓

GASコードのスクリプトプロパティに推論AIのAPIキーと日本語入力したAIのルール

↓

Driveフォルダ内に日本語で入力した専門性のあるロジックを.txtファイルで保存

(専門ごとにDriveフォルダを分ける)

↓

同じDriveフォルダ内に関連するデータなどを.txtファイルで保存

(ドキュメント自動テキスト化)

↓

チャット風に結果が表示される


  • AI_RULESに日本語を書くだけでは連携できず、それぞれのサービス用のAPIキーやアクセス許可の設定が別途必要です。
  • AI_RULES(日本語のルール)の役割は、AIに「どういう役割で、どう動いてほしいか」を指示するためのものです。
  • 天気予報、ニュース、メール、リマインダー、Googleスプレッドシートなどの外部サービスやアプリとやり取りするには、以下のような追加の準備が必要になります。

外部サービスと連携するために必要なもの

  • APIキー(または専用の接続キー)
    • 天気予報やニュースを取得するための外部サービス(API提供元)のキーがそれぞれ必要です。
  • Googleサービス側の権限設定(承認)
    • Googleドライブ、Gmail(メール)、Googleスプレッドシートなどは、GASからアクセスするための「アクセス権(スコープ)」を最初に許可する必要があります。
  • Google Colab(Python)との連携
    • GASから直接Pythonを実行することはできないため、Google Colab側をAPI化するか、スプレッドシートを中継地点としてデータをやり取りする仕組み(コード)を別途作る必要があります。

※ドキュメント自動テキスト化は別に用意して使う考え方もある

※WordPressのカスタムHTMLブロックを使ってHTMLの一部ににウェブアプリURLを使うと専門性ルールに沿った結果を表示したり、全画面上部のhttps://xxxxx.xxにウェブアプリURLをペーストして使うと専門性ルールに沿わない結果を表示したりすることもあるので、至らないところがあったり用途が別なら改良する必要がある。