1. Sebelum memulai
Dalam codelab ini, Anda akan mempelajari cara mengotomatiskan tugas Google Workspace dengan fitur panggilan fungsi dan multi-modalitas Gemini API.
Prasyarat
- Pemahaman dasar tentang Apps Script, JavaScript, atau bahasa pemrograman serupa
Yang Anda pelajari
- Cara memanfaatkan panggilan fungsi dan fitur multi-modalitas Gemini API.
- Cara menggabungkan beberapa panggilan Gemini API.
- Cara mengotomatiskan tugas Google Workspace dengan Gemini API.
Yang Anda perlukan
- {i>Browser<i} internet.
- Akun Gmail. Atau, berupa Akun Google Workspace yang telah menerapkan penyiapan khusus Gemini API.
- Koneksi dari wilayah yang didukung untuk Gemini API.
- Opsional: Antarmuka command line dengan program
curl
untuk menguji permintaan API langsung.
Kode lengkap untuk codelab ini tersedia di Buku Panduan Gemini API di GitHub. Periksalah jika Anda memerlukan kode yang sudah selesai.
2. Menyiapkan Gemini API
Tentang Gemini
Model Gemini adalah rangkaian model AI terbesar dan tercanggih dari Google. Untuk memanfaatkan model ini di aplikasi Anda, Anda dapat menggunakan Gemini API. Anda juga dapat mencoba Gemini API di Google AI Studio, antarmuka web untuk API tempat Anda dapat mencoba perintah, mengubah setelan model, dan menyesuaikan model kustom tanpa menulis kode apa pun.
Dapatkan kunci
- Untuk menggunakan Gemini API, buat kunci API di Google AI Studio.
Opsional: Menguji kunci Anda
Jika Anda memiliki akses ke command line dengan curl, tambahkan kunci ke baris pertama blok berikutnya, lalu jalankan di terminal untuk menguji kunci API.
export GOOGLE_API_KEY=Paste_your_API_key_here
curl "https://generativelanguage.googleapis.com/v1beta/models?key=${GOOGLE_API_KEY}"
Anda akan melihat daftar model dalam format JSON, seperti models/gemini-1.0-pro. Ini artinya cara itu berhasil.
3. Opsional: Membuat permintaan ke Gemini API
Pada langkah opsional ini, Anda akan membuat permintaan ke Gemini API untuk lebih memahami cara kerja pembuatan konten sebelum menambahkannya ke aplikasi Apps Script.
Tentang model
Gemini API menyediakan sejumlah model yang memiliki kemampuan dan batasan berbeda. Setiap model tercantum beserta kemampuannya di halaman model Gemini.
Membuat permintaan pertama Anda
Agar Gemini API menyelesaikan perintah teks, buat permintaan JSON dan kirimkan ke endpoint REST API.
Untuk melakukannya, ikuti langkah-langkah berikut:
- Di file baru, masukkan permintaan JSON berikut:
{
contents: [
{
parts: [
{ text: 'The most important aspects of a persuasive presentation are:' }
]
}
]
}
Permintaan JSON mencakup perintah berikut: The most important aspects of a persuasive presentation are:
. Model tersebut akan menyelesaikan instruksi ini dan memberikan hasilnya secara langsung kepada Anda.
Permintaan JSON memiliki tiga kolom tingkat teratas untuk diisi: contents
, generationConfig
, dan safetySettings
. Hanya contents
yang diperlukan. Sementara yang lainnya menyediakan mekanisme untuk mengontrol {i>output<i}.
- Simpan JSON ini dalam file
presentation.txt
, lalu teruskan langsung kecurl
seperti berikut:
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}
Dalam contoh ini, Anda menetapkan nilai berikut di URL:
v1beta
menentukan versi API.gemini-1.0-pro-latest
menentukan Gemini 1.0 Pro sebagai model dan menggunakan snapshot terbaru.generateContent
menetapkan metode API yang Anda panggil.
Anda akan melihat hasil yang mirip dengan yang berikut ini:
{
"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": [...]
}
}
Demi keterbacaan, berikut output terminal yang diformat secara teratur:
- Kredibilitas: Audiens harus yakin bahwa Anda adalah pakar dalam bidang tertentu dan Anda memiliki kepentingan terbaik mereka.
- Kejelasan: Pesan Anda harus mudah dipahami dan diikuti. Hindari penggunaan jargon atau istilah teknis yang mungkin tidak dipahami audiens Anda.
- Konkret: Gunakan contoh dan data spesifik untuk mendukung argumen Anda. Hindari membuat klaim yang tidak jelas atau umum.
- Daya tarik emosional: Selain menarik dari sisi logis audiens, Anda juga harus mencoba terhubung dengan mereka pada tingkat emosional. Gunakan penceritaan, humor, dan anekdot pribadi untuk membuat poin Anda lebih berkesan dan menarik.
- Penutupan yang kuat: Mengakhiri presentasi Anda dengan pesan ajakan (CTA) yang kuat. Beri tahu audiens apa yang Anda ingin mereka lakukan dan mengapa penting bagi mereka untuk melakukannya.
Untuk mempelajari lebih lanjut setelan lainnya, termasuk generationConfig
dan safetySettings
, lihat perintah dan panduan keamanan.
4. Memanggil Gemini API dari Apps Script
- Kunjungi script.new dan file Apps Script
code.gs
akan dibuat secara otomatis untuk Anda. - Tahan kursor ke file
code.gs
, lalu klik > Ganti nama. - Ubah nama file menjadi
utils.gs
. - Dalam file, hapus fungsi
myFunction
agar file kosong.
Menambahkan kunci API Anda ke project
- Di menu navigasi, pilih Project settings.
- Di bagian Properti skrip, klik Tambahkan properti skrip.
- Di bagian Properti, masukkan
GOOGLE_API_KEY
. - Di bagian Nilai, masukkan kunci API dari Google AI Studio.
- Klik Simpan properti skrip.
- Kembali ke editor.
Menambahkan kode Gemini API
Di file utils.gs
, ikuti langkah-langkah berikut:
Siapkan kunci API dan endpoint:
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}`;
- Tambahkan fungsi berikut yang memanggil Gemini API dengan perintah tertentu:
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;
}
- Tambahkan fungsi berikut yang menetapkan perintah:
function testGemini() {
const prompt = "The best thing since sliced bread is";
const output = callGemini(prompt);
console.log(prompt, output);
}
Melakukan pengujian
- Klik Simpan.
- Pilih
testGemini
di daftar dropdown fungsi lalu klik . - Setujui izin yang diperlukan. Kode Anda akan berjalan dan Anda akan melihat beberapa output konsol dengan hasilnya di log eksekusi.
Berhasil!
5. Memanggil Gemini API dengan gambar
Salah satu fitur paling canggih dari rangkaian model Gemini adalah dukungan untuk input multi-modal, yang berarti Anda dapat menyediakan lebih dari sekadar teks. Di bagian ini, Anda akan menambahkan fungsi yang memanggil Gemini API dengan gambar.
- Di bagian atas file
utils.gs
setelah deklarasiconst geminiEndpoint
yang ada, tambahkan baris berikut:
const geminiProVisionEndpoint = `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.0-pro-vision-latest:generateContent?key=${geminiApiKey}`;
Menambahkan kode Gemini Vision
- Tambahkan fungsi ke file
utils.gs
untuk memanggil endpoint yang baru ditambahkan ini:
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;
}
- Tambahkan fungsi pengujian berikut:
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);
}
Fungsi ini memuat image pengujian dari internet dan meneruskannya ke fungsi yang Anda tentukan. Kemudian, Anda menghubungkannya untuk menggunakan diagram dari {i>spreadsheet<i}, jadi ini hanya pengujian.
Melakukan pengujian
- Simpan dan jalankan fungsi
testGeminiVision
, lalu periksa outputnya.
6. Memanggil Gemini API dengan alat
Selain teks dan gambar, Anda juga dapat memberikan akses ke alat dalam perintah Anda.
Menambahkan kode penanganan alat
- Tambahkan fungsi ke file
utils.gs
yang menerima spesifikasi alat:
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;
}
Untuk informasi selengkapnya tentang skema ini dan kolom yang tersedia, lihat referensi API FunctionDeclaration
.
Melakukan pengujian
- Tentukan alat yang dapat digunakan model untuk menemukan tanggal dan waktu saat ini:
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);
}
Format yang digunakan di sini adalah skema FunctionDeclaration
. Anda tidak benar-benar memanggil fungsi date-time. Anda hanya akan menerima indikasi bahwa model meminta panggilan fungsi. Anda akan menangani panggilan fungsi di langkah berikutnya.
- Simpan dan jalankan fungsi
testGeminiTools
untuk melihat outputnya.
7. Ringkasan integrasi demo dengan Google Workspace
Setelah memahami cara kerja panggilan fungsi, Anda dapat dengan mudah memperluas kemampuan model Gemini ke layanan lain. Dalam beberapa bagian berikutnya, Anda akan mem-build integrasi terhadap produk Google Workspace, seperti Google Drive, Google Slide, dan Google Spreadsheet. Berikut adalah diagram sederhananya:
Secara umum, saat kueri pengguna masuk, Anda menggunakan panggilan fungsi Gemini API untuk menentukan alat yang akan digunakan. Anda akan membuat tiga alat yang dapat melakukan hal berikut:
- Menyiapkan rapat. Fungsi
setupMeeting()
dalam diagram memanggil Gemini 1.0 Pro API untuk meringkas sebuah blog di Google Drive dan menambahkan ringkasan tersebut ke rapat yang baru dibuat di Google Kalender. - Membuat draf email berdasarkan insight dari diagram. Fungsi
draftEmail()
dalam diagram memanggil Gemini 1.0 Pro Vision untuk menganalisis diagram di Google Spreadsheet dan menulis email di Gmail berdasarkan analisis tersebut. - Buat presentasi kerangka. Fungsi
createDeck()
dalam diagram memanggil Gemini 1.0 Pro guna mendiskusikan poin-poin untuk presentasi di Google Slide.
Untuk masing-masing alat, Anda perlu melakukan tiga hal berikut:
- Menentukan apakah respons panggilan fungsi Gemini API meminta untuk memanggil alat tertentu dalam blok
if...else
. - Tambahkan fungsi sebenarnya untuk mengimplementasikan fungsi alat.
- Deklarasikan alat tersebut dengan Gemini API agar model Gemini mengetahui keberadaan alat tersebut dan dapat menampilkan respons panggilan fungsi yang benar.
8. Menyiapkan rapat dengan Apps Script
Pertama-tama, Anda akan mengotomatiskan penyiapan rapat di Google Kalender, tetapi Anda juga menambahkan deskripsi, yang merupakan ringkasan file di Google Drive.
Untuk melakukannya, ikuti langkah-langkah berikut:
- Download file teks ini, yang merupakan salinan teks blog peluncuran Gemini 1.5 Pro.
- Upload file ke folder root di Google Drive.
- Di editor, buat file
main.gs
, lalu tambahkan kode berikut:
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");
}
Di sini, Anda akan memanggil kemampuan panggilan fungsi Gemini API. Selanjutnya, Anda perlu menentukan fungsi alat.
- Di sebelah kiri editor, di samping Layanan, klik + Tambahkan layanan > API Google Kalender > Tambahkan. Tindakan ini akan mengaktifkan layanan Google Kalender lanjutan, yang nantinya perlu Anda gunakan untuk beberapa API lanjutan.
- Di file
utils.gs
, tambahkan kode berikut:
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);
}
Kode ini melakukan hal berikut:
- Fungsi
setupMeeting()
menelusuri Google Drive Anda dan menemukan fileGemini-blog.txt
. Nama file ini otomatis ditampilkan oleh panggilan fungsi Gemini API di langkah #3. - Fungsi
setupMeeting()
memanggil Gemini API untuk meringkas konten file, menyiapkan rapat dengan Aplikasi Kalender menggunakan deskripsi bentuk bebas, dan menambahkan ringkasan ke rapat. - Fungsi
setupMeeting()
memanggil fungsiattachFileToMeeting()
untuk menggunakan layanan Google Kalender lanjutan guna melampirkan file blog ke rapat.
- Di bagian atas file
utils.gs
, tambahkan kode berikut:
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.
]
};
- Di editor, kembali ke file
main.gs
, lalu klik . - Jika Google Workspace meminta izin Anda untuk menjalankan skrip, klik Oke.
Dalam beberapa detik, log eksekusi akan menampilkan pesan yang memberi tahu Anda bahwa rapat sudah disiapkan.
- Di Google Kalender, cari rapat dengan ringkasan dan lampiran.
9. Membuat draf email dengan Apps Script
Selanjutnya, Anda mengotomatiskan pembuatan draf email di Gmail. Berikut skenarionya: Misalkan Anda melakukan analisis data di Google Sheets. Anda menempatkan semua angka di tempatnya dan membuat sebuah diagram. Anda ingin menggunakan Gemini Pro Vision API untuk membuat draf email berdasarkan diagram.
Untuk melakukannya, ikuti langkah-langkah berikut:
- Buka sheet ini dan klik File -> Buat salinan.
- Di kotak teks Nama dialog Salin dokumen, ganti nama default
Copy of CollegeExpenses
denganCollegeExpenses
. - Di file
main.gs
, ganti kueri pengguna sebelumnya dengan yang baru, lalu tambahkan kode berikut ke pernyataanif...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 {...}
}
- Di file
utils.gs
, tambahkan kode berikut:
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'
});
}
Fungsi ini mengambil diagram pengeluaran kuliah dari sheet dan mengirimkannya ke Gemini Pro Vision untuk membuat draf email. Gemini Pro Vision mengekstrak informasi dari diagram dan membuat draf isi email untuk Anda.
- Di file
utils.gs
, tambahkan kode berikut ke objekWORKSPACE_TOOLS
setelah komentarYou 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"
]
}
},
]
};
- Di editor, kembali ke file
main.gs
, lalu klik . - Setelah 10 hingga 20 detik, buka Gmail Anda. Anda akan melihat draf email seperti ini:
Anda dapat merevisi draf email sebelum mengirimnya. Email ini sepenuhnya ditulis oleh Gemini Pro Vision setelah Anda memberikan perintah singkat dan diagram.
10. Membuat presentasi kerangka dengan Apps Script
Selanjutnya, Anda mengotomatiskan pembuatan presentasi kerangka di Google Slide dengan Apps Script.
Untuk melakukannya, ikuti langkah-langkah berikut:
- Di file
main.gs
, ganti kueri pengguna sebelumnya dengan yang baru dan tambahkan kode berikut ke pernyataanif...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 {...}
}
- Di file
utils.gs
, tambahkan kode berikut:
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();
}
Fungsi ini memanggil Gemini API untuk bertukar pikiran terkait topik tertentu, menampilkan poin-poin dalam format
JSON, lalu gunakan Apps Script untuk mengisi dek kerangka.
- Di file
utils.gs
, tambahkan kode berikut ke objekWORKSPACE_TOOLS
setelah komentarYou 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"
]
}
},
]
};
- Di bagian atas file
utils.gs
, tentukan konstanta berikut:
const NUM_SLIDES = 3;
Ini adalah jumlah slide yang dibuat model Gemini selain slide pembuka.
- Di editor, kembali ke file
main.gs
, lalu klik . Dalam beberapa detik, Anda akan melihat URL presentasi di log eksekusi. - Gunakan browser Anda untuk membuka URL. Anda akan melihat dek kerangka yang berisi poin-poin.
11. Ide untuk dijelajahi
Selain ketiga integrasi ini, Anda dapat mengeksplorasi ide-ide berikut:
- Membuat chatbot di Google Chat. Salah satu kasus penggunaan paling populer untuk Model Bahasa Besar (LLM) adalah membangun chatbot. Dengan Gemini API, mudah sekali membangun chatbot untuk Google Chat. Untuk mengetahui informasi selengkapnya, lihat Google Chat API dan codelab Membuat aplikasi untuk Google Chat dengan Gemini.
- Retrieval-Augmented Generation (RAG) dengan data Anda sendiri di Google Drive atau Keep. Dalam codelab ini, Anda hanya menggunakan satu file teks untuk fitur ringkasan. Namun, Anda juga dapat menggunakan konten dari Google Drive dan Keep pribadi Anda–seperti catatan, PDF, dan gambar–dengan Gemini API, database vektor, dan, secara opsional, alat orkestrasi–seperti LangChain–untuk melakukan RAG dan mempersonalisasi respons model berdasarkan data Anda.
- Menggunakan kemampuan panggilan fungsi multi-giliran Gemini API. Panggilan fungsi Gemini API tidak terbatas pada satu putaran dan Anda dapat memanggil fungsi multi-giliran untuk tugas yang lebih kompleks.
- Jangan hanya terpaku pada Google Workspace. Setelah memahami cara mengintegrasikan Gemini API dengan Google Workspace, Anda dapat melakukan lebih dari sekadar Google Workspace dan memanfaatkan API lainnya di dunia.
12. Selamat
Anda telah mempelajari kemampuan multi-modal dan panggilan fungsi Gemini API. Anda telah menggunakannya untuk mengotomatiskan beberapa tugas Google Workspace dengan Apps Script.