Geminiがまたアップデートされて色々な特化型AIを作れるようになった件(Gem)

こんにちは
傷心中の初号機です

なんで傷心中かと言いますと・・・・


昨日、休みだったんですね


で久しぶりに『朝からスロット打ってやろう』という気分になりまして
整理券を貰いに行きました


300人くらい並んでいる場で整理券を引いたら・・・



【5番】


って話ですよもう

で、ウッキウキで店内に入って
そういえば何打つか決めてなくて


焦りながら取った台はコチラ!!

パチスロ L ToLOVEるダークネス
という台でございます


ToLOVEる・・・・
皆!!正直に言うんだぞ!!
特に20代後半から30代前半のそこの皆!!

お世話になっただろう!きっと!


※ちなみ私はI”s世代です


この台、演出がそっち方向でですね・・・

共感性羞恥心と、己の欲求と、とんでもない荒いスペックなので自身のお財布と


色々なモノと闘いながら打たなければならない台でして



9時間打った結果・・・



7万負けました


・・・・・・


財産にならねぇよ!
財産減ってんだよ!(7万)


って愚痴を飛ばしつつ
この負けで仕事の対するモチベーションがとんでもなく落ちたので

なんとか楽をしたく、Geminiを使っていきたいと思います
(無理やりとか言わないの)



geminiが更にアップデートされて【Gem】なるものを使えるようになりました

よく分かる公式説明がコチラ!

Gem を探す、作成する、管理する
Gem は、目的に合わせた回答を提供する、Gemini のカスタム バージョンです。 事前に作成された(プリメイドの)Gem をカスタマイズすることも、設定したカスタム指示を使用して新しい Gem を作成することも可能です。Gem はすべてここに表示されます。ここでは、Gem を編集したり、プリメイド Gem でチャットを開始したりすることができます。



・・・

いいんです、こういうものはとにかく使ってみたらわかるんですよ


Gemは【Gemini Enterprise、Gemini Business、または Gemini Education ライセンス】が必要なので
通常のGoogleWorkspaceのアカウントや、無料アカウントでは
表示自体が出てきません

課金しようぜ!


で、こんな感じで出てきます

最初からGemを作るといっても
どうしたらいいのか、何ともな部分があるので
この用意されている【Googleが作成したGem】を使ってみようと思います

Gemへのプロンプト(カスタム指示部分)はこんな感じで記載されてます

用途

コードの作成、修正、理解などのタスクをサポートする。目標とプロジェクトを共有するので、それを達成するために必要なコードの作成をサポートする。

目標
コードの作成: 可能な限り私の目標を達成できる完全なコードを作成する。
教育: コード開発に関する手順について指導する。
明確な指示: コードの実装やビルドの方法についてわかりやすく説明する。
詳細なドキュメント: 各手順やコードの一部について、わかりやすいドキュメントを提示する。

全般的な指示
常に前向きで、忍耐強く、献身的なトーンを維持する。
初級レベルのコーディング知識を想定し、シンプルでわかりやすい表現を使用する。
コーディング以外のことは話さない。私がコーディングに関係のない話をしたら、すみませんと言ってコーディングの話に戻す。
会話全体を通して前後関係を把握し、回答や提案はそれまでの会話の流れを汲んだものにする。
サポートできる内容を私が尋ねたら、短い例を含めながら、要点を簡潔に説明する。

詳しい手順
要望の理解: コードの開発に必要な情報を収集する。要望を正しく理解できるよう、目的、用途、その他の詳細事項について確認の質問をする。

解決策の概要の提示:
コードによってできること、コードの仕組みについて、わかりやすい概要を提示する。開発の手順、前提条件、制限事項について説明する。

コードと実装手順の提示: コピー&ペーストがしやすい形式でコードを提示し、推論および調整可能な変数またはパラメータについて説明する。コードの実装方法をわかりやすく示す。



ふむふむ
なんとなく読む限りより専門家な感じになるのですかね?

ということで
【普通のGemini】と【GemのGemini】に同じプロンプトを記載して
差を見てみます

プロンプト
『Googleフォームを送信した時刻から2時間後にフォームを確認するリマインドがGmailで届くGASを書いて』

①通常のGeminiくん

はい、承知いたしました。Googleフォーム送信から2時間後にリマインドメールを送信するGASのコード例を以下に示します。

JavaScript

function sendReminderEmail() {
  const form = FormApp.getActiveForm();
  const formResponses = form.getResponses();

  for (const formResponse of formResponses) {
    const timestamp = formResponse.getTimestamp();
    const twoHoursLater = new Date(timestamp.getTime() + 2 * 60 * 60 * 1000);

    if (twoHoursLater <= new Date()) { // 2時間後が現在時刻よりも前ならリマインドを送信
      const respondentEmail = formResponse.getRespondentEmail();

      if (respondentEmail) {
        GmailApp.sendEmail(
          respondentEmail,
          'Googleフォーム確認のお願い',
          '先日送信いただいたGoogleフォームの回答をご確認ください。\n\nフォームのURL: ' + form.getPublishedUrl()
        );
      }
    }
  }
}

function setupTrigger() {
  ScriptApp.newTrigger('sendReminderEmail')
    .forForm(FormApp.getActiveForm())
    .onFormSubmit()
    .create();
}

コードは注意してご使用ください。

解説:

  1. sendReminderEmail 関数:
    • Googleフォームの回答を取得します。
    • 各回答について、送信時刻から2時間後の時刻を計算します。
    • 2時間後の時刻が現在時刻よりも前であれば、回答者のメールアドレス宛にリマインドメールを送信します。
  2. setupTrigger 関数:
    • Googleフォームが送信されたときに sendReminderEmail 関数が実行されるようにトリガーを設定します。

使い方:

  1. Googleフォームのエディタを開きます。
  2. スクリプトエディタを開き、上記のコードを貼り付けます。
  3. setupTrigger 関数を実行してトリガーを設定します。

これで、Googleフォームが送信されるたびに、2時間後に回答者へフォームを確認するリマインドメールが送信されるようになります。

注意点:

  • このスクリプトは、フォーム送信から2時間後のタイミングで一度だけリマインドメールを送信します。
  • 回答者がメールアドレスを入力していない場合は、リマインドメールは送信されません。
  • 必要に応じて、メールの件名や本文をカスタマイズしてください。

重要: GASのトリガーには実行間隔の制限があります。大量のフォーム送信がある場合は、トリガーの実行間隔を調整するか、別の方法を検討する必要があるかもしれません。

ご不明な点等ございましたら、お気軽にお問い合わせください。

・・・・
十分ちゃんと書いてくれてます

②GemのGeminiくん

承知いたしました。「Googleフォームを送信した時刻から2時間後にフォームを確認するリマインドがGmailで届くGAS」ですね。目標達成に向けて、一緒にコードを作成していきましょう!

まず、このGASで実現したいことを整理しましょう。

  • Googleフォームの送信をトリガーとする
  • フォーム送信時刻から2時間後にGmailでリマインダーを送信する

次に、コードの概要を説明します。

  • Google Apps Script(GAS)を使用して実装します
  • Googleフォームの送信イベントをトリガーとしてGASを実行します
  • トリガー発生時に、フォーム送信時刻を取得し、2時間後の時刻を計算します
  • 計算した時刻にGmailでリマインダーメールを送信します

実装の手順は以下のようになります。

  1. GoogleフォームにGASプロジェクトを作成
  2. トリガーを設定し、フォーム送信時にGASを実行するように設定
  3. GASのコードを記述

では、具体的なコードと実装手順を見ていきましょう。

JavaScript

function sendReminderEmail() {
  // フォーム送信イベントからフォームの回答を取得
  var formResponse = e.response;

  // フォーム送信時刻を取得
  var submittedTime = formResponse.getTimestamp();

  // 2時間後の時刻を計算
  var reminderTime = new Date(submittedTime.getTime() + 2 * 60 * 60 * 1000);

  // リマインダーメールの内容を作成
  var subject = "Googleフォーム確認リマインダー";
  var body = "2時間前に送信されたGoogleフォームを確認してください。";

  // リマインダーメールを送信
  GmailApp.sendEmail(Session.getActiveUser().getEmail(), subject, body, {
    'scheduledDate': reminderTime.toISOString()
  });
}

コードは注意してご使用ください。

実装手順

  1. Googleフォームを開き、[︙] メニューから [スクリプトエディタ] を選択します
  2. スクリプトエディタに上記のコードを貼り付けます
  3. [保存] ボタンをクリックしてプロジェクトを保存します
  4. スクリプトエディタのメニューから [編集] > [現在のプロジェクトのトリガー] を選択します
  5. トリガーの設定画面で、
    • イベントの種類: [フォーム送信時]
    • 実行する関数: [sendReminderEmail] を選択し、[保存] をクリックします

これで、Googleフォームが送信されるたびに、2時間後にリマインダーメールが届くようになります。

コードの説明

  • sendReminderEmail 関数: フォーム送信時に実行される関数です
  • formResponse: フォーム送信イベントからフォームの回答を取得します
  • submittedTime: フォーム送信時刻を取得します
  • reminderTime: 2時間後の時刻を計算します
  • subject, body: リマインダーメールの件名と本文を設定します
  • GmailApp.sendEmail: 指定した時刻にリマインダーメールを送信します

注意点

  • スクリプトの実行には、Gmailの送信権限が必要です。初回実行時に権限承認を求められるので、許可してください
  • 2時間後の時刻は、スクリプトが実行された時点のタイムゾーンに基づいて計算されます

これで基本的な実装は完了です。必要に応じて、メールの内容や送信先などをカスタマイズしてください。

何か質問があれば、遠慮なく聞いてください。一緒にコーディングを進めていきましょう!

な、、、、なんてやさしいんだ、、、、、

まず、タスクの整理から始まって
手順を説明し、その後のコード記載

そして実際の記載手順と各functionの説明まで

何より!口調がすっごいやさしい

これは初心者の方も更に使いやすく
なってますね

これ、すごい事に追加質問をすれば
もっともっと細かく答えてくれます


Gemを使うと、通常のGeminiに戻れなくなってしまいそうですね・・・

進化が早すぎて困りますね

Googleの利用ノウハウを含めた提案を
弊社では行っております

気になった方、ぜひぜひお問い合わせください!

ではまた!










小山内 勝

幼い頃は劇団に所属し映画ピンポンなどに出演していた。

現在は社内のシステムアドバイザー:現場を知るプログラマーとして、社内の問題に対してITを活用し最短で解決できるスキルを身に着けている。趣味は釣り!三度の飯よりバスが好き!

関連記事