Автоматизируйте задачи Google Workspace с помощью Gemini API

1. Прежде чем начать

В этом практическом занятии вы научитесь автоматизировать задачи Google Workspace с помощью функций вызова функций и многомодальных возможностей API Gemini .

Предварительные требования

  • Базовые знания Apps Script, JavaScript или аналогичного языка программирования.

Чему вы научитесь

  • Как использовать возможности вызова функций и многомодального взаимодействия API Gemini.
  • Как объединить несколько вызовов API Gemini в единую цепочку.
  • Как автоматизировать задачи Google Workspace с помощью API Gemini.

Что вам нужно

  • Веб-браузер.
  • Аккаунт Gmail. В качестве альтернативы — аккаунт Google Workspace, в котором реализована специальная настройка API Gemini.
  • Подключение из поддерживаемого региона для API Gemini.
  • Дополнительно: интерфейс командной строки с программой curl для тестирования прямых запросов к API.

Полный код для этого практического занятия доступен в Gemini API Cookbook на GitHub . Загляните туда, если вам нужен готовый код.

2. Настройка API Gemini

О Близнецах

Модели Gemini — это самое большое и наиболее функциональное семейство моделей искусственного интеллекта от Google. Чтобы использовать эти модели в своих приложениях, вы можете использовать API Gemini . Вы также можете попробовать API Gemini в Google AI Studio — веб-интерфейсе для API, где вы можете задавать вопросы, настраивать параметры модели и оптимизировать пользовательские модели без написания какого-либо кода.

Получите ключ

Дополнительно: Проверьте свой ключ

Если у вас есть доступ к командной строке с помощью curl, добавьте свой ключ в первую строку следующего блока, а затем запустите его в терминале, чтобы проверить ключ API.

export GOOGLE_API_KEY=Paste_your_API_key_here

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

Вы должны увидеть список моделей в формате JSON, например, models/gemini-1.0-pro. Это означает, что всё сработало.

3. Необязательно: отправьте запрос к API Gemini.

На этом необязательном шаге вы отправляете запрос к API Gemini, чтобы лучше понять, как работает генерация контента, прежде чем добавлять его в приложение Apps Script.

О моделях

API Gemini предоставляет ряд моделей, обладающих различными возможностями и ограничениями. Каждая из моделей, а также ее возможности, перечислены на странице моделей Gemini .

Вы делаете свой первый запрос

Чтобы API Gemini автоматически обработал текстовый запрос, необходимо сформировать 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-запрос содержит три поля верхнего уровня для заполнения: contents , generationConfig и safetySettings . Только 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": [...]
  }
}

Для удобства чтения, вот вывод терминала в обычном формате:

  • Достоверность: Аудитория должна доверять вам как эксперту в данной области и понимать, что вы искренне заботитесь об их интересах.
  • Ясность: Ваше сообщение должно быть легко понятным и доступным. Избегайте использования профессионального жаргона или технических терминов, которые могут быть незнакомы вашей аудитории.
  • Конкретность: Используйте конкретные примеры и данные для подтверждения своих аргументов. Избегайте расплывчатых или общих утверждений.
  • Эмоциональное воздействие: помимо обращения к логической стороне аудитории, следует также попытаться установить с ней эмоциональную связь. Используйте повествование, юмор и личные истории, чтобы сделать ваши тезисы более запоминающимися и интересными.
  • Эффектное завершение: Завершите презентацию убедительным призывом к действию. Скажите аудитории, что вы хотите, чтобы они сделали, и почему это важно.

Чтобы узнать больше о других настройках, включая generationConfig и safetySettings , см. руководства по командной строке и безопасности .

4. Вызов API Gemini из Apps Script.

  1. Перейдите по ссылке script.new , и файл apps Script с расширением code.gs будет создан автоматически.
  2. Наведите курсор на файл code.gs , а затем щелкните мышью. 8bfe57773be886ab.png > Переименовать .
  3. Измените имя файла на utils.gs .
  4. Удалите из файла функцию myFunction , чтобы файл стал пустым.

Добавьте свой API-ключ в проект.

  1. В меню навигации выберите «Настройки проекта» .
  2. В разделе «Свойства скрипта» нажмите «Добавить свойство скрипта» .
  3. В поле «Свойства» введите GOOGLE_API_KEY .
  4. В поле «Значение» введите свой API-ключ из Google AI Studio.

fcfe205a93879c49.png

  1. Нажмите «Сохранить свойства скрипта» .
  2. Вернитесь в редактор.

Добавьте код API Gemini.

В файле 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. Добавьте следующую функцию, которая вызывает API Gemini с определенным приглашением:
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. Вызовите API Gemini с изображениями.

Одна из самых мощных функций семейства моделей Gemini — это поддержка многомодального ввода, что означает, что вы можете предоставлять не только текст! В этом разделе вы добавляете функцию, которая вызывает API Gemini с изображением.

  • В верхней части файла 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. Вызовите API Gemini с помощью инструментов.

Помимо текста и изображений, в своих подсказках вы также можете предоставлять доступ к инструментам.

Добавьте код обработки инструментов.

  • Добавьте в файл 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;
}

Для получения более подробной информации об этой схеме и доступных полях см. справочник по API FunctionDeclaration .

Проверьте это

  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 Workspace, такими как Google Drive, Google Slides и Google Sheets. Вот упрощенная схема:

3 инструмента

В общих чертах, когда поступает запрос от пользователя, вы используете вызов функции API Gemini, чтобы определить, какой инструмент использовать. Вы создаете три инструмента, которые могут выполнять следующие действия:

  • Настройте встречу . Функция setupMeeting() на диаграмме вызывает API Gemini 1.0 Pro для создания краткого описания статьи в блоге Google Drive и добавления этого описания к новой встрече в Google Календаре.
  • Составьте электронное письмо на основе данных, полученных из диаграммы . Функция draftEmail() на диаграмме запускает Gemini 1.0 Pro Vision для анализа диаграммы в Google Sheets и составления электронного письма в Gmail на основе этого анализа.
  • Создайте шаблон презентации . Функция createDeck() на диаграмме запускает Gemini 1.0 Pro для генерации пунктов для презентации в Google Slides.

Для каждого инструмента необходимо выполнить следующие три действия:

  1. Определите, запрашивает ли ответ от функции, вызываемой через API Gemini, вызов именно этого инструмента в блоке if...else .
  2. Добавьте саму функцию для реализации функциональности инструмента.
  3. Объявите инструмент с помощью API Gemini, чтобы модель 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");
}

Здесь вы используете возможность вызова функций API Gemini. Далее вам необходимо определить функцию инструмента.

  1. В левой части редактора, рядом с пунктом «Сервисы» , нажмите «+ Добавить сервис» > «Google Calendar API» > «Добавить» . Это активирует расширенный сервис Google Calendar, который вам понадобится для работы с некоторыми расширенными 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 . Имя этого файла автоматически возвращается функцией API Gemini, вызываемой на шаге #3.
  • Функция setupMeeting() вызывает API Gemini для составления краткого описания содержимого файла, создает встречу в приложении CalendarApp, используя описание в свободной форме, и добавляет это описание к встрече.
  • Функция setupMeeting() вызывает функцию attachFileToMeeting() для использования расширенной службы Google Calendar с целью прикрепления файла блога к встрече.
  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. Если Google Workspace запросит у вас разрешение на запуск скрипта, нажмите ОК .

Через несколько секунд в журнале выполнения отобразится сообщение, уведомляющее о том, что ваша встреча назначена.

  1. В Google Календаре найдите встречу с кратким описанием и прикрепленным файлом.

Приглашение на встречу

9. Составьте черновик электронного письма с помощью Apps Script.

Далее вы автоматизируете создание электронных писем в Gmail. Вот сценарий: предположим, вы проводите анализ данных в Google Sheets. Вы вводите все числа и создаете диаграмму. Вы хотите использовать API Gemini Pro Vision для создания электронного письма на основе этой диаграммы.

Для этого выполните следующие шаги:

  1. Откройте этот лист и нажмите «Файл» -> «Создать копию» .
  2. В текстовом поле «Имя» диалогового окна «Копировать документ» замените стандартное имя Copy of CollegeExpenses на CollegeExpenses .
  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.

Далее вы автоматизируете создание шаблона презентации в Google Slides с помощью Apps Script.

Для этого выполните следующие шаги:

  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();
}

Эта функция вызывает API Gemini для мозгового штурма по определенной теме и возвращает пункты в формате...

из JSON, а затем с помощью 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. Идеи для изучения

Помимо этих трех вариантов интеграции, вы можете рассмотреть следующие идеи:

  • Создайте чат-бота для Google Chat . Один из самых популярных вариантов использования больших языковых моделей (LLM) — это создание чат-ботов. С помощью API Gemini легко создать чат-бота для Google Chat. Для получения дополнительной информации см. API Google Chat и практическое руководство « Создание приложений для Google Chat с помощью Gemini» .
  • Генерация с использованием дополненных данных (Retrieval-Augmented Generation, RAG) с использованием ваших собственных данных из Google Drive или Keep . В этом практическом занятии вы используете только один текстовый файл для составления аннотаций. Однако вы также можете использовать контент из ваших личных Google Drive и Keep — например, заметки, PDF-файлы и изображения — с помощью API Gemini, векторной базы данных и, при желании, инструмента оркестровки, такого как LangChain , для выполнения RAG и персонализации ответа модели на основе ваших данных.
  • Воспользуйтесь возможностью многоэтапного вызова функций в API Gemini . Вызов функций в API Gemini не ограничивается одним этапом, и вы можете использовать многоэтапный вызов функций для решения даже более сложных задач.
  • Выйдите за рамки Google Workspace . Теперь, когда вы понимаете, как интегрировать API Gemini с Google Workspace, вы можете выйти за пределы Google Workspace и использовать другие API по всему миру.

12. Поздравляем!

Вы изучили многомодальные возможности API Gemini и вызов функций. Вы использовали их для автоматизации некоторых задач Google Workspace с помощью Apps Script!

Узнать больше