1. Başlamadan önce
Bu codelab'de, Gemini API'nin işlev çağırma ve çok modlu özellikleri sayesinde Google Workspace görevlerini nasıl otomatikleştireceğinizi öğreneceksiniz.
Ön koşullar
- Apps Komut Dosyası, JavaScript veya benzer bir programlama diline temel düzeyde aşinalık
Öğrenecekleriniz
- Gemini API'nin işlev çağrısı ve çok modlu özelliklerinden yararlanma
- Birden fazla Gemini API çağrısını zincirleme
- Gemini API ile Google Workspace görevlerini otomatik hâle getirme.
İhtiyacınız olanlar
- Web tarayıcısı.
- Gmail hesabı. Alternatif olarak, Gemini API'nin özel kurulumunu uygulayan 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
curl
programını içeren bir komut satırı arayüzü.
Bu codelab'in tam kodunu GitHub'daki Gemini API Tarif Defteri'nde bulabilirsiniz. Tamamlanmış koda ihtiyacınız varsa kontrol edin.
2. Gemini API'yi kurma
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. API'nin web arayüzünde Google AI Studio'da da Gemini API'yi deneyebilirsiniz. Bu API sayesinde, kod yazmadan istemleri deneyebilir, model ayarlarını değiştirebilir ve özel modeller oluşturabilirsiniz.
Anahtar al
- Gemini API'yi kullanmak için Google AI Studio'da API anahtarı oluşturun.
İsteğe bağlı: Anahtarınızı test edin
Curl içeren bir komut satırına erişiminiz varsa anahtarınızı aşağıdaki blokun ilk satırına ekleyin ve 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}"
Modeller/gemini-1.0-pro gibi JSON biçiminde bir model listesi görürsünüz. Bu, işe yaradığı anlamına geliyor.
3. İsteğe bağlı: Gemini API'ye istekte bulunma
İsteğe bağlı bu adımda, içerik üretme işlemini Apps Komut Dosyası uygulamasına eklemeden önce, Gemini API'ye giderek işleyiş şeklini daha iyi anlamanızı sağlayacak bir istekte bulunursunuz.
Modeller hakkında
Gemini API, farklı özellikleri ve sınırlamaları olan çeşitli modeller sunar. Modellerin her biri, özellikleriyle birlikte Gemini modelleri sayfasında listelenir.
İlk talebinizi gönderme
Gemini API'nin bir metin istemini tamamlaması için bir JSON isteği oluşturur ve bunu REST API uç noktasına gönderirsiniz.
Bunun için, aşağıdaki adımları uygulayın:
- Yeni bir dosyaya 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ı tamamlar ve sonucu size doğrudan verir.
JSON isteğinde doldurulacak üç üst düzey alan vardır: contents
, generationConfig
ve safetySettings
. Yalnızca contents
gereklidir. Diğerleri ise çıkışı kontrol etmek için mekanizmalar sağlar.
- Bu JSON dosyasını bir
presentation.txt
dosyasına kaydedin ve aşağıdaki şekilde doğrudancurl
öğesine 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 belirtiyor ve en son anlık görüntüyü kullanıyor.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": [...]
}
}
Okunabilirlik için düzenli olarak biçimlendirilmiş terminal çıkışı aşağıda verilmiştir:
- Güvenilirlik: Kitleniz, konuda uzman olduğunuza ve onların çıkarlarını düşündüğünüze güvenmelidir.
- Netlik: Mesajınız kolay anlaşılır ve takip edilebilir olmalıdır. Kitlenizin aşina olmadığı jargon veya teknik terimler kullanmaktan kaçının.
- Anlaşılırlık: Bağımsız değişkenlerinizi desteklemek için belirli örnekler ve verilerden yararlanın. Belirsiz veya genel iddialarda bulunmaktan kaçının.
- Duygusal çekicilik: Kitlenize mantıksal açıdan hitap etmenin yanı sıra onlarla duygusal bir düzeyde bağ kurmaya da çalışmalısınız. Belirtmek istediğiniz noktaların daha akılda kalıcı ve ilgi çekici olması için hikaye anlatma, mizah ve kişisel anekdotlardan yararlanın.
- Güçlü bir kapanış: Sunumunuzu güçlü bir harekete geçirici mesajla bitirin. Kitlenize ne yapmalarını istediğinizi ve bunu yapmaları için neden önemli olduğunu söyleyin.
generationConfig
ve safetySettings
dahil olmak üzere diğer ayarlar hakkında daha fazla bilgi edinmek için istem ve güvenlik kılavuzlarına göz atın.
4. Apps Komut Dosyası'ndan Gemini API'yi çağırma
- script.new adresini ziyaret ettiğinizde sizin için otomatik olarak bir
code.gs
Apps Komut Dosyası oluşturulur. - İmlecinizi
code.gs
dosyasının üzerinde tutun ve ardından > Yeniden adlandır. - Dosya adını
utils.gs
olarak değiştirin. - Dosyadan
myFunction
işlevini kaldırarak dosyanın boş kalmasını sağlayın.
API anahtarınızı projeye ekleyin
- Gezinme menüsünde Proje ayarları'nı seçin.
- Komut dosyası özellikleri'nin altında Komut dosyası özelliği ekle'yi tıklayın.
- Mülk altında
GOOGLE_API_KEY
yazın. - Değer bölümünde Google AI Studio'daki 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 et
- Kaydet'i tıklayın.
- İşlev açılır listesinde
testGemini
öğesini seçin ve seçeneğini tıklayın. - Gerekli izinleri kabul edin. Kodunuz çalışır ve yürütme günlüğünde sonuçları içeren bir konsol çıkışı görürsünüz.
İşe yaradı!
5. Görüntülerle Gemini API'yi çağırma
Gemini model ailesinin en güçlü özelliklerinden biri, çok modlu giriş desteğidir. Böylece yalnızca metinden fazlasını sunabilirsiniz. Bu bölümde, Gemini API'yi bir resimle çağıran bir işlev ekleyeceksiniz.
utils.gs
dosyasının üst kısmına, mevcutconst geminiEndpoint
bildiriminden sonra şu satırı ekleyin:
const geminiProVisionEndpoint = `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.0-pro-vision-latest:generateContent?key=${geminiApiKey}`;
Gemini Vision kodunu ekleme
- Bu yeni eklenen uç noktayı çağırmak için
utils.gs
dosyası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 görüntüsü yükler ve bunu tanımladığınız işleve iletir. Daha sonra, e-tablodaki bir grafiği kullanması için kabloyu bağlayabilirsiniz. Dolayısıyla bu yalnızca bir testtir.
Test et
testGeminiVision
işlevini kaydedip çalıştırın, ardından çıkışı inceleyin.
6. Araçları kullanarak Gemini API'yi çağırma
Metin ve resimlerin yanı sıra istemlerinizdeki araçlara da erişim sağlayabilirsiniz.
Araç işleme kodunu ekleme
utils.gs
dosyasına, araç spesifikasyonunu 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ılabilen alanlar hakkında daha fazla bilgi için FunctionDeclaration
API referansını inceleyin.
Test et
- Geçerli tarihi ve saati bulmak için modelin 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 FunctionDeclaration
şeması kullanılır. Aslında tarih-saat işlevini çağırmazsınız. Yalnızca modelin bir işlev çağrısı istediğine dair bir gösterge alırsınız. İşlev çağrılarını sonraki bir adımda yönetirsiniz.
- Sonucu görmek için
testGeminiTools
işlevini kaydedin ve çalıştırın.
7. Google Workspace ile demo entegrasyonlarına genel bakış
Artık işlev çağrısının işleyiş şeklini anladığınıza göre, Gemini modelinin özelliklerini diğer hizmetleri de kapsayacak şekilde kolayca genişletebilirsiniz. Sonraki birkaç bölümde Google Drive, Google Slaytlar ve Google E-Tablolar gibi Google Workspace ürünleriyle entegrasyonlar geliştireceksiniz. Aşağıda basitleştirilmiş bir şema görebilirsiniz:
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. Şunları yapabilecek üç araç geliştirirsiniz:
- Toplantı oluşturun. Şemadaki
setupMeeting()
işlevi, Google Drive'daki bir blogu özetlemek ve Google Takvim'de yeni oluşturulan bir toplantıya özet eklemek için Gemini 1.0 Pro API'sini çağırır. - Bir grafikteki bilgileri temel alarak e-posta taslağı oluşturun. Şemadaki
draftEmail()
işlevi, Gemini 1.0 Pro Vision'ı çağırarak Google E-Tablolar'daki bir grafiği analiz edip bu analize göre Gmail'de bir e-posta oluşturur. - Bir deste oluşturun. Diyagramdaki
createDeck()
işlevi, Google Slaytlar'daki bir sunuda madde işaretleriyle ilgili beyin fırtınası yapmak için Gemini 1.0 Pro'yu çağırır.
Her araç için aşağıdaki üç şeyi yapmanız gerekir:
- Gemini API'nin işlev çağrısı yanıtının söz konusu aracı bir
if...else
bloğunda çağırmayı isteyip istemediğini belirleyin. - Araç işlevini uygulamak için gerçek işlevi ekleyin.
- Gemini modelinin aracın varlığından haberdar olması ve doğru işlev çağrısı yanıtını döndürebilmesi için aracı Gemini API ile tanımlayın.
8. Apps Komut Dosyası ile toplantı oluşturma
Öncelikle Google Takvim'de toplantı ayarlarını otomatik hale getirirsiniz ancak Google Drive'daki bir dosyanın özeti olan açıklama da 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.gs
dosyası oluşturun, ardından 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ğrısı özelliğini çağırırsınız. Ardından, araç işlevini tanımlamanız gerekir.
- Düzenleyicinin solunda, Hizmetler'in yanındaki + Hizmet ekle > Google Takvim API'sı > Ekle'yi tıklayın. Bu işlem, daha sonra bazı gelişmiş API'lar için kullanmanız gereken gelişmiş Google Takvim hizmetini etkinleştirir.
utils.gs
dosyası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 ile:
setupMeeting()
işlevi, Google Drive'ınızda ilerler veGemini-blog.txt
dosyasını bulur. Bu dosya adı, Gemini API'nin 3. adımda çağırdığı işlev 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 bir toplantı ayarlar ve özeti toplantıya ekler.setupMeeting()
işlevi, blog dosyasını toplantıya eklemek üzere gelişmiş Google Takvim hizmetini kullanmak içinattachFileToMeeting()
işlevini çağırır.
utils.gs
dosyasının üst kısmına 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.gs
dosyasına dönün ve seçeneğini tıklayın. - Google Workspace, komut dosyasını çalıştırmak için izin isterse Tamam'ı tıklayın.
Birkaç saniye içinde yürütme günlüğünde toplantınızın ayarlandığını bildiren bir mesaj görüntülenir.
- Google Takvim'de, özet ve ekin olduğu toplantıyı bulun.
9. Apps Komut Dosyası ile e-posta taslağı oluştur
Ardından Gmail'de e-posta taslağı oluşturma işlemini otomatik hale getirirsiniz. Şu senaryoyu inceleyin: Google E-Tablolar'da veri analizi yaptığınızı varsayalım. Tüm sayıları doğru şekilde yerleştirdiniz ve bir grafik oluşturuyorsunuz. Grafiğe dayalı olarak 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 -> Kopyasını oluştur'u tıklayın.
- Dokümanı kopyala iletişim kutusunun Ad metin kutusunda, varsayılan
Copy of CollegeExpenses
adınıCollegeExpenses
ile değiştirin. main.gs
dosyasında, önceki kullanıcı sorgusunu yeni bir sorguyla değiştirin ve ardındanif...else
ifadesine aşağıdaki kodu ekleyin:
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.gs
dosyası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, üniversite harcama grafiğini e-tablodan alıp e-postanın taslağını hazırlamak için Gemini Pro Vision'a gönderir. Gemini Pro Vision, grafikteki bilgileri ayıklar ve sizin adınıza e-posta gövdesini oluşturur.
utils.gs
dosyasında,You add tools here
yorumundan sonraWORKSPACE_TOOLS
nesnesine 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.gs
dosyasına dönün ve seçeneğini tıklayın. - 10 ila 20 saniye sonra Gmail'inizi açın. Şuna benzer bir e-posta taslağı göreceksiniz:
Göndermeden önce e-posta taslağını gözden geçirebilirsiniz. E-postanın tamamı Gemini Pro Vision tarafından yazıldıktan sonra kısa bir istem ve grafik gösterilir.
10. Apps Komut Dosyası ile iskelet bir deste oluşturun
Şimdi, Apps Komut Dosyası'nı kullanarak Google Slaytlar'da iskelet oluşturma işlemini otomatik hâle getireceksiniz.
Bunun için, aşağıdaki adımları uygulayın:
main.gs
dosyasında, önceki kullanıcı sorgusunu yeni bir sorguyla değiştirin ve aşağıdaki koduif...else
ifadesine ekleyin:
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.gs
dosyası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 biçimde döndürür.
ve ardından Apps Komut Dosyası'nı kullanarak iskelet bir desteyi doldurabilirsiniz.
utils.gs
dosyasında,You add tools here
yorumundan sonraWORKSPACE_TOOLS
nesnesine 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.gs
dosyasının en üstünde aşağıdaki sabit değeri tanımlayın:
const NUM_SLIDES = 3;
Bu, Gemini modelinin açılış slaytına ek olarak oluşturduğu slaytların sayısıdır.
- Düzenleyicide
main.gs
dosyasına dönün ve seçeneğini 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. Madde işaretleriyle dolu bir deste göreceksiniz.
11. Keşfedilecek fikirler
Bu üç entegrasyonun ötesinde, aşağıdaki fikirleri keşfedebilirsiniz:
- Google Chat'te chatbot oluşturun. Büyük Dil Modellerinin (LLM) en popüler kullanım alanlarından biri chatbot derlemektir. Gemini API ile Google Chat için kolayca bir chatbot oluşturabilirsiniz. Daha fazla bilgi için Google Chat API ve codelab Gemini ile Google Chat için uygulama geliştirme makalelerine göz atın.
- Google Drive veya Keep'teki kendi verilerinizle alma için artırılmış oluşturma (RAG). Bu codelab'de özetleme için yalnızca tek bir metin dosyası kullanacaksınız. Ancak kişisel Google Drive'ınızdaki ve Keep'teki not, PDF ve resim gibi içerikleri bir vektör veritabanı olan Gemini API'yle ve isteğe bağlı olarak LangChain gibi bir düzenleme aracıyla da kullanarak RAG işlemi yapabilir ve modelin yanıtını verilerinize göre kişiselleştirebilirsiniz.
- Gemini API'nin çok dönüşlü 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. Ayrıca 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 öğrendiniz. Artık Google Workspace'in ötesine geçip dünyadaki diğer API'lerden yararlanabilirsiniz.
12. Tebrikler
Gemini API'nin çok modlu özellikleri ve işlev çağrısı hakkında bilgi edindiniz. Bu görevleri Apps Komut Dosyası ile bazı Google Workspace görevlerini otomatik hale getirmek için kullandınız.