1. Başlamadan önce
Bu codelab'de, Gemini API'nin işlev çağrısı ve çok formatlılık özellikleriyle Google Workspace görevlerini nasıl otomatikleştireceğinizi öğreneceksiniz.
Ön koşullar
- Apps Komut Dosyası, JavaScript veya benzer bir programlama dili hakkında temel bilgi
Öğrenecekleriniz
- Gemini API'nin işlev çağrısı ve çok formatlılık özelliklerinden nasıl yararlanabileceğinizi öğrenin.
- Birden fazla Gemini API çağrısını birbirine bağlama
- Gemini API ile Google Workspace görevlerini otomatikleştirme
İhtiyacınız olanlar
- Web tarayıcısı
- Gmail hesabı Alternatif olarak, Gemini API'nin belirli kurulumunu uygulamış bir Google Workspace hesabı.
- Gemini API için desteklenen bir bölgeden bağlantı.
- İsteğe bağlı: Doğrudan API isteklerini test etmek için
curlprogramını içeren bir komut satırı arayüzü.
Bu codelab'in tam kodu GitHub'daki Gemini API Cookbook'ta mevcuttur. Tamamlanmış koda ihtiyacınız varsa bu sayfayı inceleyin.
2. Gemini API'yi ayarlama
Gemini Hakkında
Gemini modelleri, Google'ın en büyük ve en yetenekli yapay zeka model ailesidir. Uygulamalarınızda bu modellerden yararlanmak için Gemini API'yi kullanabilirsiniz. Ayrıca, istemleri deneyebileceğiniz, model ayarlarını değiştirebileceğiniz ve özel modelleri kod yazmadan ayarlayabileceğiniz bir API web arayüzü olan Google AI Studio'da Gemini API'yi deneyebilirsiniz.
Anahtar alma
- Gemini API'yi kullanmak için Google AI Studio'da API anahtarı oluşturun.
İsteğe bağlı: Anahtarınızı test etme
Curl ile komut satırına erişiminiz varsa anahtarınızı aşağıdaki bloğun ilk satırına ekleyin ve ardından API anahtarını test etmek için terminalinizde çalıştırın.
export GOOGLE_API_KEY=Paste_your_API_key_here
curl "https://generativelanguage.googleapis.com/v1beta/models?key=${GOOGLE_API_KEY}"
JSON biçiminde bir model listesi (ör. models/gemini-1.0-pro) görmeniz gerekir. Bu, işlemin başarılı olduğu anlamına gelir.
3. İsteğe bağlı: Gemini API'ye istekte bulunun
Bu isteğe bağlı adımda, içerik oluşturmanın nasıl çalıştığını daha iyi anlamak için Gemini API'ye istekte bulunursunuz. Böylece, içeriği Apps Komut Dosyası uygulamasına eklemeden önce nasıl çalıştığını görebilirsiniz.
Modeller hakkında
Gemini API, farklı özelliklere ve sınırlamalara sahip çeşitli modeller sunar. Modellerin her biri, yetenekleriyle birlikte Gemini modelleri sayfasında listelenir.
İlk isteğinizi gönderme
Gemini API'nin bir metin istemini tamamlaması için bir JSON isteği oluşturup REST API uç noktasına gönderirsiniz.
Bunun için, aşağıdaki adımları uygulayın:
- Yeni bir dosyada aşağıdaki JSON isteğini girin:
{
contents: [
{
parts: [
{ text: 'The most important aspects of a persuasive presentation are:' }
]
}
]
}
JSON isteği şu istemi içerir: The most important aspects of a persuasive presentation are:. Model, bu talimatı tamamlayıp sonucu doğrudan size verir.
JSON isteğinde doldurulması gereken üç üst düzey alan vardır: contents, generationConfig ve safetySettings. Yalnızca contents gereklidir. Diğerleri ise çıkışı kontrol etme mekanizmaları sağlar.
- Bu JSON'u bir
presentation.txtdosyasına kaydedin ve ardından doğrudancurl'ye şu şekilde iletin:
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}
Bu örnekte, URL'de aşağıdaki değerleri ayarlarsınız:
v1beta, API sürümünü belirtir.gemini-1.0-pro-latest, model olarak Gemini 1.0 Pro'yu belirtir ve en son anlık görüntüyü kullanır.generateContent, çağırdığınız API yöntemini belirtir.
Aşağıdakine benzer sonuçlar görmeniz gerekir:
{
"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": [...]
}
}
Okunabilirliği artırmak için terminal çıkışı düzenli olarak biçimlendirilmiştir:
- İnandırıcılık: Hedef kitle, konuyla ilgili uzman olduğunuzu ve kendi çıkarlarını gözettiğinizi düşünmelidir.
- Netlik: Mesajınız kolay anlaşılır ve takip edilebilir olmalıdır. Kitlenizin aşina olmayabileceği jargon veya teknik terimler kullanmaktan kaçının.
- Somutluk: Argümanlarınızı desteklemek için belirli örnekler ve veriler kullanın. Belirsiz veya genel iddialarda bulunmaktan kaçının.
- Duygusal çekicilik: Hedef kitlenin mantıklı tarafına hitap etmenin yanı sıra onlarla duygusal düzeyde de bağlantı kurmaya çalışmalısınız. Hikaye anlatma, mizah ve kişisel anekdotlar kullanarak görüşlerinizi daha akılda kalıcı ve ilgi çekici hale getirin.
- Güçlü kapanış: Sunumunuzu güçlü bir harekete geçirici mesajla sonlandırın. İzleyicilerden ne yapmalarını istediğinizi ve bunu yapmalarının neden önemli olduğunu söyleyin.
generationConfig ve safetySettings gibi diğer ayarlar hakkında daha fazla bilgi edinmek için istem ve güvenlik kılavuzlarına bakın.
4. Apps Komut Dosyası'ndan Gemini API'yi çağırma
- script.new adresini ziyaret ettiğinizde sizin için otomatik olarak bir
code.gsApps Komut Dosyası oluşturulur. - İmlecinizi
code.gsdosyasının üzerine getirin, ardından
> Yeniden adlandır'ı tıklayın. - Dosya adını
utils.gsolarak değiştirin. - Dosyada
myFunctionişlevini kaldırarak dosyayı boşaltın.
API anahtarınızı projeye ekleme
- Gezinme menüsünde Proje ayarları'nı seçin.
- Komut dosyası özellikleri bölümünde Komut dosyası özelliği ekle'yi tıklayın.
- Mülk bölümüne
GOOGLE_API_KEYgirin. - Value (Değer) bölümüne Google AI Studio'dan aldığınız API anahtarınızı girin.

- Komut dosyası özelliklerini kaydet'i tıklayın.
- Düzenleyiciye geri dönün.
Gemini API kodunu ekleme
utils.gs dosyasında şu adımları uygulayın:
API anahtarını ve uç noktasını ayarlayın:
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}`;
- Gemini API'yi belirli bir istemle çağıran aşağıdaki işlevi ekleyin:
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;
}
- İstemi ayarlayan aşağıdaki işlevi ekleyin:
function testGemini() {
const prompt = "The best thing since sliced bread is";
const output = callGemini(prompt);
console.log(prompt, output);
}
Test etme
Kaydet'i tıklayın.- İşlev açılır listesinde
testGeminisimgesini seçin ve
simgesini tıklayın. - Gerekli izinleri kabul edin. Kodunuz çalıştırılmalı ve yürütme günlüğünde sonuçların yer aldığı bir konsol çıkışı görmelisiniz.

İşe yaradı!
5. Görüntülerle Gemini API'yi çağırma
Gemini model ailesinin en güçlü özelliklerinden biri, çok formatlı girişi desteklemesidir. Bu sayede yalnızca metin değil, daha fazlasını sağlayabilirsiniz. Bu bölümde, Gemini API'yi bir resimle çağıran bir işlev ekleyeceksiniz.
- Mevcut
const geminiEndpointbildiriminden sonrautils.gsdosyasının en üstüne aşağıdaki satırı ekleyin:
const geminiProVisionEndpoint = `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.0-pro-vision-latest:generateContent?key=${geminiApiKey}`;
Gemini Vision kodunu ekleme
- Yeni eklenen bu uç noktayı çağırmak için
utils.gsdosyasına bir işlev ekleyin:
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;
}
- Aşağıdaki test işlevini ekleyin:
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);
}
Bu işlev, internetten bir test resmi yükler ve tanımladığınız işlevin kullanması için iletir. Daha sonra, e-tablodaki bir grafiği kullanmak için bunu bağlarsınız. Bu nedenle, bu yalnızca bir testtir.
Test etme
testGeminiVisionişlevini kaydedip çalıştırın ve çıkışı inceleyin.

6. Araçlarla Gemini API'yi çağırma
Metin ve resimlerin yanı sıra istemlerinizde araçlara erişim de sağlayabilirsiniz.
Aracı işleme kodunu ekleme
utils.gsdosyasına, araç spesifikasyonu kabul eden bir işlev ekleyin:
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;
}
Bu şema ve kullanılabilir alanlar hakkında daha fazla bilgi için FunctionDeclaration API referansı bölümüne bakın.
Test etme
- Modelin geçerli tarih ve saati bulmak için kullanabileceği bir araç tanımlayın:
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);
}
Burada kullanılan biçim FunctionDeclaration şemasıdır. Tarih/saat işlevini aslında çağırmıyorsunuz. Yalnızca modelin bir işlev çağrısı istediğine dair bir gösterge alırsınız. İşlev çağrılarını daha sonraki bir adımda ele alırsınız.
- Çıkışı görmek için
testGeminiToolsişlevini kaydedip çalıştırın.

7. Google Workspace ile demo entegrasyonlarına genel bakış
İşlev çağrısının nasıl çalıştığını öğrendiğinize göre, Gemini modelinin özelliklerini diğer hizmetlere kolayca genişletebilirsiniz. Sonraki birkaç bölümde Google Drive, Google Slaytlar ve Google E-Tablolar gibi Google Workspace ürünleriyle entegrasyonlar oluşturacaksınız. Basitleştirilmiş bir şemayı aşağıda bulabilirsiniz:

Genel olarak, bir kullanıcı sorgusu geldiğinde hangi aracın kullanılacağını belirlemek için Gemini API'nin işlev çağrısını kullanırsınız. Aşağıdaki işlemleri yapabilen üç araç oluşturursunuz:
- Toplantı oluşturun. Şemadaki
setupMeeting()işlevi, Google Drive'daki bir blogu özetlemek ve özeti Google Takvim'de yeni oluşturulan bir toplantıya eklemek için Gemini 1.0 Pro API'sini çağırır. - Grafikteki analizlere dayalı e-posta taslağı oluşturma. Şemadaki
draftEmail()işlevi, Google E-Tablolar'daki bir grafiği analiz etmek ve analize göre Gmail'de bir e-posta oluşturmak için Gemini 1.0 Pro Vision'ı çağırır. - İçerik taslağı oluşturun. Şemadaki
createDeck()işlevi, Google Slaytlar'daki bir sunu için madde işaretli listeler oluşturmak üzere Gemini 1.0 Pro'yu çağırır.
Her araç için aşağıdaki üç işlemi yapmanız gerekir:
- Gemini API'nin işlev çağrısı yanıtının, söz konusu aracın
if...elsebloğunda çağrılmasını isteyip istemediğini belirleyin. - Aracın işlevini uygulamak için gerçek işlevi ekleyin.
- Aracı Gemini API ile tanımlayın. Böylece Gemini modeli, aracın varlığından haberdar olur ve doğru işlev çağrısı yanıtını döndürebilir.
8. Apps Komut Dosyası ile toplantı ayarlama
Öncelikle Google Takvim'de toplantı kurulumunu otomatikleştirirsiniz. Ardından, Google Drive'daki bir dosyanın özeti olan bir açıklama eklersiniz.
Bunun için, aşağıdaki adımları uygulayın:
- Gemini 1.5 Pro lansman blogunun metin kopyası olan bu metin dosyasını indirin.
- Dosyayı Google Drive'daki kök klasörünüze yükleyin.
- Düzenleyicide bir
main.gsdosyası oluşturun ve aşağıdaki kodu ekleyin:
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");
}
Burada, Gemini API'nin işlev çağırma özelliğini kullanıyorsunuz. Ardından, araç işlevini tanımlamanız gerekir.
- Düzenleyicinin sol tarafında, Hizmetler'in yanında + Hizmet ekle > Google Takvim API'si > Ekle'yi tıklayın. Bu işlem, daha sonra bazı gelişmiş API'ler için kullanmanız gereken gelişmiş Google Takvim hizmetini etkinleştirir.

utils.gsdosyasına aşağıdaki kodu ekleyin:
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);
}
Bu kod şu işlemleri yapar:
setupMeeting()işlevi, Google Drive'ınızda arama yaparakGemini-blog.txtdosyasını bulur. Bu dosya adı, 3. adımdaki Gemini API'nin işlev çağrısı tarafından otomatik olarak döndürülür.setupMeeting()işlevi, dosyanın içeriğini özetlemek için Gemini API'yi çağırır, serbest biçimli açıklama kullanarak CalendarApp ile toplantı oluşturur ve özeti toplantıya ekler.setupMeeting()işlevi, blog dosyasını toplantıya eklemek için gelişmiş Google Takvim hizmetini kullanmak üzereattachFileToMeeting()işlevini çağırır.
utils.gsdosyasının en üstüne aşağıdaki kodu ekleyin:
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.
]
};
- Düzenleyicide
main.gsdosyasına geri dönün ve
simgesini tıklayın. - Google Workspace, komut dosyasını çalıştırmak için sizden izin isterse Tamam'ı tıklayın.
Birkaç saniye içinde, toplantınızın ayarlandığını belirten bir mesaj yürütme günlüğünde gösterilir.
- Google Takvim'de, özet ve ek içeren toplantıyı bulun.

9. Apps Komut Dosyası ile e-posta taslağı oluşturma
Ardından, Gmail'de e-posta taslağı oluşturma işlemini otomatikleştirirsiniz. Senaryo: Google E-Tablolar'da veri analizi yaptığınızı varsayalım. Tüm sayıları yerine koyup bir grafik oluşturursunuz. Grafiğe dayalı bir e-posta taslağı oluşturmak için Gemini Pro Vision API'yi kullanmak istiyorsunuz.
Bunun için, aşağıdaki adımları uygulayın:
- Bu sayfayı açın ve Dosya -> Kopya oluştur'u tıklayın.
- Belgeyi kopyala iletişim kutusundaki Ad metin kutusunda, varsayılan adı
Copy of CollegeExpensesile değiştirin.CollegeExpenses main.gsdosyasında, önceki kullanıcı sorgusunu yenisiyle değiştirin ve ardındanmain.gsifadesine aşağıdaki kodu ekleyin: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 {...}
}
utils.gsdosyasına aşağıdaki kodu ekleyin:
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'
});
}
Bu işlev, sayfadan üniversite masrafları grafiğini alır ve e-postayı hazırlaması için Gemini Pro Vision'a gönderir. Gemini Pro Vision, grafikteki bilgileri ayıklar ve sizin adınıza e-posta mesajını taslak olarak oluşturur.
utils.gsdosyasında,You add tools hereyorumundan sonraWORKSPACE_TOOLSnesnesine aşağıdaki kodu ekleyin:
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"
]
}
},
]
};
- Düzenleyicide
main.gsdosyasına geri dönün ve
simgesini tıklayın. - 10-20 saniye sonra Gmail'inizi açın. Aşağıdaki gibi bir e-posta taslağı görürsünüz:
E-posta taslağını göndermeden önce düzeltebilirsiniz. E-posta, kısa bir istem ve grafiği sağladıktan sonra tamamen Gemini Pro Vision tarafından yazılır.
10. Apps Komut Dosyası ile iskelet sunu oluşturma
Ardından, Apps Komut Dosyası ile Google Slaytlar'da iskelet sunu oluşturma işlemini otomatikleştirirsiniz.
Bunun için, aşağıdaki adımları uygulayın:
main.gsdosyasında, önceki kullanıcı sorgusunu yenisiyle değiştirin vemain.gsifadesine aşağıdaki kodu ekleyin: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 {...}
}
utils.gsdosyasına aşağıdaki kodu ekleyin:
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();
}
Bu işlev, belirli bir konu hakkında beyin fırtınası yapmak için Gemini API'yi çağırır ve madde işaretlerini şu biçimde döndürür:
dönüştürün ve ardından Apps Komut Dosyası'nı kullanarak iskelet sunuyu doldurun.
utils.gsdosyasında,You add tools hereyorumundan sonraWORKSPACE_TOOLSnesnesine aşağıdaki kodu ekleyin:
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"
]
}
},
]
};
utils.gsdosyasının en üstünde aşağıdaki sabiti tanımlayın:
const NUM_SLIDES = 3;
Bu, Gemini modelinin açılış slaytına ek olarak oluşturduğu slayt sayısıdır.
- Düzenleyicide
main.gsdosyasına geri dönün ve
simgesini tıklayın. Birkaç saniye içinde yürütme günlüğünde bir sunu URL'si görürsünüz. - URL'yi açmak için tarayıcınızı kullanın. Maddelerle doldurulmuş bir iskelet sunu görürsünüz.

11. Keşfedilecek fikirler
Bu üç entegrasyonun dışında aşağıdaki fikirleri de inceleyebilirsiniz:
- Google Chat'te chatbot oluşturma Büyük dil modellerinin (LLM'ler) en popüler kullanım alanlarından biri chatbot oluşturmaktır. Gemini API ile Google Chat için chatbot oluşturmak kolaydır. Daha fazla bilgi için Google Chat API ve Build apps for Google Chat with Gemini (Gemini ile Google Chat için uygulama geliştirme) başlıklı codelab'i inceleyin.
- Google Drive veya Keep'teki kendi verilerinizle alma artırılmış üretim (RAG). Bu codelab'de özetleme için yalnızca tek bir metin dosyası kullanacaksınız. Ancak, RAG yapmak ve modelin yanıtını verilerinize göre kişiselleştirmek için kişisel Google Drive ve Keep'inizdeki içerikleri (ör. notlar, PDF'ler ve resimler) Gemini API, bir vektör veritabanı ve isteğe bağlı olarak bir düzenleme aracı (ör. LangChain) ile de kullanabilirsiniz.
- Gemini API'nin çok adımlı işlev çağrısı özelliğini kullanın. Gemini API'nin işlev çağrısı tek bir dönüşle sınırlı değildir ve daha da karmaşık görevler için çok dönüşlü işlev çağrısı yapabilirsiniz.
- Google Workspace'in ötesine geçin. Gemini API'yi Google Workspace ile nasıl entegre edeceğinizi öğrendiğinize göre artık Google Workspace'in ötesine geçebilir ve dünyadaki diğer API'lerden yararlanabilirsiniz.
12. Tebrikler
Gemini API'nin çok formatlı özellikleri ve işlev çağrısı hakkında bilgi edindiniz. Bu komut dosyalarını, Apps Komut Dosyası ile bazı Google Workspace görevlerini otomatikleştirmek için kullandınız.