Gemini API を使用して Google Workspace のタスクを自動化する

1. 始める前に

この Codelab では、Gemini API の関数呼び出し機能とマルチモダリティ機能を使用して、Google Workspace タスクを自動化する方法を学びます。

前提条件

  • Apps Script、JavaScript、または同様のプログラミング言語の基本的な知識

学習内容

  • Gemini API の関数呼び出しとマルチモダリティ機能を活用する方法。
  • 複数の Gemini API 呼び出しを連結する方法。
  • Gemini API を使用して Google Workspace のタスクを自動化する方法。

必要なもの

  • ウェブブラウザ。
  • Gmail アカウントまたは、Gemini API の特定の設定を実装した Google Workspace アカウント。
  • Gemini API のサポートされているリージョンからの接続。
  • 省略可: API リクエストを直接テストするための curl プログラムのコマンドライン インターフェース。

この Codelab の完全なコードは、GitHub の Gemini API クックブックで入手できます。完成したコードが必要な場合は、こちらをご確認ください。

2. Gemini API を設定する

Gemini について

Gemini モデルは、Google の最大で最も高性能な AI モデル ファミリーです。アプリでこれらのモデルを利用するには、Gemini API を使用します。また、API のウェブ インターフェースである Google AI Studio で Gemini API を試すこともできます。この API では、コードを記述せずにプロンプトを試し、モデル設定の調整、カスタムモデルの調整を行うことができます。

キーを取得する

省略可: キーをテストする

curl を使用してコマンドラインにアクセスできる場合は、次のブロックの最初の行にキーを追加してからターミナルで実行し、API キーをテストします。

export GOOGLE_API_KEY=Paste_your_API_key_here

curl "https://generativelanguage.googleapis.com/v1beta/models?key=${GOOGLE_API_KEY}"

models/gemini-1.0-pro などの JSON 形式のモデルの一覧が表示されます。これは正常に機能したことを意味します。

3. 省略可: Gemini API にリクエストを送信する

このオプションのステップでは、Gemini API にリクエストを送信して、コンテンツ生成の仕組みをより深く理解してから、Apps Script アプリに追加します。

モデルについて

Gemini API は、さまざまな機能や制限を持つモデルを数多く提供しています。各モデルとその機能については、Gemini モデルのページをご覧ください。

最初のリクエストを実行する

Gemini API でテキスト プロンプトを完成させるには、JSON リクエストを作成して REST API エンドポイントに送信します。

方法は次のとおりです。

  1. 新しいファイルに次の JSON リクエストを入力します。
{
  contents: [
   {
     parts: [
       { text: 'The most important aspects of a persuasive presentation are:' }
     ]
   }
 ]
}

JSON リクエストには、The most important aspects of a persuasive presentation are: というプロンプトが含まれます。モデルがこの処理を完了し、結果を直接提示します。

JSON リクエストには、入力するトップレベルの 3 つのフィールド(contentsgenerationConfigsafetySettings)があります。contents のみ必須です。その他は、出力を制御するメカニズムを提供します。

  1. この JSON を presentation.txt ファイルに保存し、次のように curl に直接渡します。
curl -H 'Content-Type: application/json' -X POST -d @presentation.txt \
  'https://generativelanguage.googleapis.com/v1beta/models/gemini-1.0-pro-latest:generateContent?key='${GOOGLE_API_KEY}

この例では、URL に次の値を設定しています。

  • v1beta には、API のバージョンを指定します。
  • gemini-1.0-pro-latest は、Gemini 1.0 Pro をモデルとして指定し、最新のスナップショットを使用します。
  • generateContent には、呼び出す API メソッドを指定します。

次のような結果が表示されます。

{
  "candidates": [
    {
      "content": {
        "parts": [
          {
            "text": "* **Credibility:** The audience must trust that you are an expert on the subject matter and that you have their best interests at heart.\n* **Clearness:** Your message must be easy to understand and follow. Avoid using jargon or technical terms that your audience may not be familiar with.\n* **Concreteness:** Use specific examples and data to support your arguments. Avoid making vague or general claims.\n* **Emotional appeal:** In addition to appealing to the audience's logical side, you should also try to connect with them on an emotional level. Use storytelling, humor, and personal anecdotes to make your points more memorable and engaging.\n* **Strong closing:** End your presentation with a strong call to action. Tell the audience what you want them to do and why it is important for them to do it."
          }
        ],
        "role": "model"
      },
      "finishReason": "STOP",
      "index": 0,
      "safetyRatings": [...]
    }
  ],
  "promptFeedback": {
    "safetyRatings": [...]
  }
}

読みやすくするために、定期的にフォーマットされたターミナル出力を以下に示します。

  • 信憑性: あなたはこの分野の専門家であり、クリエイターの皆さんの利益を最優先に考えていることを信頼してもらい、
  • 明確さ: メッセージはわかりやすく、理解しやすくする必要があります。視聴者がよく知らない専門用語や専門用語は使用しないでください。
  • 具体性: 具体的な例やデータを使用して、論拠を裏付けます。あいまいな表現や一般的な表現は避けてください。
  • 感情に訴える: 論理的な側面を惹きつけるだけでなく、感情のレベルで視聴者とつながることも心がけましょう。ストーリーテリング、ユーモア、個人的な逸話を使って、要点をより記憶に残りやすく魅力的なものにする。
  • 効果的な締めくくり: プレゼンテーションの最後に、行動を促す具体的なフレーズを使用します。視聴者にしてほしいことと、その行動が重要な理由を伝えます。

generationConfigsafetySettings など、その他の設定の詳細については、プロンプト安全性ガイドをご覧ください。

4. Apps Script から Gemini API を呼び出す

  1. script.new にアクセスすると、code.gs Apps Script ファイルが自動的に作成されます。
  2. code.gs ファイルにカーソルを合わせ、[8bfe57773be886ab.png] をクリックします。[名前を変更] をクリックします。
  3. ファイル名を utils.gs に変更します。
  4. ファイル内の myFunction 関数を削除して、ファイルを空にします。

API キーをプロジェクトに追加する

  1. ナビゲーション メニューで、[プロジェクトの設定] を選択します。
  2. [スクリプトのプロパティ] で、[スクリプト プロパティを追加] をクリックします。
  3. [プロパティ] で「GOOGLE_API_KEY」と入力します。
  4. [] に、Google AI Studio の API キーを入力します。

fcfe205a93879c49.png

  1. [スクリプトのプロパティを保存する] をクリックします。
  2. エディタに戻ります。

Gemini API コードを追加する

utils.gs ファイルで次の操作を行います。

API キーとエンドポイントを設定します。

const properties = PropertiesService.getScriptProperties().getProperties();
const geminiApiKey = properties['GOOGLE_API_KEY'];
const geminiEndpoint = `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.0-pro-latest:generateContent?key=${geminiApiKey}`;
  1. 特定のプロンプトで Gemini API を呼び出す次の関数を追加します。
function callGemini(prompt, temperature=0) {
  const payload = {
    "contents": [
      {
        "parts": [
          {
            "text": prompt
          },
        ]
      }
    ], 
    "generationConfig":  {
      "temperature": temperature,
    },
  };

  const options = { 
    'method' : 'post',
    'contentType': 'application/json',
    'payload': JSON.stringify(payload)
  };

  const response = UrlFetchApp.fetch(geminiEndpoint, options);
  const data = JSON.parse(response);
  const content = data["candidates"][0]["content"]["parts"][0]["text"];
  return content;
}
  1. プロンプトを設定する次の関数を追加します。
function testGemini() {
  const prompt = "The best thing since sliced bread is";
  const output = callGemini(prompt);
  console.log(prompt, output);
}

テスト

  1. [76113423d1f91775.png 保存] をクリックします。
  2. 関数のプルダウン リストで [testGemini] を選択し、[5b9034ff679c8761.png] をクリックします。
  3. 必要な権限を受け入れます。コードが実行され、実行ログに結果を含むコンソール出力が表示されます。

実行ログ

やった!

5. 画像を使用して Gemini API を呼び出す

Gemini ファミリー モデルの最も強力な機能の一つは、マルチモーダル入力のサポートです。つまり、テキスト以外のものも入力できます。このセクションでは、画像を使用して Gemini API を呼び出す関数を追加します。

  • utils.gs ファイルの先頭で、既存の const geminiEndpoint 宣言の後に次の行を追加します。
const geminiProVisionEndpoint = `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.0-pro-vision-latest:generateContent?key=${geminiApiKey}`;

Gemini Vision コードを追加する

  1. utils.gs ファイルに関数を追加して、新しく追加したエンドポイントを呼び出します。
function callGeminiProVision(prompt, image, temperature=0) {
  const imageData = Utilities.base64Encode(image.getAs('image/png').getBytes());

  const payload = {
    "contents": [
      {
        "parts": [
          {
            "text": prompt
          },
          {
            "inlineData": {
              "mimeType": "image/png",
              "data": imageData
            }
          }          
        ]
      }
    ], 
    "generationConfig":  {
      "temperature": temperature,
    },
  };

  const options = { 
    'method' : 'post',
    'contentType': 'application/json',
    'payload': JSON.stringify(payload)
  };

  const response = UrlFetchApp.fetch(geminiProVisionEndpoint, options);
  const data = JSON.parse(response);
  const content = data["candidates"][0]["content"]["parts"][0]["text"];
  return content;
}
  1. 次のテスト関数を追加します。
function testGeminiVision() {
  const prompt = "Provide a fun fact about this object.";
  const image = UrlFetchApp.fetch('https://storage.googleapis.com/generativeai-downloads/images/instrument.jpg').getBlob();
  const output = callGeminiProVision(prompt, image);
  console.log(prompt, output);
}

この関数はインターネットからテスト画像を読み込み、定義した関数に渡します。後でスプレッドシートのグラフを使用するように接続するため、これはテストにすぎません。

テスト

  • testGeminiVision 関数を保存して実行し、出力を調べます。

849c6728bfb5ec52.png

6. ツールを使用して Gemini API を呼び出す

プロンプトでは、テキストと画像だけでなく、ツールにもアクセスできるようになります。

ツール処理コードを追加する

  • ツール仕様を受け入れる関数を utils.gs ファイルに追加します。
function callGeminiWithTools(prompt, tools, temperature=0) {
  const payload = {
    "contents": [
      {
        "parts": [
          {
            "text": prompt
          },
        ]
      }
    ], 
    "tools" : tools,
    "generationConfig":  {
      "temperature": temperature,
    },    
  };

  const options = { 
    'method' : 'post',
    'contentType': 'application/json',
    'payload': JSON.stringify(payload)
  };

  const response = UrlFetchApp.fetch(geminiEndpoint, options);
  const data = JSON.parse(response);
  const content = data["candidates"][0]["content"]["parts"][0]["functionCall"];
  return content;
}

このスキーマと使用可能なフィールドの詳細については、FunctionDeclaration API リファレンスをご覧ください。

テスト

  1. モデルが現在の日時の確認に使用できるツールを定義します。
function testGeminiTools() {
  const prompt = "Tell me how many days there are left in this month.";
  const tools = {
    "function_declarations": [
      {
        "name": "datetime",
        "description": "Returns the current date and time as a formatted string.",
        "parameters": {
          "type": "string"
        }
      }
    ]
  };
  const output = callGeminiWithTools(prompt, tools);
  console.log(prompt, output);
}

ここで使用する形式は、FunctionDeclaration スキーマです。実際には日時関数を呼び出しません。モデルが関数呼び出しをリクエストしたという通知のみを受け取ります。関数呼び出しは後のステップで処理します。

  1. testGeminiTools 関数を保存して実行し、出力を確認します。

実行ログ

7. Google Workspace とのデモの統合の概要

関数呼び出しの仕組みがわかったところで、Gemini モデルの機能を他のサービスに簡単に拡張できます。以降のセクションでは、Google ドライブ、Google スライド、Google スプレッドシートなどの Google Workspace プロダクトとのインテグレーションを構築します。次の図を次に示します。

3 つのツール

大まかに言うと、ユーザーのクエリを受信すると、Gemini API の関数呼び出しを使用して、使用するツールを決定します。次のことができる 3 つのツールを構築します。

  • 会議を設定します。図の setupMeeting() 関数は、Gemini 1.0 Pro API を呼び出して Google ドライブ内のブログを要約し、その要約を Google カレンダーで新しく作成された会議に追加します。
  • グラフの分析情報に基づいてメールの下書きを作成する。図の draftEmail() 関数は、Gemini 1.0 Pro Vision を呼び出して Google スプレッドシート内のグラフを分析し、分析結果に基づいて Gmail でメールを作成します。
  • スケルトン デッキを作成します。図の createDeck() 関数は、Gemini 1.0 Pro を呼び出し、Google スライドの資料の箇条書きをブレインストーミングします。

ツールごとに、次の 3 つのことを行う必要があります。

  1. Gemini API の関数呼び出しのレスポンスで、if...else ブロック内でその特定のツールを呼び出すよう求められているかどうかを確認します。
  2. 実際の関数を追加してツールの機能を実装します。
  3. Gemini API を使用してツールを宣言し、Gemini モデルがツールの存在を認識して正しい関数呼び出しのレスポンスを返せるようにします。

8. Apps Script を使用して会議を設定する

まず、Google カレンダーで会議の設定を自動化しますが、Google ドライブにあるファイルの概要を示す説明も追加します。

方法は次のとおりです。

  1. こちらのテキスト ファイルGemini 1.5 Pro のリリースブログのテキスト ファイル)をダウンロードします。
  2. ファイルを Google ドライブのルートフォルダにアップロードします。
  3. エディタで main.gs ファイルを作成し、次のコードを追加します。
function main() {
  const userQuery = "Set up a meeting at 10AM tomorrow with Helen to discuss the news in the Gemini-blog.txt file.";

  var tool_use = callGeminiWithTools(userQuery, WORKSPACE_TOOLS);
  Logger.log(tool_use);
  
  if(tool_use['name'] == "setupMeeting") {
    setupMeeting(tool_use['args']['time'], tool_use['args']['recipient'], tool_use['args']['filename']);
    Logger.log("Your meeting has been set up.");
 }
  else
    Logger.log("no proper tool found");
}

ここでは、Gemini API の関数呼び出し機能を呼び出します。次に、ツールの関数を定義する必要があります。

  1. エディタの左側で、[サービス] の横にある [+ サービスを追加 >Google Calendar API >追加。これにより、高度な Google カレンダー サービスが有効になります。このサービスは、後で一部の高度な API で使用する必要があります。

サービスを追加する

  1. utils.gs ファイルに、次のコードを追加します。
function attachFileToMeeting(event, file, fileName) {
  // Get the iCal ID for the event.
  const iCalEventId = event.getId();

  // Log the ID and title for debugging.
  console.log(`iCal event ID: ${iCalEventId}`);
  console.log(`event Title: ${event.getTitle()}`);

  // Set up the options for listing the event with the advanced Google Calendar service.
  const options = {
      iCalUID: iCalEventId,
    };

  // Use the primary calendar as the calendar ID to list events.
  const calendarId = 'primary';

  // Use the advanced Google Calendar service to list the event.
  const calEvents = Calendar.Events.list(calendarId, options);

  // Get the Calendar ID used by the advanced Google Calendar service.
  const eventId = calEvents.items[0].id;

  // Get the file URL for the attachment.
  const fileUrl = file.getUrl();

    // Set up the patch options to add the file.
    var patch = {
      attachments: [{
        'fileUrl': fileUrl,
        'title': fileName
      }]
    };

    // Patch the event to add the file as an attachment.
    Calendar.Events.patch(patch, 'primary', eventId, {"supportsAttachments": true});  
}

function setupMeeting(time, recipient, filename) {
  const files = DriveApp.getFilesByName(filename);
  const file = files.next();
  const blogContent = file.getAs("text/*").getDataAsString();
  
  var geminiOutput = callGemini("Give me a really short title of this blog and a summary with less than three sentences. Please return the result as a JSON with two fields: title and summary. \n" +  blogContent);
  // The Gemini model likes to enclose the JSON with ```json and ```
  geminiOutput = JSON.parse(geminiOutput.replace(/```(?:json|)/g, ""));  
  const title = geminiOutput['title'];
  const fileSummary = geminiOutput['summary'];

  const event = CalendarApp.getDefaultCalendar().createEventFromDescription(`meet ${recipient} at ${time} to discuss "${title}"`); 
  event.setDescription(fileSummary);
  attachFileToMeeting(event, file, filename);
}

このコードは次のことを行います。

  • setupMeeting() 関数は、Google ドライブを介して Gemini-blog.txt ファイルを見つけます。このファイル名は、ステップ 3 で Gemini API の関数呼び出しによって自動的に返されます。
  • setupMeeting() 関数は Gemini API を呼び出してファイルの内容を要約し、CalendarApp で自由形式の説明を使用して会議を設定して、要約を会議に追加します。
  • setupMeeting() 関数は attachFileToMeeting() 関数を呼び出し、高度な Google カレンダー サービスを使用してブログファイルを会議に添付します。
  1. utils.gs ファイルの先頭に、次のコードを追加します。
const WORKSPACE_TOOLS = {
 "function_declarations": [
   {
     "name": "setupMeeting",
     "description": "Sets up a meeting in Google Calendar.",
     "parameters": {
       "type": "object",
       "properties": {
         "time": {
           "type": "string",
           "description": "The time of the meeting."
         },
         "recipient": {
           "type": "string",
           "description": "The name of the recipient."
         },   
         "filename": {
           "type": "string",
           "description": "The name of the file."
         },                     
       },
       "required": [
         "time",
         "recipient",
         "filename"
       ]
     }
   },
   // You add tools here.        
 ]
};
  1. エディタで main.gs ファイルに戻り、[5b9034ff679c8761.png] をクリックします。
  2. スクリプトの実行許可を求められたら、[OK] をクリックします。

数秒後、会議が設定されたことを示すメッセージが実行ログに表示されます。

  1. Google カレンダーで、概要と添付ファイルのある会議を探します。

会議の招待状

9. Apps Script を使用してメールの下書きを作成する

次に、Gmail でメールの下書きを自動化します。シナリオの例: Google スプレッドシートでデータ分析を行っているとします。すべての数値を所定の場所に置いて、グラフを作成します。Gemini Pro Vision API を使用して、グラフに基づいてメールの下書きを作成します。

方法は次のとおりです。

  1. このシートを開き、[ファイル] ->コピーを作成します
  2. [ドキュメントをコピー] ダイアログの [名前] テキスト ボックスで、デフォルト名 Copy of CollegeExpensesCollegeExpenses に置き換えます。
  3. main.gs ファイルで、以前のユーザークエリを新しいユーザークエリに置き換え、次のコードを if...else ステートメントに追加します。
function main() {
  // const userQuery = "Set up a meeting at 5PM with Helen to discuss the news in the Gemini-1.5-blog.txt file.";  
  const userQuery = "Draft an email for Mary with insights from the chart in the CollegeExpenses sheet.";

  if(...) {...}
  // Add this code
  else if(tool_use['name'] == "draftEmail") {
    draftEmail(tool_use['args']['sheet_name'], tool_use['args']['recipient']);
    Logger.log("Check your Gmail to review the draft");
  }
  else {...}

}
  1. utils.gs ファイルに、次のコードを追加します。
function draftEmail(sheet_name, recipient) {
  
  const prompt = `Compose the email body for ${recipient} with your insights for this chart. Use information in this chart only and do not do historical comparisons. Be concise.`;

  var files = DriveApp.getFilesByName(sheet_name);
  var sheet = SpreadsheetApp.openById(files.next().getId()).getSheetByName("Sheet1");
  var expenseChart = sheet.getCharts()[0];

  var chartFile = DriveApp.createFile(expenseChart.getBlob().setName("ExpenseChart.png"));
  var emailBody = callGeminiProVision(prompt, expenseChart);
  GmailApp.createDraft(recipient+"@demo-email-provider.com", "College expenses", emailBody, {
      attachments: [chartFile.getAs(MimeType.PNG)],
      name: 'myname'
  });
}

この関数は、シートから大学経費チャートを取得し、Gemini Pro Vision に送信してメールの下書きを作成します。Gemini Pro Vision がグラフから情報を抽出し、ユーザーに代わってメール本文の下書きを作成します。

  1. utils.gs ファイルで、WORKSPACE_TOOLS オブジェクトの You add tools here コメントの後に次のコードを追加します。
  WORKSPACE_TOOLS = {
    "function_declarations": [
      // You add tools here.

      {
        "name": "draftEmail",
        "description": "Write an email by analyzing data or charts in a Google Sheets file.",
        "parameters": {
          "type": "object",
          "properties": {
            "sheet_name": {
              "type": "string",
              "description": "The name of the sheet to analyze."
            },
            "recipient": {
              "type": "string",
              "description": "The name of the recipient."
            },            
          },
          "required": [
            "sheet_name",
            "recipient"
          ]
        }
      },   


    ]
  };
  1. エディタで main.gs ファイルに戻り、[5b9034ff679c8761.png] をクリックします。
  2. 10 ~ 20 秒後に Gmail を開きます。次のようにメールの下書きが表示されます。

送信する前に、メールの下書きを修正できます。短いプロンプトとグラフを入力した後、メールはすべて Gemini Pro Vision によって作成されます。

10. Apps Script を使用してスケルトン デッキを作成する

次に、Apps Script を使用して、Google スライドでスケルトン スライドの作成を自動化します。

方法は次のとおりです。

  1. main.gs ファイルで、以前のユーザークエリを新しいユーザークエリに置き換え、次のコードを if...else ステートメントに追加します。
function main() {
  // const userQuery = "Draft an email for Mary with insights from the chart in the CollegeExpenses sheet.";
  const userQuery = "Help me put together a deck about water conservation.";

  if(...) {...}
  // Add this code
  else if(tool_use['name'] == 'createDeck') {
    deckURL = createDeck(tool_use['args']['topic']);
    Logger.log("Deck URL: " + deckURL);
  }
  else {...}

}
  1. utils.gs ファイルに、次のコードを追加します。
function createDeck(topic) {
  const prompt = `I'm preparing a ${NUM_SLIDES}-slide deck to discuss ${topic}. Please help me brainstorm and generate main bullet points for each slide. Keep the title of each slide short. Please produce the result as a valid JSON so that I can pass it to other APIs.`;
  
  var geminiOutput = callGemini(prompt, 0.4);
  // The Gemini model likes to enclose the JSON with ```json and ```
  geminiOutput = geminiOutput.replace(/```(?:json|)/g, "");
  const bulletPoints = JSON.parse(geminiOutput);
    
  // Create a Google Slides presentation.
  const presentation = SlidesApp.create("My New Presentation");

  // Set up the opening slide.
  var slide = presentation.getSlides()[0]; 
  var shapes = slide.getShapes();
  shapes[0].getText().setText(topic);

  var body;
  for (var i = 0; i < NUM_SLIDES; i++) {
      slide = presentation.appendSlide(SlidesApp.PredefinedLayout.TITLE_AND_BODY);
      shapes = slide.getShapes();
      // Set title.
      shapes[0].getText().setText(bulletPoints['slides'][i]['title']);
  
      // Set body.
      body = "";
      for (var j = 0; j < bulletPoints['slides'][i]['bullets'].length; j++) {
        body += '* ' + bulletPoints['slides'][i]['bullets'][j] + '\n';
      }
      shapes[1].getText().setText(body);
  } 

  return presentation.getUrl();
}

この関数は Gemini API を呼び出して特定のトピックについてブレインストーミングを行い、箇条書きを

Apps Script を使用してスケルトンデッキを埋めます。

  1. utils.gs ファイルで、WORKSPACE_TOOLS オブジェクトの You add tools here コメントの後に次のコードを追加します。
  WORKSPACE_TOOLS = {
    "function_declarations": [
      // You add tools here.

      {
        "name": "createDeck",
        "description": "Build a simple presentation deck with Google Slides and return the URL.",
        "parameters": {
          "type": "object",
          "properties": {
            "topic": {
              "type": "string",
              "description": "The topic that the presentation is about."
            },
          },
          "required": [
            "topic"
          ]
        }
      },


    ]
  };
  1. utils.gs ファイルの先頭で、次の定数を定義します。
const NUM_SLIDES = 3;

これは、冒頭のスライドに加えて Gemini モデルが作成するスライドの数です。

  1. エディタで main.gs ファイルに戻り、[5b9034ff679c8761.png] をクリックします。数秒後、実行ログにプレゼンテーションの URL が表示されます。
  2. ブラウザで URL を開きます。箇条書きのスケルトン スライドが表示されます。

下書き用資料

11. おすすめのアイデア

これら 3 つの統合以外にも、次のアイデアを検討できます。

  • Google Chat で chatbot を構築する。大規模言語モデル(LLM)の最も一般的なユースケースの一つは、chatbot の構築です。Gemini API を使用すると、Google Chat 用の chatbot を簡単に構築できます。詳細については、Google Chat API と Codelab の Gemini を使用した Google Chat 用アプリの作成をご覧ください。
  • Google ドライブまたは Keep 内の独自のデータを使用した検索拡張生成(RAG)。この Codelab では、要約に 1 つのテキスト ファイルのみを使用します。ただし、個人の Google ドライブや Keep のコンテンツ(メモ、PDF、画像など)を Gemini API、ベクトル データベース、さらに必要に応じて LangChain などのオーケストレーション ツールで使用することで、RAG を実行し、データに基づいてモデルのレスポンスをカスタマイズすることもできます。
  • Gemini API のマルチターン関数呼び出し機能を使用する。Gemini API の関数呼び出しは 1 ターンに限定されるわけではなく、さらに複雑なタスクではマルチターン関数呼び出しを使用できます。
  • Google Workspace の枠を超える機能。Gemini API を Google Workspace と統合する方法を理解したところで、Google Workspace の枠を超えて、世界中の他の API を活用できます。

12. 完了

Gemini API のマルチモーダル機能と関数呼び出しについて学びました。これらを使用して、Apps Script で Google Workspace の一部のタスクを自動化しました。

その他の情報